www.wikidata.de-de.nina.az
Ein Prozess auch Task oder Programminstanz genannt 1 ist ein Computerprogramm zur Laufzeit Genauer ist ein Prozess die konkrete Instanziierung eines Programms zu dessen Ausfuhrung innerhalb eines Rechnersystems erganzt um weitere Verwaltungs Informationen und Ressourcenzuteilungen des Betriebssystems fur diese Ausfuhrung Ein Prozess ist die Ablaufumgebung fur ein Programm auf einem Rechnersystem sowie der darin eingebettete Binarcode des Programmes wahrend der Ausfuhrung Ein Prozess wird vom Betriebssystem dynamisch kontrolliert durch bestimmte Aktionen mit denen das Betriebssystem ihn in entsprechende Zustande setzt Als Prozess bezeichnet man auch die gesamte Zustandsinformation eines laufenden Programms Im Gegensatz dazu handelt es sich bei einem Programm um die statische Verfahrensvorschrift fur eine Verarbeitung auf einem Rechnersystem Die Prozesse werden vom Prozess Scheduler des Betriebssystems verwaltet Dieser kann einen Prozess entweder so lange rechnen lassen bis er endet oder blockiert nicht unterbrechender Scheduler oder dafur sorgen dass nach jeweils einer kurzen Zeitdauer der gerade ablaufenden Prozess unterbrochen wird und der Scheduler so zwischen verschiedenen aktiven Prozessen hin und her wechseln kann unterbrechender Scheduler wodurch der Eindruck von Gleichzeitigkeit entsteht auch wenn zu jedem Zeitpunkt nicht mehr als nur ein Prozess verarbeitet wird Letzteres ist die vorherrschende Scheduling Strategie heutiger Betriebssysteme Eine nebenlaufige Ausfuhrungseinheit innerhalb eines Prozesses wird Thread genannt Bei modernen Betriebssystemen gehort zu jedem Prozess mindestens ein Thread der den Programmcode ausfuhrt Oftmals werden nun nicht mehr Prozesse nebenlaufig ausgefuhrt sondern nur die Threads innerhalb eines Prozesses 2 Inhaltsverzeichnis 1 Unterscheidung zwischen Programm und Prozess 2 Prozesszustande 2 1 Prozesskontext 3 Prozessverwaltung 3 1 Prozesskontrollblock 3 2 Prozesstabelle 4 Operationen auf Prozessen 4 1 Prozesserzeugung 4 2 Prozessbeendigung 4 3 Prozessbesitzer und Prozessrechte 5 Prozessumschaltung 5 1 Prozess Scheduling 5 2 Unterbrechungen 5 2 1 Synchrone Unterbrechungen 5 2 2 Asynchrone Unterbrechungen 6 Threads 7 Interprozesskommunikation 8 Verbesserung der CPU Ausnutzung 9 Programmbeispiele 9 1 Erzeugen eines Kindprozesses mit dem fork Aufruf 9 2 Forkbomb 10 Siehe auch 11 Literatur 12 Einzelnachweise und AnmerkungenUnterscheidung zwischen Programm und Prozess BearbeitenEin Programm ist eine den Regeln einer bestimmten Programmiersprache genugende Folge von Anweisungen bestehend aus Deklarationen und Instruktionen um bestimmte Funktionen bzw Aufgaben oder Probleme mithilfe eines Computers zu bearbeiten oder zu losen 3 Ein Programm bewirkt nichts solange es nicht gestartet wurde Wird ein Programm gestartet genauer eine Kopie im Hauptspeicher des Programms auf dem Festwertspeicher so wird diese Instanz zu einem Betriebssystem Prozess der zum Ablauf einem Prozessorkern zugeordnet werden muss Andrew S Tanenbaum veranschaulicht den Unterschied zwischen einem Programm und einem Prozess metaphorisch anhand des Prozesses des Kuchenbackens Das Rezept fur den Kuchen ist das Programm d h ein in einer passenden Notation geschriebener Algorithmus der Backer ist der Prozessorkern und die Zutaten fur den Kuchen sind die Eingabedaten Der Prozess ist die Aktivitat die daraus besteht dass der Backer das Rezept liest die Zutaten herbeiholt und den Kuchen backt Es kann nun beispielsweise vorkommen dass der Sohn des Backers wie am Spiess schreiend in die Backstube gelaufen kommt In diesem Fall notiert sich der Backer an welcher Stelle des Rezeptes er sich befindet der Zustand des aktuellen Prozesses wird gespeichert und wechselt in einen Prozess mit hoherer Prioritat namlich Erste Hilfe leisten Dazu holt er ein Erste Hilfe Handbuch hervor und folgt den dortigen Anweisungen Den beiden Prozessen Backen und Erste Hilfe leisten liegt also ein unterschiedliches Programm zu Grunde Kochbuch und Erste Hilfe Handbuch Nachdem der Backersohn medizinisch versorgt wurde kann der Backer zum Backen zuruckkehren und an dem Punkt fortfahren an dem er unterbrochen wurde Das Beispiel veranschaulicht dass sich mehrere Prozesse einen Prozessorkern teilen konnen Eine Scheduling Strategie entscheidet wann die Arbeit an einem Prozess unterbrochen und ein anderer Prozess bedient wird 4 Ein Prozess stellt auf einem Rechnersystem die Ablaufumgebung fur ein Programm zur Verfugung und ist die Instanziierung eines Programms Als ablaufendes Programm beinhaltet ein Prozess dessen Anweisungen sie sind eine dynamische Folge von Aktionen die entsprechende Zustandsanderungen bewirken Als Prozess bezeichnet man auch die gesamte Zustandsinformation eines laufenden Programms 5 Der Aufbau eines Prozesses im Hauptspeicher mit Programmsegment text Datensegment data Heap und Stack Im Zusammenhang mit den Speicheradressen die ein laufendes Programm als Prozess nutzen darf spricht man auch von einem Prozessadressraum Damit ein Programm ausgefuhrt werden kann mussen ihm bestimmte Ressourcen zugeteilt werden Dazu gehort u a ein ausreichender Anteil des Hauptspeichers in dem der entsprechende Prozess ausgefuhrt werden soll Im Allgemeinen ubersetzt der Compiler ein Programm in eine ausfuhrbare Datei die vom Betriebssystem in den Adressraum eines Prozesses geladen werden kann Ein Programm kann nur zu einem Prozess werden wenn die ausfuhrbare Datei in den Hauptspeicher geladen wird Es gibt zwei ubliche Techniken wie ein Benutzer dem Betriebssystem anweist eine ausfuhrbare Datei zu laden und zu starten durch Doppelklick auf ein Icon das die ausfuhrbare Datei reprasentiert oder durch Eingabe des Dateinamens in der Kommandozeile 6 Ausserdem haben laufende Programme auch noch die Moglichkeit ohne Beteiligung des Benutzers weitere Prozesse mit Programmen zu starten Ein Prozess beinhaltet insbesondere den Wert des Befehlszahlers die Inhalte der zum Prozess gehorenden Prozessor Register das Programmsegment das den ausfuhrbaren Code des Programms enthalt das Stack Segment das temporare Daten wie Rucksprungadressen und lokale Variablen enthalt das Datensegment das globale Variablen enthalt und unter Umstanden einen Heap der dynamisch angeforderten Speicher umfasst der auch wieder freigegeben werden kann 7 Auch wenn zwei Prozesse zu demselben Programm gehoren werden sie trotzdem als zwei unterschiedliche Ausfuhrungseinheiten angesehen So konnen beispielsweise verschiedene Benutzer verschiedene Kopien eines gleichen Mail Programms ausfuhren oder ein einziger Benutzer kann verschiedene Kopien eines Browser Programms aktivieren Davon ist jede ein separater Prozess Auch wenn unter Umstanden das Programmsegment bei verschiedenen Instanzen eines Programms dasselbe ist so unterscheiden sich Daten Heap und Stack Segmente 8 Ein Prozess kann seinerseits wieder eine Ausfuhrungsumgebung fur anderen Programmcode sein Ein Beispiel dafur ist die Java Laufzeitumgebung Diese besteht ublicherweise aus der Java Virtual Machine JVM die fur die Ausfuhrung der Java Anwendungen verantwortlich ist Mit ihr werden Java Programme weitgehend unabhangig vom darunter liegenden Betriebssystem ausgefuhrt So lasst sich ein kompiliertes Java Programm Program class mit dem Kommandozeilenbefehl java Program ausfuhren Der Befehl java erzeugt einen gewohnlichen Prozess fur die JVM welche dann ihrerseits das Java Programm Program in der virtuellen Maschine ausfuhrt 8 Im Zusammenhang mit den Speicherbereichen die ein laufendes Programm als Prozess nutzen darf spricht man auch von einem Prozessadressraum Ein Prozess kann nur Daten verarbeiten die zuvor in seinen Adressraum geladen wurden Daten die momentan von einem Maschinenbefehl verwendet werden mussen sich zudem im physischen Hauptspeicher befinden 9 Der Adressraum eines Prozesses ist im Allgemeinen virtuell der virtuelle Speicher bezeichnet den vom tatsachlich vorhandenen Hauptspeicher unabhangigen Adressraum der einem Prozess vom Betriebssystem zur Verfugung gestellt wird Die Memory Management Unit MMU verwaltet den Zugriff auf den Hauptspeicher Sie rechnet eine virtuelle in eine physische Adresse um siehe dazu auch Speicherverwaltung und Paging Prozesszustande BearbeitenEs wird unterschieden zwischen dem Ausfuhrungszustand eines Prozesses welche Daten in den Registern stehen wie viel Speicher er an welchen Adressen besitzt aktuelle Ausfuhrungsstelle im Programm Befehlszahler usw Prozesskontext sowie dem Prozesszustand aus Sicht des Betriebssystems zum Beispiel gerade rechnend blockiert wartend fertig Ein Prozessor kern kann immer nur einen Prozess gleichzeitig verarbeiten Bei den ersten Computern wurden daher die Prozesse immer nacheinander als Ganzes verarbeitet es konnte immer nur ein Prozess zur gleichen Zeit exklusiv ablaufen Um die Wartezeiten beim Zugriff z B auf langsame Peripherie Einheiten nutzen zu konnen wurde die Moglichkeit geschaffen Prozesse nur teilweise auszufuhren zu unterbrechen und spater wieder fortzufuhren wieder aufzusetzen Der Begriff Multiprogramming auch Multiprogrammbetrieb oder Multiprocessing bezeichnet im Gegensatz zum Einprogrammbetrieb Singleprocessing die Moglichkeit der gleichzeitigen oder quasi gleichzeitigen Ausfuhrung von Programmen Prozessen in einem Betriebssystem Die meisten modernen Betriebssysteme wie Windows oder Unix unterstutzen den Mehrprozessbetrieb wobei die Anzahl der nebenlaufigen Prozesse meist wesentlich hoher ist als die Anzahl der vorhandenen Prozessorkerne 10 Ein Prozess durchlauft somit wahrend seiner Lebenszeit verschiedene Zustande Wenn das Betriebssystem entscheidet den Prozessor fur eine gewisse Zeit einem anderen Prozess zuzuteilen wird zunachst der aktuell rechnende Prozess gestoppt und in den Zustand rechenbereit versetzt Danach kann der andere Prozess in den Zustand rechnend versetzt werden Es kann auch sein dass ein Prozess blockiert wird weil er nicht weiterarbeiten kann Typischerweise geschieht dies durch das Warten auf Eingabedaten die noch nicht zur Verfugung stehen Vereinfacht lassen sich vier Zustande unterscheiden 11 Rechnend engl running auch aktiv Der Prozess wird in diesem Moment auf der CPU ausgefuhrt d h die Programm Befehle werden abgearbeitet Einem Prozess im Zustand rechnend kann das Betriebsmittel CPU auch wieder entzogen werden er wird dann in den Zustand bereit versetzt Rechen bereit engl ready Im Zustand bereit befinden sich Prozesse die gestoppt wurden um einen anderen Prozess rechnen zu lassen Sie konnen theoretisch ihren Ablauf fortsetzen und warten nun darauf dass ihnen die CPU wieder zugeteilt wird Auch wenn ein neuer Prozess erzeugt wird tritt dieser zunachst in den Zustand bereit ein Blockiert engl blocked Prozesse im Zustand blockiert warten auf bestimmte Ereignisse die fur den weiteren Prozessablauf notwendig sind Beispielsweise sind E A Gerate im Vergleich zur CPU nur sehr langsam arbeitende Komponenten hat ein Prozess das Betriebssystem mit einer E A Gerate Kommunikation beauftragt so muss er warten bis das Betriebssystem diese abgeschlossen hat Beendet engl terminated Der Prozess hat seine Ausfuhrung beendet das Betriebssystem muss noch aufraumen Dies lasst sich als Zustandsautomat eines Prozesses mit vier Zustanden modellieren Es ergeben sich dabei u a die folgenden Zustandsubergange 12 a Die Prozesse die sich im Zustand rechenbereit befinden werden in einer Ready Queue verwaltet Der Ubergang a wird von einem Teil des Betriebssystems ausgefuhrt der Prozess Scheduler genannt wird Meistens sind mehrere Prozesse gleichzeitig rechenbereit und konkurrieren um die CPU Der Scheduler trifft die Wahl welcher Prozess als nachster lauft b Dieser Ubergang erfolgt wenn die Rechenzeit die der Scheduler dem Prozess zugeteilt hat abgelaufen ist und nun ein anderer Prozess Rechenzeit erhalten soll oder der aktive Prozess seine Rechenzeit freiwillig vorzeitig unterbricht zum Beispiel mit einem Systemaufruf c Wenn ein Prozess im Zustand rechnend momentan nicht fortfahren kann meistens weil er eine Dienstleistung des Betriebssystems benotigt oder eine benotigte Ressource im Moment noch nicht zur Verfugung steht so versetzt das Betriebssystem ihn solange in den Zustand blockiert Beispielsweise wird ein Prozess blockiert wenn er von einer Pipe oder einer Spezialdatei z B einer Kommandozeile liest und dort noch keine Daten anliegen d Liegt die Ursache des Blockiertseins fur einen Prozess nicht mehr vor zum Beispiel weil das Betriebssystem die Dienstleistung erbracht hat eine Ressource nun verfugbar ist oder ein externes Ereignis eingetreten ist auf das der blockierte Prozess gewartet hat z B Tastendruck Mausklick so wird dieser wieder in den Zustand rechenbereit versetzt e Wenn ein Prozess seine Aufgabe erledigt hat terminiert er d h er meldet dem Betriebssystem dass er genau mit dieser Meldung endet das Betriebssystem versetzt ihn in den Zustand beendet Ein weiterer Grund fur eine Terminierung liegt vor wenn der Prozess einen schwerwiegenden Fehler verursacht hat und das Betriebssystem ihn abbrechen muss oder der Benutzer eine Terminierung explizit veranlasst Das Betriebssystem hat nun Zeit belegte Ressourcen freizugeben offene Dateien zu schliessen und ahnliche Aufraumarbeiten durchzufuhren Naturlich sind die Zustandsautomaten moderner Betriebssysteme etwas komplexer aber im Prinzip sind sie ahnlich konzipiert Auch die Bezeichnungen der Prozesszustande variieren zwischen den Betriebssystemen Grundlegend bleibt dass sich pro Prozessor kern nur ein Prozess im Zustand rechnend befinden kann dagegen konnen viele Prozesse gleichzeitig rechenbereit und blockiert sein 8 Prozesskontext Bearbeiten Die gesamte Information die fur den Ablauf und die Verwaltung von Prozessen von Bedeutung ist bezeichnet man als Prozesskontext Der Prozesskontext beinhaltet u a die Informationen die im Betriebssystem fur einen Prozess verwaltet werden und die Inhalte aller zum Prozess gehorenden Prozessorregister z B Allzweckregister Befehlszahler Statusregister und MMU Register Die Registerinhalte sind wesentlicher Bestandteil des sogenannten Hardware Kontext 13 Verliert ein rechnender Prozess die CPU so findet ein sog Kontextwechsel engl context switch statt Dabei wird zunachst der Hardware Kontext des aktiven Prozesses gesichert anschliessend wird der Kontext des Schedulers hergestellt und dieser ausgefuhrt er entscheidet nun ob welcher Prozess als nachstes folgen soll Der Scheduler sichert dann seinen eigenen Kontext ladt den Hardware Kontext des neu zu aktivierenden Prozesses in den Prozessorkern und startet ihn anschliessend 13 Prozessverwaltung BearbeitenProzesskontrollblock Bearbeiten Jeder Prozess eines Betriebssystems wird durch einen Prozesskontrollblock engl process control block kurz PCB auch task control block dargestellt Der Prozesskontrollblock beinhaltet viele Informationen die mit einem bestimmten Prozess verbunden sind Es werden also alle wichtigen Informationen uber einen Prozess gespeichert wenn er vom Zustand rechnend in die Zustande rechenbereit oder blockiert ubergeht Der Hardware Kontext eines zu suspendierenden Prozesses wird in seinem PCB gesichert der Hardware Kontext des neu zu aktivierenden Prozesses aus seinem PCB in die Ablaufumgebung geladen 14 Dadurch kann der blockierte oder rechenbereite Prozess zu einem spateren Zeitpunkt fortgesetzt werden genau in dem Zustand wie er vor der Unterbrechung war ggf mit Ausnahme der Anderung die ihn zuvor blockierte 15 Zu den Informationen die uber einen Prozess im PCB gespeichert werden gehoren unter anderem 16 Der Process identifier kurz PID auch Prozessnummer Prozesskennung oder Prozess ID Dies ist ein einzigartiger Schlussel welcher der eindeutigen Identifikation von Prozessen dient Der PID andert sich wahrend der Laufzeit des Prozesses nicht Das Betriebssystem stellt sicher dass systemweit keine Nummer zweimal vorkommt 17 Der Prozessstatus rechenbereit rechnend blockiert oder beendet Der Inhalt des Befehlszahlers der die Adresse des nachsten auszufuhrenden Befehls enthalt Die Inhalte aller anderer CPU Register die dem Prozess zur Verfugung stehen mit ihm zusammenhangen Scheduling Informationen Dazu gehoren die Prioritat des Prozesses Zeiger auf die Scheduling Warteschlangen und weitere Scheduling Parameter Informationen fur die Speicherverwaltung Diese Informationen konnen beispielsweise die Werte der Basis und Grenzregister beinhalten und Zeiger auf Codesegment Datensegment und Stacksegment Buchhaltung Das Betriebssystem fuhrt auch Buch daruber wie lange ein Prozess schon gerechnet hat wie viel Speicher er belegt usw E A Statusinformationen Dies beinhaltet eine Liste der E A Gerate bzw Ressourcen die mit dem Prozess verbunden sind von ihm belegt sind zum Beispiel auch offene Dateien Elternprozess Prozessgruppe CPU Zeit der Kindprozesse usw Zugriffs und BenutzerrechteProzesstabelle Bearbeiten Das Betriebssystem fuhrt eine Tabelle mit aktuellen Prozessen in einer kerneleigenen Datenstruktur der sog Prozesstabelle Bei der Erzeugung eines neuen Prozesses wird darin ein Prozesskontrollblock als neuer Eintrag angelegt Viele Zugriffe auf einen Prozess basieren darauf dass uber den PID der zugehorige PCB in der Prozesstabelle gesucht wird Da PCBs Informationen uber die belegten Ressourcen enthalten mussen sie im Speicher direkt zugreifbar sein Wesentliches Kriterium in was fur einer Datenstruktur die Tabelle im Betriebssystem gespeichert wird ist daher ein moglichst effizienter Zugriff Operationen auf Prozessen BearbeitenProzesserzeugung Bearbeiten Ausgabe einer Unix Shell beim Aufruf des Befehls ps fProzesse die mit menschlichen Benutzern interagieren mussen im Vordergrund laufen also Eingabe und Ausgaberessourcen belegen und verwenden Hintergrundprozesse dagegen erfullen Funktionen die keine Benutzer Interaktion benotigen sie sind meist eher dem Betriebssystem als ganzes zuzuordnen denn einem bestimmten Benutzer Prozesse die im Hintergrund bleiben heissen auf Unix basierten Betriebssystemen Daemons auf Windows basierten Dienste Wenn der Computer hochgefahren wird werden ublicherweise viele Prozesse gestartet von denen der Benutzer nichts bemerkt Beispielsweise konnte ein Hintergrundprozess zum Empfangen von E Mails gestartet werden der im Zustand blockiert verbleibt bis eine E Mail eintrifft In unixoiden Systemen werden die laufenden Prozesse mit dem Kommando ps angezeigt 18 unter Windows wird dazu der Taskmanager benutzt 19 Ein laufender Prozess kann weitere Prozesse durch einen Systemaufruf erzeugen lassen ein Beispiel Systemaufruf dafur ist die Funktion fork in unixoiden Systemen Diese erzeugt aus einem existierenden Prozess Elternprozess einen zusatzlichen neuen Prozess Kindprozess Der Kindprozess wird als Kopie des Elternprozesses erzeugt erhalt jedoch einen eigenen Prozessidentifikator PID und wird in der Folge als eigenstandige Instanz eines Programms und unabhangig vom Elternprozess ausgefuhrt 20 In Windows kann ein Prozess durch die Funktion CreateProcess gestartet werden 21 In manchen Betriebssystemen besteht zwischen Eltern und Kindprozessen weiterhin eine gewisse Beziehung Wenn der Kindprozess weitere Prozesse erzeugt entsteht eine Prozesshierarchie In Unix formiert ein Prozess zusammen mit seinen Nachkommen eine Prozessfamilie 22 Versendet beispielsweise ein Benutzer ein Signal mittels Tastatureingabe so wird dieses an all diejenigen Prozesse der Prozessfamilie weitergeleitet die momentan mit der Tastatur in Verbindung stehen Jeder Prozess kann nun selber entscheiden wie er mit dem Signal umgeht In Windows existiert dagegen kein Konzept der Prozesshierarchie Alle Prozesse sind gleichwertig Es ist lediglich ein spezielles Token Handle genannt vorhanden das einem Elternprozess erlaubt seinen Kindprozess zu steuern 23 Prozessbeendigung Bearbeiten Ein Prozess endet normalerweise indem er sich am Ende seines Programmablaufs mittels Systemaufruf als beendet erklart Bildschirmorientierte Programme wie Textverarbeitungsprogramme und Webbrowser stellen ein Symbol oder einen Menupunkt bereit den der Benutzer anklicken kann um den Prozess anzuweisen sich freiwillig zu beenden Ein Prozess sollte vor seinem Ende samtliche geoffneten Dateien schliessen und jegliche Ressourcen zuruckgeben Als beendender Systemaufruf existiert unter Unix der Systemaufruf exit und unter Windows exitProcess Ein Prozess kann auch von einem anderen Prozess beendet terminiert werden Ein Systemaufruf der das Betriebssystem anweist einen anderen Prozess zu beenden heisst unter Unix kill und unter Windows TerminateProcess Ein weiterer Grund fur eine Terminierung liegt vor wenn ein Prozess einen schwerwiegenden Fehler verursacht Dies geschieht haufig aufgrund von Programmierfehlern Beispielsweise wenn der Prozess auf Ressourcen zugreifen mochte die ihm nicht mehr zugeteilt sind zum Beispiel Schreiben auf eine bereits geschlossene Datei Lesen aus einem Speicherbereich der bereits dem Betriebssystem zuruckgegeben wurde Ebenso bricht das Betriebssystem einen Prozess ab der illegale Aktionen auszufuhren versucht zum Beispiel Bitkombinationen als Befehle ausfuhren mochte die die CPU nicht kennt oder direkte Hardwarezugriffe die nur das Betriebssystem darf 24 Wenn ein Prozess in unixoiden Betriebssystemen beendet wurde kann er trotzdem noch in der Prozesstabelle gelistet sein und noch zugeteilte Ressourcen belegen sowie Attribute besitzen Ein Prozess in diesem Zustand wird Zombie Prozess genannt Wenn ein Kindprozess beendet wird kann der Elternprozess dadurch vom Betriebssystem erfragen auf welche Art dieser beendet wurde erfolgreich mit Fehler abgesturzt abgebrochen etc Um diese Abfrage zu ermoglichen bleibt ein Prozess selbst nachdem er beendet wurde in der Prozesstabelle stehen bis der Elternprozess diese Abfrage durchfuhrt egal ob diese Information gebraucht wird oder nicht Bis dahin hat der Kindprozess den Zustand Zombie Prozessbesitzer und Prozessrechte Bearbeiten Ein Aspekt der IT Sicherheit verlangt dass sich Benutzer gegenuber dem Computersystem authentifizieren mussen Ansonsten kann das Betriebssystem nicht beurteilen auf welche Dateien oder andere Betriebsmittel ein Benutzer zugreifen darf Bei der am weitesten verbreiteten Form der Authentifizierung wird der Benutzer aufgefordert einen Login Namen und ein Passwort einzugeben 25 Jeder Benutzer erhalt so eine eindeutige Benutzer ID UID Benutzer konnen wiederum in Gruppen organisiert werden denen eine Gruppen ID GID zugewiesen ist Der Zugriff auf gewisse Daten soll insofern beschrankt und kontrolliert sein als nur autorisierte Benutzer oder Programme auf die Informationen zugreifen durfen So baut beispielsweise ein wichtiger Sicherheitsmechanismus von unixoiden Systemen auf diesem Benutzer Konzept auf Jeder Prozess tragt die Benutzer ID und Gruppen ID seines Aufrufers Durch den Login Prozess erfahrt das Betriebssystem mit wessen Benutzer ID ein Prozess zu starten ist 26 Man sagt dass ein Prozess dem Benutzer gehort der ihn gestartet hat Der Benutzer ist also der Besitzer des Prozesses Wenn nun beispielsweise eine Datei erstellt wird bekommt diese die UID und GID des erzeugenden Prozesses Die Datei gehort somit ebenfalls dem Benutzer in dessen Namen mit dessen UID sie angelegt wurde Wenn ein Prozess auf eine Datei zugreift pruft das Betriebssystem anhand der UID der Datei ob diese dem Besitzer des Prozesses gehort und entscheidet daraufhin ob der Zugriff gestattet wird 27 Ein Spezialfall ist der Superuser oder Root Benutzer der mit den weitreichendsten Zugriffsrechten ausgestattet ist In unixoiden Systemen hat dieses Benutzerkonto die UID 0 Prozessen mit der UID 0 ist es auch gestattet eine kleine Anzahl geschutzter Systemaufrufe durchzufuhren die fur normale Benutzer gesperrt sind Das Setuid Bit ermoglicht einen erweiterten Schutzmechanismus Wenn das Setuid Bit gesetzt ist dann wird die effektive UID fur diesen Prozess auf den Besitzer der ausfuhrbaren Datei gesetzt anstatt auf den Benutzer der es aufgerufen hat Dieses Vorgehen ermoglicht unprivilegierten Benutzern und Prozessen einen kontrollierten Zugriff auf privilegierte Ressourcen 28 Prozessumschaltung BearbeitenBei einer Prozessumschaltung engl context switch wird der Prozessor an einen anderen Prozess vergeben Bei nicht unterbrechbaren Prozessen findet eine Prozessumschaltung beim Start und beim Ende einer Prozessausfuhrung statt Bei unterbrechbaren Prozessen ist eine Umschaltung moglich wann immer es der Prozessor zulasst Man spricht auch von der Verdrangung engl suspension eines Prozesses durch einen anderen wenn ein Prozess mit einer hoheren Prioritat die CPU erhalt 29 Prozess Scheduling Bearbeiten Hauptartikel Prozess Scheduler Ein Prozess Scheduler regelt die zeitliche Ausfuhrung mehrerer Prozesse Die Strategie die er verwendet heisst Schedulingstrategie Dies ist die Strategie nach der der Scheduler die Prozess Umschaltungen vornimmt Diese sollte eine bestmogliche Zuteilung der CPU an die Prozesse ermoglichen wobei allerdings abhangig vom ausfuhrenden System unterschiedliche Ziele verfolgt werden konnen Bei interaktiven Systemen ist beispielsweise eine kurze Antwortzeit erwunscht d h eine moglichst kurze Reaktionszeit des Systems auf die Eingaben eines Benutzers Wenn er beispielsweise in einem Texteditor eine Tastatureingabe tatigt sollte der Text sofort erscheinen Als einer von mehreren Benutzern sollte auch eine gewisse Fairness garantiert werden Kein Benutzer Prozess sollte unverhaltnismassig lange warten mussen wahrend ein anderer bevorzugt wird Einprozessorsysteme verwalten genau einen Prozessor kern CPU Es gibt darauf also immer nur einen Prozess der im Zustand rechnend ist alle anderen rechenbereiten Prozesse mussen warten bis ihnen der Scheduler die CPU fur eine gewisse Zeit zuweist Auch bei Mehrprozessorsystemen ist die Anzahl der Prozesse meist grosser als die Anzahl der Prozessorkerne und die Prozesse konkurrieren um das knappe Betriebsmittel CPU Zeit 30 Ein weiteres allgemeines Ziel der Schedulingstrategie ist es moglichst alle Teile des Systems beschaftigt zu halten Wenn die CPU und alle Ein Ausgabegerate die ganze Zeit uber am Laufen gehalten werden konnen wird mehr Arbeit pro Sekunde erledigt als wenn sich einige Komponenten des Rechnersystems im Leerlauf befinden 31 Grob lassen sich Schedulingstrategien in zwei Kategorien einteilen Eine nicht unterbrechende engl nonpreemptive Schedulingstrategie wahlt einen Prozess aus und lasst ihn so lange laufen bis er blockiert z B wegen Ein Ausgabe oder weil er auf einen anderen Prozess wartet oder bis er freiwillig die CPU abgibt Im Gegensatz dazu wahlt eine unterbrechende engl preemptive Schedulingstrategie einen Prozess aus und lasst ihn nicht langer als eine festgelegte Zeit laufen Falls er nach diesem Zeitintervall immer noch rechnet wird er beendet und der Scheduler wahlt einen anderen Prozess aus den rechenbereiten Prozessen zur Ausfuhrung aus Unterbrechendes Scheduling erfordert einen Timerinterrupt der am Ende des Zeitintervalls dem Scheduler die Kontrolle uber die CPU zuruckgibt 32 Unterbrechungen Bearbeiten Die Hardware oder die Software kann einen Prozess vorubergehend unterbrechen um einen anderen in der Regel kurzen aber zeitkritischen Vorgang abzuarbeiten siehe Interrupt Da Unterbrechungen in Systemen haufige Ereignisse sind muss entsprechend sichergestellt werden dass ein unterbrochener Prozess spater wieder fortgesetzt werden kann ohne dass bereits geleistete Arbeit verloren geht In den unterbrochenen Prozess wird quasi eine Unterbrechungsbehandlung eingeschoben Diese wird im Betriebssystem ausgefuhrt Das auslosende Ereignis wird Unterbrechungsanforderung engl interrupt request kurz IRQ genannt Nach dieser Anforderung fuhrt der Prozessor eine Unterbrechungsroutine aus auch Unterbrechungsbehandlung genannt engl interrupt handler interrupt service routine oder kurz ISR Anschliessend wird der unterbrochene Prozess dort fortgefuhrt wo er unterbrochen wurde Synchrone Unterbrechungen Bearbeiten Synchrone Unterbrechungen treten bei internen Ereignissen auf die insbesondere bei identischen Rahmenbedingungen Programmausfuhrung mit gleichen Daten immer an der gleichen Programmstelle auftreten Die Unterbrechungsstelle im Programm ist also vorhersagbar Die Bezeichnung synchron deutet darauf hin dass diese Unterbrechungen an die Ausfuhrung eines Befehls im Rechnerkern selbst geknupft sind Der Rechnerkern erkennt Ausnahmen engl exceptions oder traps im Rahmen seiner Verarbeitung z B eine Division durch null Der Rechnerkern muss daher auf interne Unterbrechungswunsche sofort reagieren und die Behandlung der aufgetretenen Fehler Situation in der Unterbrechungsbehandlung veranlassen Sie sind also nicht verzogerbar 33 Entsprechend ihrer typischen Bedeutung haben sich fur einige Unterbrechungswunsche spezielle Bezeichnungen eingeburgert zum Beispiel 34 Ein Befehlsalarm tritt auf wenn ein Benutzerprozess versucht einen privilegierten Befehl auszufuhren Ein Seitenfehler tritt bei virtueller Speicherverwaltung mit Paging auf wenn ein Programm auf einen Speicherbereich zugreift der sich gerade nicht im Hauptspeicher befindet sondern beispielsweise auf die Festplatte ausgelagert wurde Ein arithmetischer Alarm tritt auf wenn eine arithmetische Operation nicht ausgefuhrt werden kann beispielsweise wenn durch Null dividiert werden soll Asynchrone Unterbrechungen Bearbeiten Asynchrone Unterbrechungen auch asynchrone Interrupts genannt sind Unterbrechungen die nicht an den rechnenden Prozess gebunden sind Sie kommen durch externe Ereignisse zustande und hangen nicht mit der CPU Verarbeitung zusammen Dementsprechend sind solche Unterbrechungen unvorhersagbar und nicht reproduzierbar Haufig wird eine asynchrone Unterbrechung durch ein Ein Ausgabegerat ausgelost Diese bestehen ublicherweise aus zwei Teilen einem Controller und dem Gerat selbst Der Controller ist ein Chip oder auch mehrere Chips der das Gerat auf der Hardwareebene steuert Er bekommt Befehle vom Betriebssystem wie das Lesen von Daten vom Gerat und fuhrt diese aus Sobald das Ein Ausgabegerat seine Aufgabe beendet hat erzeugt es ein Interrupt Dazu wird ein Signal auf den Bus gelegt das vom entsprechenden Interrupt Controller erkannt wird der dann aus einem interrupt request eine Unterbrechung der CPU erzeugt die mit Hilfe eines passenden Programmstucks bearbeitet werden muss meist eine Interrupt Service Routine kurz ISR 35 Beispiele bei denen Gerate eine Unterbrechungsanforderung generieren sind Netzwerkkarte wenn Daten empfangen wurden und im Puffer bereitliegen Festplatte wenn die vorher angeforderten Daten gelesen wurden und abholbereit sind das Lesen von der Festplatte dauert relativ lange Grafikkarte wenn das aktuelle Bild fertig gezeichnet wurde Soundkarte wenn wieder Sound Daten zum Abspielen benotigt werden bevor der Puffer leer wird Die Interrupt Service Routinen werden meist an Interrupt Vektoren adressiert die in einer Interrupt Vektor Tabelle gespeichert sind Ein Interrupt Vektor ist also ein Eintrag in dieser Tabelle der die Speicheradresse der Interrupt Service Routinen enthalt 35 Am Ende einer Interrupt Bearbeitungsroutine sendet die ISR an den Interrupt Controller eine Bestatigung Der alte Prozessorstatus wird anschliessend wieder hergestellt und der unterbrochene Prozess kann an der vorher unterbrochenen Stelle weiterarbeiten Durch eine entsprechende Scheduling Eintscheidung kann auch ermoglicht werden dass zunachst ein Prozess mit hoherer Prioritat die CPU erhalt bevor der unterbrochene Prozess an der Reihe ist Dies hangt von der Schedulingstrategie des Betriebssystems ab 36 Threads Bearbeiten Hauptartikel Thread Informatik Drei Prozesse mit einem Thread und ein Prozess mit drei ThreadsDa die Verwaltung von Prozessen relativ aufwandig ist unterstutzen moderne Betriebssysteme auch ein Ressourcen schonenderes Konzept die sogenannten Threads deutsch Faden Ausfuhrungsstrange Ein Thread verkorpert eine nebenlaufige Ausfuhrungseinheit innerhalb eines Prozesses Im Gegensatz zu den schwergewichtigen heavy weight Prozessen werden Threads als leichtgewichtige light weight Prozesse kurz LWP charakterisiert Diese lassen sich leichter erzeugen und wieder zerstoren In vielen Systemen lauft die Erstellung eines Threads 10 100 mal schneller ab als die Erstellung eines Prozesses Insbesondere wenn sich die Anzahl an benotigten Threads dynamisch und schnell verandert ist diese Eigenschaft von Vorteil Threads existieren innerhalb von Prozessen und teilen sich deren Ressourcen Ein Prozess kann mehrere Threads oder wenn bei dem Programmablauf keine Parallelverarbeitung vorgesehen ist auch nur einen einzigen Thread beinhalten Ein wesentlicher Unterschied zwischen einem Prozess und einem Thread besteht darin dass jeder Prozess seinen eigenen Adressraum besitzt wahrend fur einen neu gestarteten Thread kein neuer Adressraum eingerichtet werden muss sondern die Threads auf den gemeinsamen Speicher des Prozesses zugreifen konnen Threads teilen sich innerhalb eines Prozesses auch andere betriebssystemabhangige Ressourcen wie Prozessoren Dateien und Netzwerkverbindungen Deswegen ist der Verwaltungsaufwand fur Threads ublicherweise geringer als der fur Prozesse Ein wesentlicher Effizienzvorteil von Threads besteht zum einen darin dass im Gegensatz zu Prozessen beim Threadwechsel kein vollstandiger Wechsel des Prozesskontextes notwendig ist da alle Threads einen gemeinsamen Teil des Prozesskontextes verwenden zum anderen in der einfachen Kommunikation und schnellem Datenaustausch zwischen Threads Threads eines Prozesses sind aber nicht gegeneinander geschutzt und mussen sich daher beim Zugriff auf die gemeinsamen Prozess Ressourcen abstimmen synchronisieren 37 Die Implementierung von Threads hangt vom jeweiligen Betriebssystem ab Sie kann auf Kernel oder auf Benutzerebene erfolgen So sind Threads in Windows Betriebssystemen auf Kernelebene realisiert in Unix sind Thread Implementierungen sowohl auf der Kernel als auch auf der Benutzerebene moglich Bei Threads auf der Benutzerebene fuhrt die entsprechende Threadbibliothek das Scheduling und Umschalten zwischen den Threads durch Jeder Prozess verwaltet einen privaten Thread Kontrollblock analog zum PCB und der Kern hat keinerlei Kenntnis davon ob ein Prozess mehrere Threads verwendet oder nicht Bei Kernel Threads werden die Threads im Kernelmodus verwaltet Eine spezielle Threadbibliothek ist dabei fur den Anwendungsprogrammierer nicht erforderlich Der Kern ist hier also an der Erzeugung und Umschaltung von Threads beteiligt 38 Ein Thread Paket auf Benutzerebene links und ein Thread Paket vom Betriebssystem Kern verwaltet rechts Interprozesskommunikation Bearbeiten Hauptartikel Interprozesskommunikation Der Begriff Interprozesskommunikation engl interprocess communication kurz IPC meint verschiedene Verfahren des Informationsaustausches zwischen den Prozessen eines Systems Bei der Variante Shared Memory erfolgt die Kommunikation dadurch dass mehrere Prozesse auf einen gemeinsamen Datenspeicher zugreifen konnen beispielsweise gemeinsame Bereiche des Arbeitsspeichers Bei einer Message Queue dagegen werden Nachrichten Datenpakete von einem Prozess an eine Liste Nachrichtenschlange angehangt von dort konnen diese von einem anderen Prozess abgeholt werden Dritte Variante ist die Pipe ein Byte Datenstrom zwischen zwei Prozessen nach dem FIFO Prinzip Um langere Datenpakete effizient ubertragen zu konnen wird eine Pipe meist durch einen Sende und oder Empfangs Puffer erganzt Die Kommunikation zwischen den Prozessen sollte in einer gut strukturierten Weise erfolgen Um Race Conditions zu vermeiden sollten die kritischen Abschnitte in denen auf gemeinsam genutzte Ressourcen zugegriffen wird vor einem quasi gleichzeitigen Zugriff geschutzt werden Dies kann durch verschiedene Mechanismen wie Semaphore oder Monitore realisiert werden Wenn ein Prozess auf die Freigabe einer Ressource oder den Empfang einer Nachricht wartet die ein anderer Prozess nicht freigibt sendet weil jener wiederum darauf wartet dass ersterer eine andere Ressource freigebe Nachricht sende so entsteht eine sogenannte Deadlock Situation Es konnen sich auch mehr als zwei Prozesse gegenseitig blockieren Klassische Problemstellungen der Interprozesskommunikation sind das Erzeuger Verbraucher Problem das Philosophenproblem und das Leser Schreiber Problem Verbesserung der CPU Ausnutzung BearbeitenDurch den Einsatz von Multiprogrammierung kann die CPU Ausnutzung verbessert werden Wenn ein Prozess einen Anteil p p seiner Laufzeit auf die Beendigung von Ein Ausgaben wartet so ist die Wahrscheinlichkeit dass n n solche Prozesse auf die Ein Ausgabe warten p n p n Dies entspricht der Wahrscheinlichkeit dass die CPU unbeschaftigt ware Die CPU Ausnutzung kann dadurch als Funktion von n n ausgedruckt werden die Grad der Multiprogrammierung genannt wird CPU Ausnutzung 1 p n displaystyle 1 p n Es ist durchaus ublich dass ein interaktiver Prozess 80 oder mehr im Ein Ausgabe Wartezustand verbringt Auch auf Servern die viel Plattenein ausgabe durchfuhren ist dieser Wert realistisch Unter dieser Annahme dass Prozesse 80 ihrer Zeit im blockierten Zustand verbringen mussen mindestens 10 Prozesse laufen damit die CPU weniger als 10 der Zeit verschwendet wird Naturlich stellt dieses probabilistische Modell nur eine Annaherung dar So setzt es voraus dass alle Prozesse unabhangig sind In einer einzigen CPU konnen jedoch nicht mehrere Prozesse gleichzeitig laufen Es musste also noch berucksichtigt werden dass ein rechenbereiter Prozess warten muss wahrend die CPU lauft Ein exaktes Modell kann mit Hilfe der Warteschlangentheorie konstruiert werden Dennoch veranschaulicht das Modell die Verbesserung der CPU Ausnutzung Mit Multiprogrammierung konnen Prozesse die CPU benutzen die ansonsten untatig ware Es lassen sich so zumindest uberschlagige Vorhersagen uber die CPU Performanz machen 39 Programmbeispiele BearbeitenErzeugen eines Kindprozesses mit dem fork Aufruf Bearbeiten Mit Hilfe der fork Funktion erstellt ein Prozess eine nahezu identische Kopie von sich selber Der Name bedeutet im Englischen in etwa sich gabeln verzweigen oder spalten Der aufrufende Prozess gelangt an eine Weggabelung an der sich Eltern und Kindprozess trennen Das folgende C Programm deklariert eine Zahlervariable counter und weist ihr zunachst den Wert 0 zu Durch fork wird danach ein Kindprozess erzeugt der eine identische Kopie des Elternprozesses ist Der Systemaufruf fork liefert bei Erfolg dem Elternprozess den PID des eben geschaffenen Kindes zuruck Im Kind liefert die Funktion dagegen den Ruckgabewert 0 Mit Hilfe dieses Ruckgabewerts kann man nun Auskunft daruber erlangen ob es sich jeweils um Eltern oder Kindprozess handelt und entsprechend in einer if else Verzweigung fortfahren Um die eigene PID zu finden ist getpid notig Nach dem Aufruf von fork laufen also zwei Prozesse quasi parallel die beide ihre eigene Version der Zahlervariable counter von 0 bis 1000 erhohen Man hat nun keinen Einfluss darauf welcher Prozess zu welchem Zeitpunkt bearbeitet wird Dementsprechend kann die Ausgabe auf der Konsole von einem Durchgang zum nachsten variieren 40 include lt stdio h gt include lt unistd h gt int main void printf PROGRAMMSTART n int counter 0 pid t pid fork if pid 0 Hier befinden wir uns im Kindprozess int i 0 for i lt 1000 i printf PID d getpid printf Kindprozess counter d n counter else if pid gt 0 Hier befinden wir uns im Elternprozess int j 0 for j lt 1000 j printf PID d getpid printf Elternprozess counter d n counter else Fehler bei fork printf fork fehlgeschlagen n return 1 printf PROGRAMMENDE n return 0 Forkbomb Bearbeiten Rekursive ProzesserzeugungDas folgende Programmbeispiel erzeugt eine Forkbomb Es wird ein Prozess gestartet der in einer Endlosschleife mittels fork immer wieder Kindprozesse erzeugt die sich gleich verhalten wie der Elternprozess Dadurch werden die verfugbaren Systemressourcen Prozesstabellen CPU usw aufgebraucht Eine Forkbomb realisiert somit eine Denial of Service Attacke kann aber auch bei unbedachter Anwendung des fork Aufrufs hochgehen include lt unistd h gt int main void while 1 fork return 0 Der konkrete Effekt der Forkbomb hangt in erster Linie von der Konfiguration des Betriebssystems ab Beispielsweise erlaubt PAM auf Unix die Zahl der Prozesse und den maximal zu verbrauchenden Speicher pro Benutzer zu beschranken Explodiert eine Forkbomb auf einem System welches diese Moglichkeiten der Beschrankung nutzt scheitert irgendwann der Versuch neue Kopien der Forkbomb zu starten und das Wachstum ist eingedammt Siehe auch BearbeitenLeerlaufprozess Interprozesskommunikation Nebenlaufigkeit Prozesstabelle Bernstein BedingungLiteratur BearbeitenAlbert Achilles Betriebssysteme Eine kompakte Einfuhrung mit Linux Springer Berlin Heidelberg 2006 Uwe Baumgarten Hans Jurgen Siegert Betriebssysteme Eine Einfuhrung 6 uberarbeitete aktualisierte und erweiterte Auflage Oldenbourg Verlag Munchen Wien 2007 Erich Ehses Lutz Kohler Petra Riemer Horst Stenzel Frank Victor Systemprogrammierung in UNIX Linux Grundlegende Betriebssystemkonzepte und praxisorientierte Anwendungen Vieweg Teubner Wiesbaden 2012 Robert Love Linux Kernel Development A thorough guide to the design and implementation of the Linux kernel Third Edition Addison Wesley Upper Saddle River NJ u a 2010 Online Peter Mandl Grundkurs Betriebssysteme Architekturen Betriebsmittelverwaltung Synchronisation Prozesskommunikation Virtualisierung 4 Auflage Springer Vieweg Wiesbaden 2014 Altere verwendete Ausgabe Grundkurs Betriebssysteme Architekturen Betriebsmittelverwaltung Synchronisation Prozesskommunikation 1 Auflage Vieweg Teubner Wiesbaden 2008 Abraham Silberschatz Peter Baer Galvin Greg Gagne Operating System Concepts Ninth Edition John Wiley amp Sons Hoboken New Jersey 2013 Andrew S Tanenbaum Moderne Betriebssysteme 3 aktualisierte Auflage Pearson Studium Munchen u a 2009 ISBN 978 3 8273 7342 7 Jurgen Wolf Linux UNIX Programmierung Das umfassende Handbuch 3 aktualisierte und erweiterte Auflage Rheinwerk Bonn 2009 Einzelnachweise und Anmerkungen Bearbeiten Roland Hellmann Rechnerarchitektur Einfuhrung in den Aufbau moderner Computer Walter de Gruyter 2013 ISBN 978 3 486 72002 0 S 271 google de abgerufen am 16 November 2020 Christian Ullenboom Java ist auch eine Insel Einfuhrung Ausbildung Praxis 11 aktualisierte und uberarbeitete Auflage Galileo Computing Bonn 2014 S 902 ISO IEC 2382 1 1993 definiert computer program A syntactic unit that conforms to the rules of a particular programming language and that is composed of declarations and statements or instructions needed to solve a certain function task or problem Bis 2001 definierte die DIN 44300 Informationsverarbeitung Begriffe identisch Tanenbaum Moderne Betriebssysteme 3 Aufl 2009 S 126 127 Mandl Grundkurs Betriebssysteme 4 Aufl 2014 S 78 Silberschatz Galvin Gagne Operating System Concepts 2013 S 106 107 Silberschatz Galvin Gagne Operating System Concepts 2013 S 106 a b c Silberschatz Galvin Gagne Operating System Concepts 2013 S 107 Mandl Grundkurs Betriebssysteme 4 Aufl 2014 S 80 Mandl Grundkurs Betriebssysteme 4 Aufl 2014 S 35 36 Mandl Grundkurs Betriebssysteme 2008 S 78 Tanenbaum Moderne Betriebssysteme 3 Aufl 2009 S 131 132 Tanenbaum Moderne Betriebssysteme 2009 S 131 133 ferner Silberschatz Galvin Gagne Operating System Concepts 2013 S 107 111 112 a b Mandl Grundkurs Betriebssysteme 4 Aufl 2014 S 79 Mandl Grundkurs Betriebssysteme 4 Aufl 2014 S 81 Tanenbaum Moderne Betriebssysteme 3 Aufl 2009 S 133 135 Silberschatz Galvin Gagne Operating System Concepts 2013 S 107 109 Tanenbaum Moderne Betriebssysteme 2009 S 133 134 Anmerkung Unter Umstanden kann explizit von einem Prozess gefordert dass er den gleichen PID wie ein anderer hat z B durch CLONE PID Anmerkung ps ohne Optionen zeigt nur solche Prozesse an die aus Textkonsolen bzw Shell Fenstern gestartet wurden Durch die Option x werden auch Prozesse angezeigt denen kein Terminal zugeordnet ist Ausserdem gibt es das Kommando top Dieses ordnet die Prozesse danach wie sehr sie die CPU belasten und zeigt die gerade aktiven Prozesse zuerst an Tanenbaum Moderne Betriebssysteme 3 Aufl 2009 S 127 UNIXguide net by Hermelito Go What does fork do abgerufen am 20 April 2016 Windows Dev Center Creating Processes Anmerkung Die Darstellung der Prozesshierarchie gelingt am einfachsten mit dem Shell Kommando pstree Tanenbaum Moderne Betriebssysteme 3 Aufl 2009 S 130 131 Tanenbaum Moderne Betriebssysteme 3 Aufl 2009 S 129 130 Tanenbaum Moderne Betriebssysteme 3 Aufl 2009 S 742 743 Tanenbaum Moderne Betriebssysteme 3 Aufl 2009 S 923 Peter H Ganten Wulf Alex Debian GNU Linux 3 Auflage Springer Berlin u a 2007 S 519 Tanenbaum Moderne Betriebssysteme 3 Aufl 2009 S 924 925 Dieter Zobel Echtzeitsysteme Grundlagen der Planung Springer Berlin Heidelberg 2008 S 44 Mandl Grundkurs Betriebssysteme 4 Aufl 2014 S 79 Silberschatz Galvin Gagne Operating System Concepts 2013 S 110 112 Tanenbaum Moderne Betriebssysteme 2009 S 198 Tanenbaum Moderne Betriebssysteme 2009 S 195 196 Mandl Grundkurs Betriebssysteme 2014 S 53 Hans Jurgen Siegert Uwe Baumgarten Betriebssysteme Eine Einfuhrung 6 Auflage Oldenbourg Verlag Munchen Wien 2007 S 54 Hans Jurgen Siegert Uwe Baumgarten Betriebssysteme Eine Einfuhrung 6 Auflage Oldenbourg Verlag Munchen Wien 2007 S 54 a b Tanenbaum Moderne Betriebssysteme 2009 S 60 62 406 410 Mandl Grundkurs Betriebssysteme 2014 S 55 Mandl Grundkurs Betriebssysteme 2014 S 55 58 Mandl Grundkurs Betriebssysteme 2008 S 78 79 Tanenbaum Moderne Betriebssysteme 3 Aufl 2009 S 137 140 Elisabeth Jung Java 7 Das Ubungsbuch Band 2 mitp Heidelberg u a 2012 S 145 146 Mandl Grundkurs Betriebssysteme 2008 S 79 82 Tanenbaum Moderne Betriebssysteme 3 Aufl 2009 S 135 136 Das Programmbeispiel orientiert sich an Ehses u a Systemprogrammierung in UNIX Linux 2012 S 50 51 siehe auch Wolf Linux UNIX Programmierung 3 Aufl 2009 S 211 219 und Markus Zahn Unix Netzwerkprogrammierung mit Threads Sockets und SSL Springer Berlin Heidelberg 2006 S 79 89 Normdaten Sachbegriff GND 4235427 4 lobid OGND AKS Abgerufen von https de wikipedia org w index php title Prozess Informatik amp oldid 230362891