Notice: Undefined index: string in /var/www/stefan/howtux.de/htdocs/article.php on line 49

Notice: Undefined index: settings in /var/www/stefan/howtux.de/htdocs/article.php on line 61
Home / Prozesse und IPC / Grundlagen von Prozessen

Grundlagen von Prozessen

Kategorie: Prozesse und IPCErstellt: 02.10.2007 - 23:58 Geändert: 23.10.2007 - 22:56
Autor: Stefan Abu Salah
0In den folgenden Kapiteln wollen wir uns nun Prozessen und Interprozesskommunikation widmen. Dies wollen wir ausschließlich aus der Sicht des Userspaces, also aus der Sicht des Benutzers.

Was ist ein Prozess?


Als Prozess bezeichnet man ein Programm, welches gerade ausgeführt wird. Das Betriebssystem übernimmt hierbei das Erstellen des Prozesses, also unter anderem das Anlegen der Datenstruktur und des Prozesskontrollblocks. Dieser Prozesskontrollblock beinhaltet wichtige Informationen, wie beispielsweise die eindeutige Prozess-ID, die User-ID, welche dem Prozess zugeordnet werden soll und das Arbeitsverzeichnis des Prozesses.
Jeder Prozess besitzt einen eigenen, geschützten Speicherbereich auf dem er arbeiten kann. Die Größe des hierfür reservierten Bereichs hängt davon ab wie groß der Speicherbedarf des jeweiligen Prozesses ist. Dem Prozess ist es unmöglich ausserhalb dieses Bereiches zu arbeiten.

Arten von Prozessen


Hintergrundprozesse
Hintergrundprozesse werden in der Shell durch ein an den Befehl angehängtes kaufmännisches Und (&) erzeugt. Diese Prozesse blockieren nicht die Konsole von der sie gestartet wurden. Ausgaben, welche der Prozess erzeugt landen weiterhin auf der Konsole. Möchte man dies verhindern stehen einem die gängigen Umlenkungsoperatoren zur Verfügung.

Dämonen
Eine ganz besonders wichtige und spezielle Art von Prozessen sind Dämonen. Ein Dämon (engl. daemon) arbeitet im Hintergrund, und wird im Regelfall für Aufgaben verwendet, welche keine Interaktion mit der Shell erfordern. Meist laufen Serverdienste (Webserver, Mailserver, etc.) als Dämonen. Diese "lauschen" zur Laufzeit still auf einem Port und beantworten hier ankommende Anfragen. Der größte Unterschied zwischen einem Dämon und einem Hintergrundprozess ist der, dass Dämonen eigene Sessionführer sind. Sie sind unabhängig von einer Shell. Bei Dämonen sind die Deskriptoren 1 und 2 nicht mit einer Shell verbunden, somit landet auch keine Ausgabe auf der Shell. Im Normalfall werden Dämonen beim Systemstart gestartet und bei einem Shutdown wieder beendet. Somit sind Dämonen in der Regel Kinder von init.

Beispiel: Hintergrundprozesse in der Shell

stefan@brian:~$ sleep 20 &
[1] 13971
stefan@brian:~$ sleep 20 &
[2] 13974
stefan@brian:~$ sleep 20 &
[3] 13981
stefan@brian:~$
[1] Done sleep 20
[2]- Done sleep 20
[3]+ Done sleep 20

Beendet man einen Vaterprozess (z.B. eine Shell), werden auch alle von ihm gestarteten Prozesse gestoppt.



Notice: Undefined variable: urli in /var/www/stefan/howtux.de/htdocs/classes.php on line 240
Bookmark auf del.icio.usBookmark auf Mister WongBookmark auf BlinklistBookmark auf GoogleBookmark auf LinkarenaBookmark auf YiggBookmark auf FolkdBookmark auf Yahoo
Home / Prozesse und IPC / Grundlagen von Prozessen
simplum