24.02.2013 Aufrufe

Einf ¨uhrung in UNIX - CIS

Einf ¨uhrung in UNIX - CIS

Einf ¨uhrung in UNIX - CIS

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

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

zwar ke<strong>in</strong> <strong>UNIX</strong>, sondern etwas kle<strong>in</strong>er und daher überschaubarer, aber die<br />

meisten Aufgaben und e<strong>in</strong>ige Lösungen s<strong>in</strong>d <strong>UNIX</strong>-ähnlich.<br />

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

2.3.1 Was ist e<strong>in</strong> Prozess?<br />

Wir müssen – zum<strong>in</strong>dest vorübergehend – unterscheiden zwischen e<strong>in</strong>em Programm<br />

und e<strong>in</strong>em Prozess, auch Auftrag oder Task genannt. E<strong>in</strong> Programm<br />

läuft nicht, sondern ruht als File im File-System, siehe Abschnitt Daten <strong>in</strong> Ruhe:<br />

Files ab Seite 45. Beim Aufruf wird es <strong>in</strong> den Arbeitsspeicher kopiert, mit<br />

Daten ergänzt und bildet dann e<strong>in</strong>en Prozess (process, processus), der Prozessorzeit<br />

anfordert und se<strong>in</strong>e Tätigkeit entfaltet. Man kann den Prozess als<br />

die grundlegende, unteilbare E<strong>in</strong>heit ansehen, <strong>in</strong> der Programme ausgeführt<br />

werden. Inzwischen unterteilt man jedoch <strong>in</strong> bestimmten Zusammenhängen<br />

Prozesse noch fe<strong>in</strong>er (threads), wie auch das Atom heute nicht mehr unteilbar<br />

ist. E<strong>in</strong> Prozess ist e<strong>in</strong>e kle<strong>in</strong>e, abgeschlossene Welt für sich, die mit der<br />

Außenwelt nur über wenige, genau kontrollierte Wege Verb<strong>in</strong>dung hält. Alle<br />

gängigen Betriebssysteme verwenden Prozesse, <strong>in</strong> der Ausgestaltung unterscheiden<br />

sich die Systeme.<br />

E<strong>in</strong> <strong>UNIX</strong>-Prozess besteht im Arbeitsspeicher aus drei Teilen: e<strong>in</strong>em<br />

Code-Segment (auch Text-Segment genannt, obwohl aus unlesbarem<br />

Masch<strong>in</strong>encode bestehend), e<strong>in</strong>em Benutzerdaten-Segment und e<strong>in</strong>em<br />

Systemdaten-Segment. Er bekommt e<strong>in</strong>e e<strong>in</strong>deutige Nummer, die<br />

Prozess-ID (PID). Das Code-Segment wird bei der Erzeugung des Prozesses<br />

beschrieben und ist dann vor weiteren schreibenden Zugriffen geschützt.<br />

Das Benutzerdaten-Segment wird vom Prozess beschrieben und gelesen, das<br />

Systemdaten-Segment darf vom Prozess gelesen und vom Betriebssystem beschrieben<br />

und gelesen werden. Im Benutzerdaten-Segment f<strong>in</strong>den sich unter<br />

anderem die dem Prozess zugeordneten Puffer. Unter die Systemdaten fallen<br />

Status<strong>in</strong>formationen über die Hardware und über offene Files. Durch die<br />

Verteilung der Rechte wird verh<strong>in</strong>dert, daß e<strong>in</strong> wildgewordener Prozess das<br />

ganze System lahmlegt 9 . E<strong>in</strong> Booten wegen e<strong>in</strong>es Systemabsturzes ist unter<br />

<strong>UNIX</strong> äußerst selten vonnöten.<br />

Die gerade im System aktiven Prozesse listet man mit dem Kommando<br />

ps(1) mit der Option -ef auf. Die Ausgabe sieht ungefähr so aus:<br />

UID PID PPID STIME TTY TIME COMMAND<br />

root 0 0 Jan 22 ? 0:04 swapper<br />

root 1 0 Jan 22 ? 1:13 <strong>in</strong>it<br />

root 2 0 Jan 22 ? 0:00 pagedaemon<br />

root 3 0 Jan 22 ? 0:00 statdaemon<br />

9 In e<strong>in</strong>facheren Betriebssystemen ist es möglich, daß e<strong>in</strong> Programm während der<br />

Ausführung se<strong>in</strong>en im Arbeitsspeicher stehenden Code verändert. Man könnte e<strong>in</strong><br />

Programm schreiben, daß sich selbst auffrißt.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!