Beispiel Block 2 Stream I/O Parallele Prozesse: fork, exec und wait Interprozesskommunika>on mit Unnamed Pipes. Benedikt Huber WS 2011/2012
|
|
- Rudolf Beutel
- vor 5 Jahren
- Abrufe
Transkript
1 Beispiel Block 2 Stream I/O Parallele Prozesse: fork, exec und wait Interprozesskommunika>on mit Unnamed Pipes Benedikt Huber WS 2011/2012 1
2 Stream I/O Portable Ein/Ausgabe API (gepuffert) 2
3 Aufbau des Dateisystems (Linux) Hierarchische Struktur von Dateien Verschiedenste Dateitypen in einer gemeinsamen Verzeichnisstruktur: everything is a file /bin /dev /etc /usr /var commands devices startup and configura>on files /lib /man /local / plain files (stream of characters) directories (Interpreta>on durch das OS) character, block special files (Geräte; z.b. Terminal, FestplaVe) named pipes sockets (z.b. TCP/IP sockets, UNIX domain sockets) symbolic links (Verweise)
4 Mounten von Dateisystemen Zusammenfassen mehrerer File Systeme in einer Verzeichnisstruktur Eingebundenes Dateisystem ist entweder: lokal verfügbar (z.b. untersch. Par>>on oder FestplaVe, Wechseldatenträger), verfügbar via Netzwerk (z.b. über NFS), oder befindet sich selbst in einem File (z.b. loop device für ISO Images) Vorteil: untersch. Filesysteme gleichzei>g verwendbar
5 Virtuelles Filesystem (VFS) > 15 physikalische Filesysteme unter Linux in Verwendung Kompa>bilität zu anderen Systemen (z.b. NTFS, FAT) Sicherheit, Zuverlässigkeit der Daten (z.b. Ext3, ReiserFS) Performance (z.b. XFS) Einführung einer zusätzlichen Abstrak>onsebene einheitliche SchniVstelle transparentes Mounten verschiedener physikalischer Dateisysteme (Par>>onen) in eine Directory Struktur
6 File Descriptors Verweis auf Eintrag in Tabelle offener Dateien (file descriptor table, Teil des aktuellen Prozesses) Standard I/O STDIN_FILENO = 0 (Standardeingabe) STDOUT_FILENO = 1 (Standardausgabe) STDERR_FILENO = 2 (Fehlerausgabe) Siehe auch: fileno(stdin), fileno(stdout),... Funk>onen: open(2), close(2), read(2), write(2),... 6
7 Stream IO in C Stream IO baut auf File Deskriptoren auf #include <stdio.h> Stream Datentyp: FILE Gepuffert (siehe fflush(3)) Konven>on: Befehle beginnen mit f fopen(3), fdopen(3), fwrite(3), fprin7(3), stdin, stdout, stderr sind vordefinierte Streams S t r eam I O Puf f er IO OS 7
8 fopen(3) FILE *fopen(const char *path, const char *mode); Die Datei path wird geöffnet, und mit Stream (Rückgabewert) verbunden mode: r nur lesen w nur schreiben (exis>erenden Inhalt löschen) a nur schreiben (am Ende anhängen) r+ / w+ / a+ lesen und schreiben 8
9 fdopen(3) FILE *fdopen(int fildes, const char *mode); Assoziiert einen Stream mit einem Filedescriptor FILE* f; int fd; int fd = socket(af_inet, SOCK_STREAM,0); f = fdopen(fd, r+ ); fprintf(f, Meine Prozess ID ist: %d\n, getpid()); 9
10 fflush(3), fclose(3) int fflush(file *stream); int fclose(file *stream); fflush erzwingt das Schreiben von gepufferten Daten fclose run fflush auf und schließt den Stream sowie den zugrundeliegenden Deskriptor. 10
11 Lesen/Schreiben Funk=on fread fgets fgetc fwrite fputs fprinp fputc fseek Lesen von n Elementen a size Bytes Lesen einer Zeile Lesen eines Zeichens Schreiben von n Elementen a size Bytes Schreiben eines C Strings Forma>ertes Schreiben Schreiben eines Zeichens Posi>onieren des Dateiposi>onszeigers 11
12 ferror(3), feof(3) int ferror(file *stream); int feof(file *stream); int clearerr(file *stream); ferror ergibt den Fehlerstatus des Streams zurück (0 ~ error flag nicht gesetzt). feof fragt ab, ob das End Of File Flag des Streams gesetzt ist (wird beispielsweise von fgets gesetzt, wenn das Ende der Datei erreicht wird) clearerr löscht Fehlerstatus und EOF Flag 12
13 Stream I/O Beispiel #define SIZE 512 int main(int argc, char **argv) { char buffer[size]; FILE *f; f = fopen(argv[1], r ); while (fgets(buffer,size,f)!= NULL) { fputs(buffer,stdout); } if (ferror(f)) { bail_out( IO Error ); } return 0; } 13
14 fork, exec und wait Prozess erzeugen / Programm ersetzen 14
15 Prozesseigenschanen Linux (1) Zustand Running, Stopped, Scheduling Iden>fika>on Speicherverwaltung Signale Priorität, CPU Zeit, PID, Owner, Gruppe, Pointer auf MMU Info Mask, Pending Prozessverwandschanen Parents, Siblings
16 Prozesseigenschaften Linux (2) Process Control Block Register, PC, Statuswort, Segmentregister, Page Table Info Kernelstack Dateideskriptorentabelle Berech>gungen, Accoun>ng Informa>on Timerverwaltung Interprozesskommunika>on Siehe: sched.h / struct task_struct UNIX Mechanismen 16
17 Prozesshierarchie Jeder Prozess hat Vaterprozess Ausnahme: init Jeder Prozess hat eine eindeutige ID (pid_t) init acpid ahc_dv_0 ahc_dv_1 bash clock-applet crond cups-config-dae cupsd 2*[dbus-daemon-1] dbus-launch dhcpd gdm-binary gdm-binary X gdmgreeter gdm-binary... 2*[sendmail] sesam_server sesam_server sesam_server... smbd 5*[smbd] sshd sshd sshd bash pine.. sshd sshd bash pine 17
18 Erstellen von Prozessen Prozesse werden üblicherweise mit fork(2) erzeugt. Weitere Möglichkeiten clone(2), vfork(2) In der Übung ist ausschließlich fork(2) zu verwenden exec(3) überschreibt den aktuellen Prozess durch ein anderes Programm. wait(3) wartet auf die Terminierung eines Kindes 18
19 fork() / exec() / wait() fork() erzeugt neuen Prozess exec*( program ) ersetzt image eines Prozesses durch neues Programm exit(status) Beendet Prozess wait*(&status) wartet auf Beendigung des Kindprozesses f or k parent wait i ni t i al i z e c hi l d c ont ex t f or k child ex it ex ec 19
20 fork() f or k parent f or k child Erzeugt einen neuen Prozess Neuer Prozess ist eine iden>sche Kopie des aufrufenden Prozesses (bis auf PID, Locks,...) Erzeugender Prozess ist Vater des erzeugten Prozesses Beide Prozesse laufen parallel und führen dasselbe Programm aus wait i ni t i al i z e c hi l d c ont ex t ex it ex ec 20
21 fork() Vaterprozess npi D = f or k ( ) P C Vor dem fork Nach dem fork Vaterprozess K indprozess npi D = f or k ( ) P C npi D = f or k ( ) P C 21
22 fork() Unterscheidung zwischen Vater und Kindprozess durch den Rückgabewert von fork(): 1 im Fehlerfall 0 im Kindprozess (child) >0 im aufrufenden Prozess (parent) 22
23 fork() Kindprozess erbt von Elternprozess offene Dateien (gemeinsamer Zugriff!) Dateipuffer Signaldefinitionen momentane Variablenwerte Jedoch gilt: Variablen sind lokal (keine Beeinflussung) Signale können lokal umgesetzt werden Kommunikation (IPC) via Pipes, Sockets, Shared Memory,... 23
24 C-Interface #include <sys/types.h> #include <unistd.h> pid_t fork(void); 24
25 Verwendung von fork() pid_t pid;... switch (pid= fork()) { case 1: bail_out( can t fork ); break; case 0: /* child: ChildProcess() */... exit(exit_success); break; default: /* parent: ParentProcess() */... break; } 25
26 clone(2), vfork(2) clone() wird von fork(2), vfork(2) aufgerufen. clone() erlaubt Kontrolle über die zu duplizierenden Eigenschanen (Linux spezifisch, nicht portabel!) fork() alles wird dupliziert vfork() nichts wird dupliziert, das Kind darf keine Variablen mehr ändern, und nur noch exec() ausführen. clone(), vfork() ist kein Teil des Stoffes! 26
27 exec() f or k parent f or k child Erlaubt es einem Prozess, ein anderes Programm auszuführen Startet ein neues Programm innerhalb eines Prozesses PID bleibt gleich i ni t i al i z e c hi l d c ont ex t ex ec wait ex it 27
28 Die exec() Familie (1) int execl(const char *path, const char *arg,...); int execlp(const char *file, const char *arg,...); int execle(const char *path, const char *arg,..., char * const envp[]); int execv(const char *path, char *const argv[]); int execvp(const char *file, char *const argv[]); int fexecve(int fd, char *const argv[], char *const envp[]); 28
29 Die exec() Familie (2) Ersetzt aktuelles Programm durch das in der Datei path enthaltene exec*p Variante sucht (wie Shell) in $PATH nach Programm mit dem spezifierten Namen Argumentübergabe beachten! Argumentliste muss mit NULL Zeiger enden Varianten mit variable Argumentanzahl (execl*) und Argumentarray (execv*) Variante execle: Environment kann verändert werden Variante fexecve: akzep>ert Dateideskriptor 29
30 execl(), execlp() #include <unistd.h> int execv(char *path, char *argv[] ); int execvp(char *filename, char *argv[] ); char *cmd[] = { "ls", " l", (char *) 0 }; (void) execv ("/bin/ls", cmd); (void) execvp ("ls", cmd); bail_out ( can t exec ); 30
31 execl(), execlp() #include <unistd.h> int execl(char *path, char *arg0,..., char *arg_n,(char*)0); int execlp(char *filename, char *arg0,..., char *arg_n, (char*)0); (void) execl ( /bin/ls, ls, l, (char*) 0 ); (void) execlp ( ls, ls, l, (char*) 0 ); bail_out ( can t exec ); 31
32 wait() f or k parent f or k child Wartet bis Kindprozess terminiert Liefert PID des terminierten Prozesses Wenn kein Kindprozess exis>ert, 1 als Rückgabewert (auch bei EINTR) i ni t i al i z e c hi l d c ont ex t ex ec wait ex it 32
33 exit() Terminiert den aktuellen Prozess void exit(int status); exit(exit_success) keine Fehler exit(exit_failure) Fehler aufgetreten 33
34 wait() Liefert Status des terminierten Kindprozesses wait(&status) Es immer notwendig auf Terminierung des Kindes zu warten unter UNIX besetzen auch bereits terminierte Prozesse einen Eintrag in der Prozesstabelle falls kein Platz mehr frei ist, kann kein neuer Prozess mehr gestartet werden 34
35 C-Interface Stoppt Prozessausführung bis entweder Kindprozess terminiert oder ein Fehler auftritt ( busy waiting). #include <sys/wait.h> pid_t wait ( int * status ); int status; pid_t child_pid, pid;... while ((pid = wait(&status))!= child_pid ) { if (pid!= 1) continue; /* other child */ if (errno == EINTR) continue; /* interrupted */ bail_out( can t wait, 1 ); } if (WEXITSTATUS(status) == EXIT_SUCCESS )... 35
36 waitpid(): verwandter Call to wait() Warten auf das Terminieren eines Prozesses mit einer bes>mmten Prozess Id: pid_t waitpid (pid_t pid, int *status, int options ); waitpid( 1,&status,0) äquivalent zu wait waitpid(pid, &status, 0) wartet auf Kind mit PID pid waitpid( 1,&status, WNOHANG) blockiert nicht. 36
37 Zombies und exit() Der Kindprozess terminiert und der Vaterprozess hat noch nicht wait ausgeführt Der Kindprozess wird auf Zustand Zombie gesetzt Eintrag in der Prozesstabelle bleibt erhalten bis der Vaterprozess wait ausführt Der Vaterprozess terminiert und der Kindprozess läun immer noch Kindprozesse werden dem INIT Prozess vererbt 37
38 Wurde ein Kind beendet? waitpid(-1,&status, WNOHANG) Blockiert nicht, holt Exit-Status falls ein Kind beendet wurde. (Polling) Eleganter: Wenn ein Kind beendet wurde wird das Signal SIGCHLD an den Elternprozess gesendet. signal(sigchld, chterm); void chterm(int sig) { wait( ); } 38
39 Fallstricke int main( ) { fprintf(stdout, Hallo ); fork(); return 0; } Ausgabe: HalloHallo Warum? 39
40 Fallstricke S t r eam I O H allo IO int main( ) { fprintf(stdout, Hallo ); fork(); return 0; } S t r eam I O H allo IO OS fork S t r eam I O H allo IO Ausgabe: HalloHallo Warum? OS 40
41 Fallstricke S t r eam I O <empt H allo y> IO int main( ) { OS fprintf(stdout, Hallo ); fork fflush(stdout); S t r eam I O S t r eam I O fork(); <empt H allo y> <empt H allo y> } return 0; IO IO Ausgabe: Hallo OS 41
42 Rückblende fork() - Kindprozess erzeugen exec() - neues Programm innerhalb eines Prozesses starten exit() den aktuellen Prozess beenden wait() - im Vaterprozess auf die Terminierung des Kindprozesses warten 42
43 Unnamed Pipes pipe() und dup() 43
44 Pipes Kommunikationskanal zwischen verwandten Prozessen Eigenschaften: Unidirektional (2 Pipes für Übertragung in beide Richtungen) Stream von Daten Implizite Synchronisation 44
45 Verwendung von Pipes (1) Pipe wird mittels eines Feldes von zwei Integer- Elementen deklariert int fildes[2]; Deskriptor fildes[0] ist Leseende Deskriptor fildes[1] ist Schreibende Nicht verwendete Enden müssen geschlossen werden Schreibender Prozess schließt das Leseende Lesender Prozess schließt das Schreibende 45
46 Verwendung von Pipes (1) P rozess wr i t e( ) p[ 1] ohne geschlossene Enden r ead( ) p[ 0] K indprozess Vaterprozess wr i t e( ) r ead( ) p[ 1] p[ 0] p[ 1] p[ 0] wr i t e( ) r ead( ) 46
47 Verwendung von Pipes (1) geschlossene Enden K indprozess Vaterprozess wr i t e( ) r ead( ) p[ 1] wr i t e( ) p[ 0] r ead( ) 47
48 Verwendung von Pipes (2) Öffnen einer Pipe mittels Systemaufruf pipe() fdopen() erstellt einen mit dem gegebenen Filedeskriptor assozierten Stream (FILE *) Verwendung von Funktionen, die auf Streams operieren z.b. fopen(), fclose() fclose() dup2() kann zum Umlenken von Dateien verwendet werden 48
49 C-Interface #include <limits.h> /* for PIPE_BUF */ #include <unistd.h> /* prototype */ int fildes[2]; if (pipe(fildes)!= 0) { bail_out( can t create pipe, 1 ); } 49
50 dup(2), dup2(2) dup() dupliziert einen File-Deskriptor. Der neue Deskriptor hat die niedrigste nicht verwendete ID dup2(old,new) Schließt Filedeskriptor mit ID new Dupliziert old, der neue Deskriptor erhält ID new 50
51 Umleiten der Standardein/ausgabe Anwendung: Kommunikation mit Kommandozeilen-Utility, welches über Standardeingabe / Standardausgabe kommuniziert Strategie: Umleiten der Standardeingabe (0) oder Standardausgabe (1) in neuem Prozess Schließen des Filedeskriptors (z.b. fileno(stdin)) für Standard I/O Duplizieren eines offenen FDs (z.b. file_descr[0]) auf eben geschlossenen (fileno(stdin)) Schließen des duplizierten FDs (file_descr[0]) 51
52 C-Interface #include <fcntl.h> #include <sys/types.h> #include <unistd.h> int fd; fd = open( log.txt,o_wronly O_CREAT); dup2(fd, /* old descriptor */ fileno(stdout)); /* new descriptor */ close(fd); /* close old desc. */ (void) execlp( grep, grep, max, (char *) 0); 52
53 Synchronisation Lesen von leerer Pipe ist blockierend Schreiben auf volle Pipe ebenso Achtung: Blockiert wenn vergessen Pipe zu schließen Lesen von Pipe ohne offene Schreibenden liefert EOF Schreiben auf Pipe ohne offene Leseenden liefert SIGPIPE Signal 53
54 Pipes: Pitfalls Pipes eignen sich gut für unidirektionale Kommunikation Bidirektional: Zwei Pipes Fehleranfällige Synchronisation (deadlock) Synchronisation & Puffer fflush() verwenden Puffer konfigurieren (setbuf(3), setvbuf(3)) 54
55 Rückblende Kommunikation zwischen verwandten Prozessen mittels Pipes. Implizite Synchronisation Nicht verwendete Enden schließen Filestream für Filedeskriptor der Pipe mittels fdopen() Umlenken von Pipes mittels dup2() 55
56 ENDE Danke für die Aufmerksamkeit! Block zum 2.Übungsbeispiel 56
Beispiel Block 2 Stream I/O Parallele Prozesse: fork, exec und wait Interprozesskommunikation mit Unnamed Pipes
File Descriptors Beispiel Block 2 Stream I/O Parallele Prozesse: fork, exec und wait Interprozesskommunikation mit Unnamed Pipes Verweis auf Eintrag in Tabelle offener Dateien (file descriptor table) Standard
MehrBeispiel Block 2. Oliver Höftberger SS Parallele Prozesse: fork, exec und wait Interprozesskommunikation mit Unnamed Pipes
Beispiel Block 2 Parallele Prozesse: fork, exec und wait Interprozesskommunikation mit Unnamed Pipes Oliver Höftberger SS 2013 Slides by Benedikt Huber 1 fork, exec, exit und wait Prozess erzeugen Programmabbild
MehrBeispiel Block 2. Oliver Höftberger WS Parallele Prozesse: fork, exec und wait Interprozesskommunikation mit Unnamed Pipes
Beispiel Block 2 Parallele Prozesse: fork, exec und wait Interprozesskommunikation mit Unnamed Pipes Oliver Höftberger WS 2015 Based on slides by Benedikt Huber 1 fork, exec, exit und wait Prozess erzeugen
MehrBeispiel 2. Verwandte Prozesse: fork, exec, wait Interprozesskommunikation mit Unnamed Pipes. Denise Ratasich. 11. April Verwandte Prozesse IPC
e eigenschaften Beispiel 2 e: fork, exec, wait Interprozesskommunikation mit Unnamed Denise Ratasich basierend auf Slides von Daniel Prokesch Institut für Technische Informatik Technische Universität Wien
MehrSystemnahe Programmierung in C Übungen Jürgen Kleinöder, Michael Stilkerich Universität Erlangen-Nürnberg Informatik 4, 2011 U7.fm
U7 POSIX-Prozesse U7 POSIX-Prozesse Prozesse POSIX-Prozess-Systemfunktionen Aufgabe 7 U7.1 U7-1 Prozesse: Überblick U7-1 Prozesse: Überblick Prozesse sind eine Ausführumgebung für Programme haben eine
MehrU7 POSIX-Prozesse U7 POSIX-Prozesse
U7 POSIX-Prozesse U7 POSIX-Prozesse Prozesse POSIX-Prozess-Systemfunktionen Aufgabe 6 U7.1 U7-1 Prozesse: Überblick U7-1 Prozesse: Überblick Prozesse sind eine Ausführumgebung für Programme haben eine
MehrÜbungen zu Systemnahe Programmierung in C (SPiC) Inhalt. Moritz Strübe, Rainer Müller (Lehrstuhl Informatik 4) Sommersemester 2014
Übungen zu Systemnahe Programmierung in C (SPiC) Moritz Strübe, Rainer Müller (Lehrstuhl Informatik 4) Sommersemester 2014 Inhalt Prozesse System-Schnittstelle Aufgabe 7 Einlesen von der Standard-Eingabe
MehrG 5. Übung. G-1 Überblick. Besprechung 3. Aufgabe. Infos zur Aufgabe 5: fork, exec. Rechenzeiterfassung. Ü SoS I G.1
G 5. Übung G 5. Übung G-1 Überblick Besprechung 3. Aufgabe Infos zur Aufgabe 5: fork, exec Rechenzeiterfassung G.1 G-2 Hinweise zur 5. Aufgabe G-2 Hinweise zur 5. Aufgabe Prozesse fork, exec exit wait
MehrEin-/Ausgabe, Dateisystem. Kapitel 9: Ein-/Ausgabe. Programmieren in C für Elektrotechniker. Programmieren in C. Dateisystem. Programmieren in C
für Elektrotechniker Kapitel 9: Dateisystem, Dateisystem E/A-Konzept in UNIX und C UNIX (und damit auch C) verwendet Datenströme (streams) als Konzept zur Verbindung von Programmen mit E/A-Geräten und
Mehr4.4 Prozesse. H. Weber, HS RM SS 2010 Systemprogrammierung Kap. 4.4 Seite 1 von 22
H. Weber, HS RM SS 2010 Systemprogrammierung Kap. 4.4 Seite 1 von 22 getpid Prozeß-Id ermitteln getppid Parent-Prozeß-Id ermitteln fork Duplizieren eines Prozesses exec-familie Prozeß-Überlagerung durch
MehrTafelübung zu BS 1. Prozesse, Shell
Tafelübung zu BS 1. Prozesse, Shell Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os/ http://ess.cs.tu-dortmund.de/de/teaching/ss2012/bs/
MehrTafelübung zu BSRvS 1 1. Prozesse, at
Tafelübung zu BSRvS 1 1. Prozesse, at Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os http://ess.cs.tu-dortmund.de/de/teaching/ss2009/bsrvs1/
MehrTafelübung zu BS 1. Prozesse, Shell
Tafelübung zu BS 1. Prozesse, Shell Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os/ http://ess.cs.tu-dortmund.de/de/teaching/ss2012/bs/
MehrWas ist ein Prozess?
Prozesse unter UNIX Definition Was ist ein Prozess? Zeitliche Abfolge von Aktionen Ein Programm, das ausgeführt wird Prozesshierachie Baumstruktur INIT-Prozess ist die Wurzel (pid=1) und wird beim Booten
MehrFortgeschrittene I/O
Sep 19 14:20:18 amd64 sshd[20494]: Accepted rsa for esser from ::ffff:87.234.201.207 port 61557 Sep 19 14:27:41 amd64 syslog-ng[7653]: STATS: dropped 0 Sep 20 01:00:01 amd64 /usr/sbin/cron[29278]: (root)
MehrÜbungsbesprechung Blatt 3 Vorlesung Betriebssysteme I (WS 2018/19) Operating Systems And Middleware Group
Übungsbesprechung Blatt 3 Vorlesung Betriebssysteme I (WS 2018/19) Operating Systems And Middleware Group 0. Zur Aufgabe 4 Was macht eine Shell? date wc Chart 2 Prozesserzeugung Chart 3 1. Prozesserzeugung
MehrTafelübung zu BS 1. Prozesse, ToothBrush
Tafelübung zu BS 1. Prozesse, ToothBrush Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os/
MehrTafelübung zu BS 1. Prozesse, ToothBrush
Tafelübung zu BS 1. Prozesse, ToothBrush Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os/
MehrEine Mini-Shell als Literate Program
Eine Mini-Shell als Literate Program Hans-Georg Eßer 16.10.2013 Inhaltsverzeichnis 1 Eine Mini-Shell 1 1.1 Einen Befehl parsen......................... 2 1.2 Was tun mit dem Kommando?...................
MehrTafelübung zu BS 1. Prozesse verwalten
Tafelübung zu BS 1. Prozesse verwalten Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os/ http://ess.cs.tu-dortmund.de/de/teaching/ss2014/bs
MehrBetriebssysteme: UNIX-Operationen zur Prozesskontrolle
Betriebssysteme: UNIX-Operationen zur Prozesskontrolle Betriebssysteme: UNIX-Operationen zur Prozesskontrolle WS 2016/17 8. November 2016 1/1 Prozesse und Programme Programm Verschiedene Repräsentationen
MehrBeispiel Block 1 Programmierrichtlinien und Fehlerbehandlung Argumentbehandlung Stream I/O Signale Sockets Übungsaufgaben. Benedikt Huber SS 2012
Beispiel Block 1 Programmierrichtlinien und Fehlerbehandlung Argumentbehandlung Stream I/O Signale Sockets Übungsaufgaben Benedikt Huber SS 2012 1 Übungsbeispiel 1 Allgemeines Programmerstellung 2 Entwicklung
MehrTafelübung zu BS 1. Prozesse verwalten
Tafelübung zu BS 1. Prozesse verwalten Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os/ http://ess.cs.tu-dortmund.de/de/teaching/ss2013/bs/
MehrLinux Prinzipien und Programmierung
Linux Prinzipien und Programmierung Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2010/2011 1 / 18 2 / 18 fork und Daten Nach dem fork teilen sich Eltern- und Kindprozess zwar den Programmbereich
MehrPROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN
PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN 2. UNIX/Linux-Prozessverwaltung und zugehörige Systemaufrufe Wintersemester 2016/17 2. Die UNIX/LINUX-Prozessverwaltung Aufgaben: 1. Erzeugen neuer Prozesse
MehrTafelübung zu BS 1. Prozesse verwalten
Tafelübung zu BS 1. Prozesse verwalten Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os/ http://ess.cs.tu-dortmund.de/de/teaching/ss2015/bs/
MehrEinführung in die Programmiersprache C
Einführung in die Programmiersprache C 9 I/O (2) Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät UNIX I/O UNIX I/O: ähnlich wie Standard-I/O, jedoch File-Deskriptoren
MehrÜbungen zur Systemprogrammierung 1 Michael Golm, Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4,
23 Überblick über die 4. Übung Überblick über die 4. Übung Dateisystem: Systemaufrufe Aufgabe 2: qsort Infos zur Aufgabe 4: fork, exec 130 24 open / close read / write lseek chmod umask utime truncate
MehrKlausur Betriebssysteme I
Prof. Dr. Michael Jäger FB MNI Klausur Betriebssysteme I 18.3.2011 Bitte bearbeiten Sie die Aufgaben auf den Aufgabenblättern. Die Benutzung von Unterlagen oder Hilfsmitteln ist nicht erlaubt. Die Bearbeitungszeit
MehrFILE *fp; char fname[100];... fp = fopen (fname, rb ); if( fp == NULL ) { perror( fopen );... } // Fehlernachricht auf letzten Fehler, der aufkam
Aktuelle Fileposition ermitteln long pos; pos=ftell(fp); //aktuelle Bytenummer Filelaenge in Bytes fseek(fp,0,seek_end); pos=ftell(fp); Fileendeerkennung int rc; rc = feof (fp) //!= 0 bei Fileende // ==
MehrAufgabenblatt 5 Musterlösung
Prof. Dr. rer. nat. Roland Wismüller Aufgabenblatt 5 Musterlösung Vorlesung Betriebssysteme I Wintersemester 2017/18 Aufgabe 1: Implementierung von Threads (Bearbeitung zu Hause) Der größte Vorteil ist
Mehr1 wsort - Datenstrukturen (1. Möglichkeit)
U4 4. Übung U4 4. Übung Besprechung Aufgabe 2 dynamische Speicherallokation vs. Stackallokation Fehlerbehandlung Speicheraufbau eines Prozesses Prozesse: fork, exec, wait Aufgabe 4 U4.1 U4-1 Aufgabe 2:
Mehr1 wsort - Datenstrukturen (1. Möglichkeit) 3 Speicherverwaltung. Besprechung Aufgabe 2. dynamische Speicherallokation vs.
U4 4. Übung U4 4. Übung U4-1 Aufgabe 2: Sortieren mittels qsort U4-1 Aufgabe 2: Sortieren mittels qsort Besprechung Aufgabe 2 dynamische Speicherallokation vs. Stackallokation Fehlerbehandlung Speicheraufbau
MehrDateien. INE2, Mittwoch / TE402 M. Thaler, Office TG208. ZHAW, M. Thaler, K. Rege, G.
Dateien INE2, Mittwoch 8.00-9.35 / TE402 M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was gehtes? Informationsaustausch Programme tauschen Information mit Umgebung über - Kommandozeilen-Argumente
MehrTafelübung zu BS 4. Dateioperationen
Tafelübung zu BS 4. Dateioperationen Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os/ http://ess.cs.tu-dortmund.de/de/teaching/ss2013/bs/
MehrDateien. INE2 M. Thaler, Office TG208. ZHAW, M. Thaler, K. Rege, G. Burkert
Dateien INE2 M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was gehtes? Informationsaustausch Programme tauschen Information mit Umgebung über - Kommandozeilen-Argumente - Kanäle bzw.
MehrInterprozesskommunikation
Interprozesskommunikation Inhalt 1. Überblick... 2 2. Pipes... 5 3. Fifo...22 3.1. Übung IPC-2...39 Unix für Entwickler: Interprozesskommunikation Prof Dr. Alois Schütte 1/40 1. Überblick Hier werden die
MehrU23 - Shellcode. Twix Chaos Computer Club Cologne. Motivation Einstieg Der erste Shellcode Nullbytes, NOP Slides
Twix e.v. http://koeln.ccc.de 2016-11-28 Überblick 1 Motivation Was ist Shellcode? Beispiel 2 Einstieg Erzeugen, Testen von Shellcode 3 Der erste Shellcode Strings in Shellcode 4 Nullbytes, NOP Slides
MehrBetriebssysteme. A1- Prozesse. Olaf Spinczyk.
Betriebssysteme A1- Prozesse https://ess.cs.tu-dortmund.de/de/teaching/ss2017/bs/ Olaf Spinczyk olaf.spinczyk@tu-dortmund.de http://ess.cs.tu-dortmund.de/~os AG Eingebettete Systemsoftware Informatik 12,
MehrKlausur Betriebssysteme I
Prof. Dr. Michael Jäger FB MNI Klausur Betriebssysteme I 14.3.2008 Bitte bearbeiten Sie die Aufgaben auf den Aufgabenblättern. Die Benutzung von Unterlagen oder Hilfsmitteln ist nicht erlaubt. Die Bearbeitungszeit
MehrU6 POSIX-Prozesse. U6-1 Prozesse: Überblick. U6-1 UNIX-Prozesshierarchie. U6-2 POSIX Prozess-Systemfunktionen. Prozesse
U6 POSIX-Prozesse U6 POSIX-Prozesse U6-1 Prozesse: Überblick U6-1 Prozesse: Überblick Prozesse Prozesse sind eine Ausführumgebung für Programme POSIX-Prozess-Systemfunktionen POSIX-Signale haben eine Prozess-ID
MehrBetriebssysteme. A1- Prozesse. Olaf Spinczyk.
Betriebssysteme A1- Prozesse https://ess.cs.tu-dortmund.de/de/teaching/ss2018/bs/ Olaf Spinczyk olaf.spinczyk@tu-dortmund.de http://ess.cs.tu-dortmund.de/~os AG Eingebettete Systemsoftware Informatik 12,
MehrBetriebssysteme. Einführung C. Olaf Spinczyk.
Betriebssysteme Einführung C http://ess.cs.tu-dortmund.de/de/teaching/ss2016/bs/ Olaf Spinczyk olaf.spinczyk@tu-dortmund.de http://ess.cs.tu-dortmund.de/~os AG Eingebettete Systemsoftware Informatik 12,
MehrBenedikt Huber. 9. Oktober 2012
Vortragsblock Benedikt Huber Institut für Technische Informatik Technische Universität Wien - 182.709 Betriebssysteme UE 2012W 9. Oktober 2012 Überblick Richtlinien zur Entwicklung eines s Programmerstellung
MehrU3 UNIX-Signale U3 UNIX-Signale
U3 UNIX-Signale U3 UNIX-Signale Besprechung der Aufgabe 2: sister Nebenläufigkeit durch Signale Aktives Warten auf Ereignisse Probleme beim passiven Warten (auf Signale) Nachtrag zur Signalbehandlungsschnittstelle
MehrÜbungen zu Systemprogrammierung 2 (SP2)
Übungen zu Systemprogrammierung 2 (SP2) Ü 3 UNIX-Signale Christoph Erhardt, Jens Schedel, Jürgen Kleinöder Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität
MehrInstitut für Informatik der Ludwig-Maximilians-Universität München Systempraktikum Wintersemester 2009/2010 Prof. Dr. Dieter Kranzlmüller Dr. Thomas S
Institut für Informatik der Ludwig-Maximilians-Universität München Systempraktikum Wintersemester 2009/2010 Prof. Dr. Dieter Kranzlmüller Dr. Thomas Schaaf, Dr. Nils gentschen Felde Blatt 3 Grundlagen
MehrProgrammieren in C. Die C-Standardbibliothek: Datei Ein- und Ausgabe. Prof. Dr. Nikolaus Wulff
Programmieren in C Die C-Standardbibliothek: Datei Ein- und Ausgabe Prof. Dr. Nikolaus Wulff Das Dateisystem In C erfolgt die gesamte Ein- und Ausgabe durch Lesen oder Schreiben von Strömen (stream). Periphere
MehrZusammenfassung für CS-Prüfung 3 Seite 1. CS-Zusammenfassung für Prüfung 3 vom Im Beispiel gibt es 3 Deadlocks
Zusammenfassung für CS-Prüfung 3 Seite 1 CS-Zusammenfassung für Prüfung 3 vom 24. 6. 2002 Deadlock Im Beispiel gibt es 3 Deadlocks Unterschied zwischen Blockieren, Verklemmen und Verhungenrn= -> Band 1
Mehrfork () Hans-Georg Eßer, Hochschule München Betriebssysteme I, SS 2008 2. Prozesse (2/2) Folie 4
Sep 19 14:20:18 amd64 sshd[20494]: Accepted rsa for esser from ::ffff:87.234.201.207 port 61557 Sep 19 14:27:41 amd64 syslog-ng[7653]: SAS: dropped 0 Sep 20 01:00:01 amd64 /usr/sbin/cron[29278]: (root)
MehrBetriebssysteme (BS) Inhalt. Prozesse. Olaf Spinczyk.
Betriebssysteme (BS) Prozesse http://ess.cs.tu-dortmund.de/de/teaching/ss2017/bs/ Olaf Spinczyk olaf.spinczyk@tu-dortmund.de http://ess.cs.tu-dortmund.de/~os AG Eingebettete Systemsoftware Informatik 12,
MehrDie Mini Shell "Mishell"
Praktikum Mishell Die Mini Shell "Mishell" Frühlingssemester 2019 M. Thaler, J. Zeman Inhaltsverzeichnis 1 Einführung 2 1.1 Ziel................................... 2 1.2 Durchführung und Leistungsnachweis................
MehrLösung zur Praktikumsaufgabe 9
Lösung zur Praktikumsaufgabe 9 Thema: Pipes 2. Zur Beendigung des Programmes sind verschiedene Ansätze denkbar. Wenn explizit auf eine bestimmtes Symbol (z. B. quit, Leerzeile) getestet wird, dann darf
MehrHomogene Multi-Core-Prozessor-Architekturen
Homogene Multi-Core-Prozessor-Architekturen Praktikum Parallele Rechnerarchitekturen Stefan Potyra Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2009
MehrBeispiel / Übung: Prof. Dr. A. Christidis WS 2012/13
Beispiel / Übung: Erstellen Sie ein kurzes, plattform-unabhängiges C-Programm ( Konsolenanwendung ), das sich in die Reihe bereits gestarteter Kopien einordnet, sich nach 20 sec (Rechenzeit) abmeldet und
Mehr5. Dateioperationen. Tafelübung zu BSRvS1. Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware. Lehrstuhl für Informatik 12 TU Dortmund
Tafelübung zu BSRvS1 5. Dateioperationen Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/teaching/ss2008/bsrvs1/exercises/
MehrNetzwerk-Programmierung. Prozesse. Alexander Sczyrba Michael Beckstette.
Netzwerk-Programmierung Prozesse Alexander Sczyrba Michael Beckstette {asczyrba,mbeckste@techfak.uni-bielefeld.de 1 Übersicht Prozesse fork() Parents und Childs system() und exec() 2 Prozesse moderne Betriebssysteme
Mehr182. stdio. 183. stdio. Eingabe. Ausgabe. Typisch für Zeileneingabe und Analyse: #include <stdio.h>
182. stdio Eingabe int getchar (), getc (FILE * fp), fgetc (FILE * fp); char * gets (char * buf), * fgets (char * buf, int len, FILE * fp); int scanf (const char * fmt,...); int fscanf (FILE * fp, const
MehrTafelübung zu BS 5. Dateioperationen
Tafelübung zu BS 5. Dateioperationen Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os/ http://ess.cs.tu-dortmund.de/de/teaching/ss2014/bs/
MehrBetriebssysteme (BS)
Betriebssysteme (BS) Prozesse Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund Olaf.Spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os/ http://ess.cs.tu-dortmund.de/de/teaching/ss2011/bs/
MehrÜbungen zu Systemprogrammierung 2 (SP2)
Übungen zu Systemprogrammierung 2 (SP2) Ü3 UNIX-Signale Christian Eichler, Andreas Ziegler, Jürgen Kleinöder Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität
MehrGrundsätzliche Fragestellung. Grundsätzliche Fragestellung. Weitere Fallstricke. Bibliotheksfunktionen. ? Welche Art von Nebenläufigkeit liegt vor?
Übungen zu Systemprogrammierung (SP) Ü3 UNIX-Signale Christoph Erhardt, Jens Schedel, Jürgen Kleinöder Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg
MehrPROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN
PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN UNIX/Linux-Interprozesskommunikation 7. UNIX/Linux Pipes Wintersemester 2016/17 UNIX/Linux-IPC-Mechanismen Nachrichtenbasierter Informationsaustausch: 5. 1.
MehrÜbungen zu Systemprogrammierung 2 (SP2)
Übungen zu Systemprogrammierung 2 (SP2) Ü3 UNIX-Signale Christian Eichler, Andreas Ziegler, Jürgen Kleinöder Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität
MehrProzesse. Netzwerk - Programmierung. Alexander Sczyrba Madis Rumming
Netzwerk - Programmierung Prozesse Alexander Sczyrba asczyrba@cebitec.uni-bielefeld.de Madis Rumming mrumming@cebitec.uni-bielefeld.de Übersicht Prozesse fork() Parents und Children system() und exec()
MehrBetriebssysteme - 2. Test
Betriebssysteme - 2. Test Einführung in Unix Wie ist ein UNIX System aufgebaut? Hardware (CPU, Speicher, ) Software (OS: Kernel + Treiber, Benutzerprogramme) Mehrbenutzer und Mehrprozessbetriebssystem
MehrBetriebssysteme. Kommunikation von Prozessen und Threads. Sommersemester Prof. Dr. Peter Mandl. Seite 1. Prof. Dr. Peter Mandl.
Kommunikation von Prozessen und Threads Sommersemester 2014 Seite 1 Gesamtüberblick 1. Einführung in 2. Betriebssystemarchitekturen und Betriebsarten 3. Interruptverarbeitung in n 4. Prozesse und Threads
MehrPROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN
PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN 10. UNIX/Linux: Reaktion auf Fehler Wintersemester 2016/17 Reaktion auf Fehler: Übersicht Systemaufrufe: 1. Rückkehrwert: in den meisten (aber nicht in allen!)
MehrProbeklausur zu Systemnahe Software II SS 2012 Dr. Andreas Borchert mit Markus Schnalke
Probeklausur zu Systemnahe Software II SS 2012 Dr. Andreas Borchert mit Markus Schnalke 1 Aufgabe 1 (15 Punkte) Prozesse, Signale und Interprozesskommunikation (a) 3 Punkte Was wird von dem folgenden Programm
MehrKommunikation von Prozessen und Threads
Kommunikation von Prozessen und Threads Sommersemester 2015 Prof. Dr. Peter Mandl Prof. Dr. Peter Mandl Seite 1 Gesamtüberblick 1. Einführung in Computersysteme 2. Entwicklung von Betriebssystemen 3. Architekturansätze
MehrBetriebssysteme (BS) Prozesse. Olaf Spinczyk.
Betriebssysteme (BS) Prozesse http://ess.cs.tu-dortmund.de/de/teaching/ss2018/bs/ Olaf Spinczyk olaf.spinczyk@tu-dortmund.de http://ess.cs.tu-dortmund.de/~os AG Eingebettete Systemsoftware Informatik 12,
MehrAllgemeines. Shell Programmierung Unix. Kommentar. Vorgangsweise. Mag. Thomas Griesmayer
Allgemeines Shell Programmierung Unix Shell Scripts Unix Ein shell script ist eine Textdatei, welche eine Liste von Befehlen (Standard Unix Befehle) beinhaltet. Diese Datei kann durch Aufrufen ausgeführt
MehrNachdem die VM gestartet ist und sich darin angemeldet wurde, starten wir Eclipse.
Starten der Umgebung Nachdem die VM gestartet ist und sich darin angemeldet wurde, starten wir Eclipse. Wir wählen links ein Projekt aus öffnen dann unser Projekt und dort das Programm intro.c Sicherheitshalber
MehrBetriebssysteme (BS)
Betriebssysteme (BS) Prozesse Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund Olaf.Spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os/ http://ess.cs.tu-dortmund.de/de/teaching/ss2011/bs/
MehrDateien (1) Datenströme
Dateien (1) Datenströme Standardbibliothek bietet sogenannte Datenströme (engl. Streams) Objekte, in die Informationen geschrieben oder von denen Daten gelesen werden können Zum Arbeiten mit Dateien benötigt
MehrÜbung 2 - Betriebssysteme I
Prof. Dr. Th. Letschert FB MNI 22. März 2002 Aufgabe 1 Übung 2 - Betriebssysteme I 1. Informieren Sie sich mit Hilfe der Manualseiten, der Online Unterlagen von Dr. Jäger oder anderer Unterlagen über Unix
MehrLösung Übungszettel 6
Lösungen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik SS 03 AG Betriebssysteme FB3 Kirsten Berkenkötter Lösung Übungszettel 6 1 Aufgabe 1: Parallel-Server 1.1 Client #include
MehrInput, Output, Dateien
Input, Output, Dateien C-Kurs 2013, 1. Tutorium Armelle Vérité http://wiki.freitagsrunde.org 8. September 2013 This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 License. 1 / 21
MehrMalware. Carlo U. Nicola 09. Dezember Die Struktur eines (harmlosen) aber echten Virus-Programmes analysieren;
FHNW: Labor Netzwerkssicherheit Malware Carlo U. Nicola 09. Dezember 2012 Ziel Die Ziele dieser Aufgabe sind: 1. Anhand der printf(...) C-Funktion erkennen, dass die (Un)-Sicherheit bereits implizit in
MehrMichael Dienert. 8. Dezember 2016
C für Unverdrossene Michael Dienert 8. Dezember 2016 Vorbemerkung Natürlich könnte ich als erstes C-Programm Hello World nehmen. Um mit dem Kompiler zu spielen, kann man aber auch gleich einen sinnvolleren
Mehrfile:///h:/dokumente/_fh/ ws /etinfoii/vorlesung/infoii...
7 Dateien Um Daten dauerhaft zu sichern, müssen sie auf den Sekundärspeicher (die Festplatte) abgespeichert werden. Beim Umgang mit Peripheriegeräten unter Windows und UNIX ist zu beachten Die Verbindung
MehrProgrammiertechnik 1. Unit 12: Programmiersprache C - Betriebssystemschnittstellen. Andreas Polze 1
Programmiertechnik 1 Unit 12: Programmiersprache C - Betriebssystemschnittstellen Andreas Polze 1 Ablauf Zugriff auf Betriebssystemdienste Dateideskriptoren low-level I/O read and write open, creat, close,
MehrDämon-Prozesse ( deamon )
Prozesse unter UNIX - Prozessarten Interaktive Prozesse Shell-Prozesse arbeiten mit stdin ( Tastatur ) und stdout ( Bildschirm ) Dämon-Prozesse ( deamon ) arbeiten im Hintergrund ohne stdin und stdout
MehrSystemprogrammierung
Systemprogrammierung 3Vom C-Programm zum laufenden Prozess 6. November 2008 Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2008 SS 2006 SOS 1 (03-Pro.fm 2008-11-06 08.52) 3 Vom C-Programm
MehrDateizugriff unter C
Begriffe Dateizugriff unter C Datei = sequentielle Ansammlung von Datenbytes, z.b. auf einer Festplatte Auch Bildschirm und Tastatur werden wie Dateien behandelt: Bildschirm ist die Datei stdout Tastatur
MehrDie Zustellung von Signalen 100
Die Zustellung von Signalen 100 Die vorangegangenen Beispiele werfen die Frage auf, wie UNIX bei der Zustellung von Signalen vorgeht, wenn der Prozess zur Zeit nicht aktiv ist, gerade ein Systemaufruf
MehrProgrammieren in C++
Programmieren in C++ SS 2016 Vorlesung 7, Dienstag 7. Juni 2016 (Eingabe / Ausgabe, Optionen) und Rest von Vorlesung 6: Rückgabe von Argumenten Prof. Dr. Hannah Bast Lehrstuhl für Algorithmen und Datenstrukturen
MehrFile I/O. Persistieren von Daten. Gastvorlesung Ralph Erdt erdt (bei) informatik.fh-wiesbaden.de
File I/O, Ralph Erdt, erdt (bei) informatik.fh-wiesbaden.de Seite 1 File I/O Persistieren von Daten Gastvorlesung - 18.01.10 Ralph Erdt erdt (bei) informatik.fh-wiesbaden.de File I/O, Ralph Erdt, erdt
MehrThreads. Netzwerk - Programmierung. Alexander Sczyrba Jan Krüger
Netzwerk - Programmierung Threads Alexander Sczyrba asczyrba@cebitec.uni-bielefeld.de Jan Krüger jkrueger@cebitec.uni-bielefeld.de Übersicht Probleme mit fork Threads Perl threads API Shared Data Mutexes
MehrMichael Golm, Universität Erlangen-Nürnberg, IMMD 4, 2000/ / Tafelübung 10
10. Tafelübung select (BSD, XPG4) Terminaltreiber konfigurieren (tcgetattr, tcsetattr) Pseudoterminals 113 select Prozesse die mit Pipes und Sockets arbeiten, müssen oft von verschiedenen Filedeskriptoren
MehrEinteilung von Dateien. Streams
Einteilung von Dateien Streams allgemeines Modell für bewegte Daten, wobei Daten (Bytes) zwischen dem Hauptspeicher und einer Quelle oder einem Ziel bewegt werden Quelle oder Ziel können sein Datenträger
MehrA Kompilieren des Kernels... 247. B Lineare Listen in Linux... 251. C Glossar... 257. Interessante WWW-Adressen... 277. Literaturverzeichnis...
1 Einführung................................................ 1 1.1 Was ist ein Betriebssystem?............................... 1 1.1.1 Betriebssystemkern................................ 2 1.1.2 Systemmodule....................................
Mehr