Was ist ein Prozess?
|
|
|
- Rosa Engel
- vor 9 Jahren
- Abrufe
Transkript
1 Prozesse unter UNIX
2 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 erzeugt. Alle anderen Prozesse sind Nachfolger von INIT
3 Prozesshierachie init + acpid cron dhclient3 events/0 events/1 firefox bin + 6*[evince {evince}] java_vm 12*[{java_vm}] 10*[{firefox bin}] gdm gdm + Xorg x session manag ssh agent 4*[getty] gnome terminal + 9*[bash] 5*[bash ssh] bash pstree login bash vim login bash
4 Prozesshierachie fork Kernprozess (Prozess 0) /etc/init (Prozess 1) /etc/getty (Prozess i) /bin/login (Prozess i) Bash (Prozess i) erzeugt von Kernel fork /etc/getty (Prozess j) /bin/login (Prozess j) Bash (Prozess j) fork /etc/getty (Prozess k) /bin/login (Prozess k) Bash (Prozess k)...
5 Systemaufruf fork() Erzeugt einen neuen Prozess Nach Aufruf von fork() existieren 2 identische Prozesse, welche aber unabhängig voneinander ablaufen! Syntax: pid_t fork(); Rückgabewerte Beim Vaterprozess: Die PID des Kindprozesses Beim Kindprozess: 0 Fehler: -1
6 Systemaufruf wait() Wird im Vaterprozess benutzt Wartet auf das Beenden des Kindprozesses Syntax: pid_t wait(int *status); Rückgabewerte Die PID des Kindprozesses, der beendet wurde Fehler: -1
7 Systemaufruf wait() Der Exit-Status kann des Kindprozesses kann durch Makros ermittelt werden Makro WIFEXITED(status) WIFSGNALED(status) Bedeutung Ist TRUE, wenn sich ein Kindprozess beendet hat. Will man den genauen EXIT- Wert, so kann man ihn mit dem Makro WEXITSTATUS(status) erfragen Ist TRUE, wenn der Kindprozess durch ein Signal terminiert wurde, das dieser nicht abgefragt hat. Das genaue Signal kann durch das Makro WTERMSIG(status) abgefragt werden. Makros in <sys/wait.h>
8 Systemaufruf waitpid() Mit wait() kann allerdings nur auf die Beendigung des nächsten Prozesses gewartet werden. Mit waitpid() kann hingegen auf die Beendigung eines bestimmten Prozesses gewartet werden. Syntax: pid_t waitpid(pid_t pid, int *status, int optionen); Über das 3. Argument, optionen, kann das Verhalten von waitpid() beeinflusst werden. Folgende Möglichkeiten: WNOHANG Der Aufrufende Prozess wird nicht blockiert, wenn der Prozess >>PID<< noch nicht beendet bzw. noch nicht im Zombie-Status ist. waitpid() liefert in diesem Fall 0 zurück WUNTRACED Status des angehaltenen Kindprozesses
9 Systemaufruf () Überladen des aktuellen Prozesses mit neuem Code Mehrere Varianten von () l, lp, le, v und vp Die einzelnen Funktionen unterscheiden sich anhand der Endungen, wobei jeder Buchstabe folgende Bedeutung hat: Buchstabe Bedeutung e l v p Es wird eine Environmentliste (Umgebungsvariablen) als Vektor erwartet. Es werden Kommandozeilenargumente in Form einer Liste erwartet Es werden die Kommandozeilenargumente in Form eines Vektors erwartet Es wird ein Dateiname und nicht ein Pfadname als Argument zum Aufruf des Programms erwartet
10 () Das zweite Argument wird in der Prozesstabelle als Prozessname ausgegeben. Würde man z.b. folgendes schreiben: l( /bin/ls, wer_bin_ich, l, wd, NULL); wird trotzdem das Arbeitsverzeichnis aufgelistet. Als Prozessname, mit ps -f, würde allerdings der Name wer_bin_ich aufgelistet werden.
11 () Beispiele I ve. Das Beispiel ruft printenv auf und verändert die Umgebungsvariablen von diesem Prozess #include <stdio.h> #include <unistd.h> int main (void) { char *args[] = {"printenv", NULL}; char *env[] = { "SHELL=/bin/bash", "LOGNAME=a_username", "OSTYPE=L1NuX", NULL } }; return ve("/usr/bin/printenv", args, env);
12 () Beispiele II l Es werden Kommandozeilenargumente in Form einer Liste erwartet. Es werden keine Environmentvariablen übergeben. Stattdessen wird das aktuelle Environment benutzt. Beispiel: #include <stdio.h> #include <unistd.h> int main (void) { char *argumente[4] = { "ls", " l", "/usr/bin", NULL }; return v ("/bin/ls", argumente); }
13 () Beispiele III le ähnlich zu ve() - Alle Argumente werden in Listenform mit NULL gefolgt von den Umgebungsvariablen in Vektorform übergeben Beispiel: #include <stdio.h> #include <unistd.h> int main (void) { char *environment[4]; environment[0] = "SHELL=/bin/csh"; environment[1] = "LOGNAME=Wolfi"; environment[2] = "OSTYPE=LiNuX"; environment[3] = NULL; } return le("/usr/bin/ls", "ls", " d", "/tmp", "/", NULL, environment);
14 () Beispiele IV lp ähnlich zu ve() - Erstes Argument muss nicht, wie bei le, ein absoluter Dateiname sein Beispiel: #include <stdio.h> #include <stdlib.h> #include <unistd.h> int main (void) { return lp ("/bin/ls", "ls", " l", getenv("home"), NULL); }
15 () Beispiele V vp ähnlich zu lp() nur werden die Argumente als Vektor übergeben Beispiel: #include <stdio.h> #include <stdlib.h> #include <unistd.h> int main (void) { char *argumente[4]; argumente[0] = "ls"; argumente[1] = " l"; argumente[2] = getenv("home"); argumente[3] = NULL; } return vp ("/bin/ls", argumente);
16 () Beispiele V vp ähnlich zu lp() nur werden die Argumente als Vektor übergeben Beispiel: #include <stdio.h> #include <stdlib.h> #include <unistd.h> int main (void) { char *argumente[4]; argumente[0] = "ls"; argumente[1] = " l"; argumente[2] = getenv("home"); argumente[3] = NULL; } return vp ("/bin/ls", argumente);
17 Und alles gemeinsam... init fork() () Anwendung exit() wait()
Linux 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
Systemnahe 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
U7 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
Tafelü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 [email protected] http://ess.cs.uni-dortmund.de/~os/ http://ess.cs.tu-dortmund.de/de/teaching/ss2012/bs/
Eine 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?...................
Betriebssysteme: 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
PROGRAMMIEREN 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
G 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
U6 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
fork () 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)
Beispiel 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
Prozesse. Netzwerk - Programmierung. Alexander Sczyrba Madis Rumming
Netzwerk - Programmierung Prozesse Alexander Sczyrba [email protected] Madis Rumming [email protected] Übersicht Prozesse fork() Parents und Children system() und exec()
Übersetzen von Projekten mit make(1) Aufgabe 3: clash (Einfache Shell im Eigenbau)
U4 4. Übung U4 4. Übung Aufgabenbesprechung Aufgabe 2: wsort Heap- vs. Stackallokation Prozesse Speicheraufbau Systemschnittstelle: fork(2), exec(3), exit(3), wait(2), waitpid(2) Übersetzen von Projekten
Klausur 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
Bash-Skripting Linux-Kurs der Unix-AG
Bash-Skripting Linux-Kurs der Unix-AG Sebastian Weber 07.01.2013 Was ist ein Bash-Skript? Skript muss mit chmod +x ausführbar gemacht sein Aneinanderreihung von Befehlen normale Befehle nutzbar Sebastian
Bash-Skripting Linux-Kurs der Unix-AG
Bash-Skripting Linux-Kurs der Unix-AG Sebastian Weber 13.06.2012 Was ist ein Bash-Skript? Skript muss mit chmod +x ausführbar gemacht sein Aneinanderreihung von Befehlen normale Befehle nutzbar Sebastian
PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN
PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN 2. UNIX/Linux-Prozessverwaltung und zugehörige Systemaufrufe Wintersemester 2015/16 2. Die UNIX/LINUX-Prozessverwaltung Aufgaben: 1. Erzeugen neuer Prozesse
Threads. Foliensatz 8: Threads Folie 1. Hans-Georg Eßer, TH Nürnberg Systemprogrammierung, Sommersemester 2015
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)
Netzwerk-Programmierung. Prozesse. Alexander Sczyrba Michael Beckstette.
Netzwerk-Programmierung Prozesse Alexander Sczyrba Michael Beckstette {asczyrba,[email protected] 1 Übersicht Prozesse fork() Parents und Childs system() und exec() 2 Prozesse moderne Betriebssysteme
PThreads. Pthreads. Jeder Hersteller hatte eine eigene Implementierung von Threads oder light weight processes
PThreads Prozesse und Threads Ein Unix-Prozess hat IDs (process,user,group) Umgebungsvariablen Verzeichnis Programmcode Register, Stack, Heap Dateideskriptoren, Signale message queues, pipes, shared memory
Lösung zur Praktikumsaufgabe 1
Lösung zur Praktikumsaufgabe 1 Thema: Semaphore 1. Das Programm in Listing 1 zeigt eine beispielhafte Implementierung. Listing 1: Lösung der Aufgabe 1 (5children-unsync.c) #include #include
Klausur 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
2Binden 3. und Bibliotheken
3 Vom C-Programm zum laufenden Prozess 3.1 Übersetzen - Objektmodule 1Übersetzen 3. - Objektmodule (2) Teil III 3Vom C-Programm zum laufenden Prozess 2. Schritt: Compilieren übersetzt C-Code in Assembler
Das Signalkonzept (T) Signale und Signalbehandlung (P)
Systempraktikum im Wintersemester 2009/2010 (LMU): Vorlesung vom 10.12. Foliensatz 6 Das Signalkonzept (T) (P) Thomas Schaaf, Nils gentschen Felde Lehr- und Forschungseinheit für Kommunikationssysteme
Übung 1 - Betriebssysteme I
Prof. Dr. Th. Letschert FB MNI 13. März 2002 Aufgabe 0: Basiswissen Rechnerarchitektur: Übung 1 - Betriebssysteme I Aus welchen Komponenten besteht ein Rechner mit Von-Neumann Architektur? Was sind Bits
Aufgabenblatt 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
Lö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
Subprozesse in Python
Subprozesse in Python Felix Döring, Felix Wittwer 24. April 2017 Python-Kurs Gliederung 1. Grundlagen Eigenschaften 2. Konstanten File Descriptoren Exceptions 3. Popen Klasse Wichtige Argumente 4. Popen
U23 - 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
Shell-Scripting Linux-Kurs der Unix-AG
Shell-Scripting Linux-Kurs der Unix-AG Benjamin Eberle 1. Februar 2016 Was ist ein Shell-Script? Aneinanderreihung von Befehlen, die ausgeführt werden Bedingte und wiederholende Ausführung möglich Nützlich
Shell-Scripting Linux-Kurs der Unix-AG
Shell-Scripting Linux-Kurs der Unix-AG Andreas Teuchert 8. Juli 2014 Was ist ein Shell-Script? Aneinanderreihung von Befehlen, die ausgeführt werden Bedingte und wiederholende Ausführung möglich Nützlich
Bash-Scripting Linux-Kurs der Unix-AG
Bash-Scripting Linux-Kurs der Unix-AG Zinching Dang 02. Juli 2013 Was ist ein Bash-Script? Aneinanderreihung von Befehlen, die ausgeführt werden Bedingte und wiederholende Ausführung möglich Nützlich bei
Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom
Einstieg in die Informatik mit Java, Vorlesung vom 2.5.07 Übersicht 1 2 definition 3 Parameterübergabe, aufruf 4 Referenztypen bei 5 Überladen von 6 Hauptprogrammparameter 7 Rekursion bilden das Analogon
Variablen. Deklaration: «Datentyp» «Variablenname» Datentyp bestimmt Größe in Bytes: sizeof Beispiel: long int v; Größe: 4 Bytes
Variablen Deklaration: «Datentyp» «Variablenname» Datentyp bestimmt Größe in Bytes: sizeof Beispiel: long int v; Größe: 4 Bytes v ist Stück im Speicher, der 4 Bytes lang ist Speicherzugriff? Über Adressen!
d) Welche Aussage zum Thema Adressräume ist richtig?
Aufgabe 1.1: Einfachauswahl-Fragen (18 Punkte) Bei den Multiple-Choice-Fragen in dieser Aufgabe ist jeweils nur eine richtige Antwort eindeutig anzukreuzen. Auf die richtige Antwort gibt es die angegebene
Systemprogrammierung
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
Prozesse, Logs und Systemverwaltung
Prozesse, Logs und Systemverwaltung Linux-Kurs der Unix-AG Zinching Dang 31. Januar 2018 Übersicht Wiederholung & Vertiefung: Benutzer & Gruppen Prozesse Log-Dateien Befehle & Optionen Zusammenfassung
7. Foliensatz Betriebssysteme
Prof. Dr. Christian Baun 7. Foliensatz Betriebssysteme Frankfurt University of Applied Sciences SS2016 1/51 7. Foliensatz Betriebssysteme Prof. Dr. Christian Baun Frankfurt University of Applied Sciences
Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften
Programmiertechnik Teil 4 C++ Funktionen: Prototypen Overloading Parameter C++ Funktionen: Eigenschaften Funktionen (Unterprogramme, Prozeduren) fassen Folgen von Anweisungen zusammen, die immer wieder
Betriebssysteme (BS)
Betriebssysteme (BS) Prozesse Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund [email protected] http://ess.cs.uni-dortmund.de/~os/ http://ess.cs.tu-dortmund.de/de/teaching/ss2011/bs/
Grundlagen der Programmierung
Übung 1: Unix Werkzeuge Robert Sombrutzki [email protected] Unix Werkzeuge Warum? Diese Frage sollten Sie sich immer mal wieder stellen! Denkbare Antworten Weil Sie diese Werkzeuge immer
Klausurdeckblatt. Name: Studiengang: Matrikelnummer:
Klausurdeckblatt Name der Prüfung: Systemnahe Software II Datum und Uhrzeit: 21. Juli 2016, 10-12 Uhr Prüfer: Dr. Andreas F. Borchert Bearbeitungszeit: 120 Min. Institut: Numerische Mathematik Vom Prüfungsteilnehmer
Betriebssysteme. Dipl.-Ing.(FH) Volker Schepper
1. Der Prozess beginnt im Zustand Erzeugt, nachdem sein Vaterprozess den Systemaufruf fork() (s.u.) abgesetzt hat. In diesem Zustand wird der Prozess-Kontext initialisiert. 2. Ist diese Aufbauphase abgeschlossen,
Inhalt. Übungen zu Systemnahe Programmierung in C (SPiC) Prozesshierarchie. Prozesse. UNIX-Prozesshierarchie
Übungen zu Systemnahe Programmierung in C (SPiC) Sebastian Maier (Lehrstuhl Informatik 4) Übung 9 Sommersemester 2017 Inhalt Prozesse System-Schnittstelle Minimale Shell Einlesen von der Standard-Eingabe
Softwaresysteme I Übungen Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2007 U9.fm
U9 9. Übung U9 9. Übung U9-1 Überblick Besprechung Aufgabe 6 (printdir) Posix-Threads U9.1 U9-2 Motivation von Threads U9-2 Motivation von Threads UNIX-Prozesskonzept: eine Ausführungsumgebung (virtueller
Prüfung Betriebssysteme 1
Prüfung Betriebssysteme 1 Hinweise: Die Klausur umfasst 8 Aufgaben auf 5 Seiten. Die Arbeitszeit beträgt 90 Minuten. Bitte notieren Sie auf jedem abgegebenen Blatt Ihren Namen und Ihre Matrikelnummer!
Übung zu Grundlagen der Betriebssysteme. 6. Übung
Übung zu Grundlagen der Betriebssysteme 6. Übung 20.11.2012 Prozess & Programm Erläutern Sie den Begriff Prozess und unterscheiden Sie die Begriffe Prozess und Programm voneinander. Verwaltet ein in Ausführung
Ausgewählte Themen. In diesem Teil werden ausgewählte Themen vorgestellt: Fehlerbehandlung Dämonen Zombies. Inhalt. 1. Fehlerbehandlung...
Ausgewählte Themen In diesem Teil werden ausgewählte Themen vorgestellt: Fehlerbehandlung Dämonen Zombies Inhalt 1. Fehlerbehandlung... 2 2. Dämonen... 5 3. Zombies...16 Unix für Entwickler: AusgewaehlteThemen
FH Ravensburg-Weingarten Schriftlich Prüfung Programmieren
FH Ravensburg-Weingarten Schriftlich Prüfung Programmieren Prof. Dr. M. Zeller Datum, Zeit Aufgabenblätter erreichbare Punktzahl zugelassene Hilfsmittel, 0800 1000 Uhr (120 min) 16 Seiten (einschl. Deckblatt)
U9-1 Prozesse: Überblick. U9-1 UNIX-Prozesshierarchie. U9-2 POSIX Prozess-Systemfunktionen. Prozesse sind eine Ausführumgebung für Programme
U9 POSIX-Prozesse und Signale U9 POSIX-Prozesse und Signale U9-1 Prozesse: Überblick U9-1 Prozesse: Überblick Besprechung Aufgabe 6 Prozesse POSIX-Prozess-Systemfunktionen POSIX-Signale Prozesse sind eine
UNIX/Linux Lösung. Mär 14, 17 20:40 Seite 1/6. Prozeßsynchronisation (was ist das?, wo kommt es vor?, Beispiel?):
Mär 14, 17 20:40 Seite 1/6 Aufgabe 1: Erklären Sie folgende Begriffe (25 Punkte): Prozeßsynchronisation (was ist das?, wo kommt es vor?, Beispiel?): Abstimmen von mehreren Prozessen, warten auf Ergebnisse,
