24.02.2013 Aufrufe

Einf ¨uhrung in UNIX - CIS

Einf ¨uhrung in UNIX - CIS

Einf ¨uhrung in UNIX - CIS

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

2.3 Daten <strong>in</strong> Bewegung: Prozesse 33<br />

Kontroll-Term<strong>in</strong>al und empfangen bestimmte Signale als Gruppe. Der geme<strong>in</strong>same<br />

Vorfahre ist der Prozessgruppenleiter. Über den Systemaufruf<br />

setpgrp(2) ernennt sich e<strong>in</strong> Prozess zum Leiter e<strong>in</strong>er neuen Gruppe. Ohne<br />

diese Möglichkeit gäbe es im System nur e<strong>in</strong>e Prozessgruppe, da alle Prozesse<br />

auf <strong>in</strong>it zurückgehen.<br />

2.3.2 Prozesserzeugung (exec, fork)<br />

Zeit<br />

Elternprozess<br />

❄<br />

wartend<br />

1. K<strong>in</strong>dprozess<br />

synchron<br />

wartend<br />

Asynchroner K<strong>in</strong>dprozess<br />

2. K<strong>in</strong>dprozess<br />

synchron<br />

Abb. 2.2: Synchrone und asynchrone Prozesse<br />

Nehmen wir an, wir hätten bereits e<strong>in</strong>en Prozess. Dieser kopiert sich, dann<br />

haben wir zwei gleiche Prozesse, e<strong>in</strong>en Elternprozess und e<strong>in</strong>en K<strong>in</strong>dprozess.<br />

Das Codesegment des K<strong>in</strong>dprozesses wird nun mit dem Code des neuen<br />

Kommandos oder Programmes überlagert. Dann wird der K<strong>in</strong>dprozess ausgeführt,<br />

während der Elternprozess wartet. Ist der K<strong>in</strong>dprozess fertig, wird<br />

er im Speicher gelöscht und se<strong>in</strong> Ende dem Elternprozess mitgeteilt, der nun<br />

weitermacht. Der K<strong>in</strong>dprozess kann se<strong>in</strong>erseits – solange er lebt – wieder<br />

K<strong>in</strong>der bekommen, so daß e<strong>in</strong>em lebhaften Familienleben nichts im Wege<br />

steht (Abb. 2.2 auf Seite 33). Durch das Kopieren erbt der K<strong>in</strong>dprozess beide<br />

Datensegmente des Elternprozesses und kann damit arbeiten. E<strong>in</strong>e Rückvererbung<br />

von den K<strong>in</strong>dern auf die Eltern gibt es im Gegensatz zum bürgerlichen<br />

Recht (BGB, 5. Buch) nicht, die Vererbung ist eher biologisch aufzufassen.<br />

Programmiertechnisch bedeutet die Prozesserzeugung den Aufruf e<strong>in</strong>es<br />

selbständigen Programmes (Hauptprogrammes) mittels der Systemaufrufe<br />

exec(2) und fork(2) aus e<strong>in</strong>em anderen Programm heraus. Diese Art<br />

der Prozesserzeugung ist flexibel, aber nicht gerade effektiv. Wenn es auf Ge-

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!