Process management (computing)

Ein Prozess ist ein Programm in der Ausführung. Ein wesentlicher Bestandteil eines jeden heutigen Tages Betriebssystem (OS). Das Betriebssystem muss Ressourcen zuweisen ProzesseAktivieren Sie Prozesse, um Informationen zu teilen und auszutauschen, die Ressourcen jedes Prozesses vor anderen Prozessen zu schützen und die Synchronisation zwischen den Prozessen zu ermöglichen. Um diese Anforderungen zu erfüllen, muss das Betriebssystem a beibehalten Datenstruktur Für jeden Prozess, der den Zustand und die Ressourcenbesitz dieses Prozesses beschreibt und es dem Betriebssystem ermöglicht, die Kontrolle über jeden Prozess auszuüben.

Multiprogrammierung

In jedem modernen Betriebssystem kann es mehr als eine Instanz von a geben Programm Gleichzeitig in Speicher geladen. Beispielsweise könnte mehr als ein Benutzer dasselbe Programm ausführen, wobei jeder Benutzer separate Kopien des in den Speicher geladenen Programms hat. Bei einigen Programmen ist es möglich, dass eine Kopie in den Speicher geladen wird, während mehrere Benutzer den Zugriff darauf geteilt haben, damit jeweils dieselbe Programmcode ausführen kann. Ein solches Programm soll sein wieder eingetreten. Das Prozessor In jedem Moment kann nur eine Anweisung aus einem Programm ausgeführt werden, aber über einen bestimmten Zeitraum können mehrere Prozesse aufrechterhalten werden, indem jeder Prozess dem Prozessor in Intervallen zugewiesen wird, während der Rest vorübergehend inaktiv wird. Eine Reihe von Prozessen, die über einen bestimmten Zeitraum statt gleichzeitig ausgeführt werden, wird aufgerufen gleichzeitige Ausführung.

A Multiprogrammierung oder Multitasking OS ist ein System, das viele Prozesse gleichzeitig ausführt. Die Multiprogrammierung erfordert, dass der Prozessor jedem Zeitraum für einen bestimmten Zeitraum zugeteilt und zu einem angemessenen Zeitpunkt abgetan wird. Wenn der Prozessor während der Ausführung eines Prozesses de-alocationiert wird, muss er so erfolgen, dass er später so leicht wie möglich neu gestartet werden kann.

Es gibt zwei mögliche Möglichkeiten für ein Betriebssystem, die Kontrolle über den Prozessor während der Ausführung eines Programms wiederzugewinnen, damit das Betriebssystem eine Entlastung oder Zuordnung durchführt:

  1. Der Prozess gibt a Systemanruf (manchmal als a genannt Software unterbrechen); Beispielsweise erfolgt eine E/A -Anforderung, mit der Sie auf eine Datei auf Festplatten zugreifen können.
  2. Eine Hardware unterbrechen tritt ein; Zum Beispiel wurde eine Taste auf die Tastatur gedrückt oder ein Timer läuft aus (verwendet in Präventives Multitasking).

Das Stoppen eines Prozesses und das Starten (oder Neustarten) eines anderen Prozesses wird als a genannt Kontextschalter oder Kontextänderung. In vielen modernen Betriebssystemen können Prozesse aus vielen Unterprozessen bestehen. Dies führt das Konzept von a vor Faden. Ein Thread kann als als angesehen werden Unterprozess; Das heißt, eine separate, unabhängige Ausführungsequenz innerhalb des Code eines Prozesses. Themen werden immer wichtiger für die Gestaltung von verteilten und Kundenserver Systeme und in Software laufen Mehrprozessor Systeme.

Wie die Multiprogrammierung die Effizienz erhöht

Ein gemeinsames Merkmal, das unter den mit den meisten Computerprogrammen verbundenen Prozessen beobachtet wird, ist, dass sie sich zwischeneinander wechseln Zentralprozessor Zyklen und I/o Fahrräder. Für den Teil der Zeit, die für CPU -Zyklen erforderlich sind, wird der Prozess ausgeführt. d.h. besetzt die CPU. Während der Zeit, die für E/A -Zyklen erforderlich ist, wird der Prozess nicht verwendet. Stattdessen wartet es entweder darauf, Eingang/Ausgabe durchzuführen oder tatsächlich Eingang/Ausgabe auszuführen. Ein Beispiel hierfür ist das Lesen von oder schreiben in eine Datei auf der Festplatte. Vor dem Aufkommen von Multiprogrammierung, Computers als Einzelbenutzersysteme betrieben. Benutzer solcher Systeme wurden schnell bewusst, dass der Prozessor für die meiste Zeit, in der ein Computer einem einzelnen Benutzer zugeteilt wurde, untätig war. Wenn der Benutzer beispielsweise Informationen oder Debugging -Programme eingab. Informatiker beobachtete, dass die Gesamtleistung der Maschine verbessert werden kann, indem ein anderer Prozess den Prozessor verwendet, wenn ein Prozess auf Eingabe/Ausgabe wartete. In einem Einprogrammierungssystem, wenn N Benutzer sollten Programme mit individuellen Ausführungszeiten ausführen t1, t2, ..., tNdann die Gesamtzeit, tUni, um die zu bedienen N Prozesse (nacheinander) von allen N Benutzer wären:

tUni = t1 + t2 + ... + tN.

Da jeder Prozess sowohl CPU -Zyklen als auch E/A -Zyklen verbraucht, ist die Zeit, in der jeder Prozess tatsächlich die CPU verwendet, ein sehr kleiner Teil der Gesamtausführungszeit für den Prozess. Also für den Prozess i:

ti (Prozessor)ti (Hinrichtung)

wo

ti (Prozessor) ist der Zeitprozess i verbringt mit der CPU und verwendet, und
ti (Hinrichtung) ist die Gesamtausführungszeit für den Prozess; d.h. die Zeit für CPU -Zyklen plus E/A -Zyklen bis zum Abschluss des Prozesses durchgeführt (ausgeführt).

In der Tat normalerweise die Summe aller Prozessorzeiten, die von verwendet wird N Prozesse überschreitet selten einen kleinen Teil der Zeit, um einen der Prozesse auszuführen;

Daher lag der Prozessor in Uni-Programmierungssystemen für einen beträchtlichen Teil der Zeit im Leerlauf. Um diese Ineffizienz zu überwinden, wird jetzt in modernen Betriebssystemen wie z. Linux, Unix und Microsoft Windows. Dies ermöglicht es dem Prozessor, von einem Prozess x, zu einem anderen zu wechseln, wenn x in die E/A -Phase seiner Ausführung beteiligt ist. Da die Verarbeitungszeit viel geringer ist als die Laufzeit eines einzelnen Jobs, ist die Gesamtzeit, um alle zu bedienen N Benutzer mit einem Multiprogrammierungssystem können auf ungefähr ungefähr: ungefähr reduziert werden:

tMulti = max (t1, t2, ..., tN)

Prozesserstellung

Betriebssysteme benötigen einige Möglichkeiten, um Prozesse zu erstellen. In einem sehr einfachen System, das für das Ausführen einer einzigen Anwendung (z. B. dem Controller in einem Mikrowellenofen) ausgelegt ist, kann es möglich sein, alle Prozesse zu haben, die jemals erforderlich sind, wenn das System auftaucht. Im Allgemeinen ist jedoch eine Möglichkeit erforderlich, um Prozesse nach Bedarf während des Betriebs zu erstellen und zu beenden.
Es gibt vier wichtigste Ereignisse, die einen Prozess erstellen lassen:

  • Systeminitialisierung.
  • Ausführung des Aufrufs des Prozesseerstellungssystems durch einen laufenden Prozess.
  • Eine Benutzeranforderung zum Erstellen eines neuen Prozesses.
  • Initiierung eines Batch -Jobs.

Wenn ein Betriebssystem gebootet ist, werden normalerweise mehrere Prozesse erstellt. Einige davon sind Vordergrundprozesse, die mit einem (menschlichen) Benutzer interagieren und Arbeiten für sie ausführen. Andere sind Hintergrundprozesse, die nicht mit bestimmten Benutzern verbunden sind, sondern eine bestimmte Funktion haben. Beispielsweise kann ein Hintergrundprozess so konzipiert werden, dass eingehende E-Mails annehmen und den größten Teil des Tages schlafen, aber plötzlich zum Leben erweckt werden, wenn eine eingehende E-Mail ankommt. Ein weiterer Hintergrundvorgang kann so konzipiert werden, dass eine eingehende Anfrage für auf dem Computer gehostete Webseiten akzeptiert wird, die aufwachen, wenn eine Anfrage zum Service dieser Anfrage eintrifft.

Die Prozesserstellung in UNIX und Linux erfolgt über Fork () oder Clone () -Systemaufrufe. Es gibt mehrere Schritte zur Erstellung der Prozesse. Der erste Schritt ist die Validierung, ob die Elternprozess hat eine ausreichende Genehmigung, um einen Prozess zu erstellen. Nach einer erfolgreichen Validierung wird der übergeordnete Prozess fast ausschließlich kopiert, wobei nur Änderungen an der eindeutigen Prozess-ID, dem übergeordneten Prozess und dem Benutzerraum geändert werden. Jeder neue Prozess erhält seinen eigenen Benutzerraum.[1]

Die Prozesserstellung in Windows erfolgt über den CreateReProcessa () -Systemaufruf. Ein neuer Prozess wird im Sicherheitskontext des Anrufprozesses ausgeführt, aber ansonsten unabhängig vom Anrufprozess. Es gibt Methoden, um den Sicherheitskontext zu ändern, in dem ein neuer Prozesse ausgeführt wird. Neuen Prozessen werden Kennungen zugewiesen, mit denen auf den zugegriffen werden kann. Funktionen werden bereitgestellt, um Aufruf von Threads mit neu erstellten Prozessen zu synchronisieren.[2][3]

Prozessabschluss

Es gibt viele Gründe für die Prozessabgabe:

  • Batch -Jobprobleme stoppen den Unterricht
  • Benutzer protokolliert sich ab
  • Verfahren führt eine Serviceanfrage zur Kündigung durch
  • Fehler- und Fehlerbedingungen
  • Normale Fertigstellung
  • Frist überschritten
  • Speicher nicht verfügbar
  • Grenzenverletzung; Zum Beispiel: Versuchter Zugang eines (nicht existierenden) 11. Elements eines 10-Element-Arrays
  • Schutzfehler; Zum Beispiel: Versuch, nur schreibgeschützte Datei zu schreiben
  • Arithmetik Error; Zum Beispiel: versuchte Division von Null
  • Zeitüberschreitung; Zum Beispiel: Der Prozess wartete länger als ein bestimmtes Maximum für ein Ereignis
  • I/o Versagen
  • Ungültige Anweisung; Zum Beispiel: Wenn ein Prozess versucht, Daten auszuführen (Text)
  • Privilegierte Anweisung
  • Daten Missbrauch
  • Betriebssystem Intervention; Zum Beispiel: um einen Deadlock zu lösen
  • Eltern enden so, dass untergeordnete Prozesse enden (Kaskadierung von Kaskadierung)
  • Elternanfrage

Zwei-Staaten-Prozessmanagementmodell

Das BetriebssystemHauptverantwortung liegt bei der Kontrolle der Ausführung von Prozesse. Dies beinhaltet die Bestimmung des Verschachtelungsmusters für die Ausführung und Zuweisung von Ressourcen zu Prozessen. Ein Teil des Entwerfens eines Betriebssystems besteht darin, das Verhalten zu beschreiben, das wir jedem Prozess ausstellen möchten. Das einfachste Modell basiert auf der Tatsache, dass ein Prozess entweder von einem Prozessor ausgeführt wird oder nicht. Somit kann ein Prozess als in einem von zwei Staaten angesehen werden, LAUFEND oder NICHT LAUFEN. Wenn das Betriebssystem einen neuen Prozess erstellt, wird dieser Prozess zunächst als gekennzeichnet NICHT LAUFENund wird in eine Warteschlange im System in der NICHT LAUFEN Zustand. Der Prozess (oder ein Teil davon) existiert dann in Haupterinnerungund es wartet in der Warteschlange auf die Gelegenheit, ausgeführt zu werden. Nach einiger Zeit die derzeit LAUFEND Prozess wird unterbrochen und von der bewegt LAUFEND Staat zu dem NICHT LAUFEN Staat, so den Prozessor für einen anderen Prozess zur Verfügung stellen. Der Versandanteil des Betriebssystems wählt dann aus der Warteschlange von aus NICHT LAUFEN Prozesse, einer der Warteverfahren, um auf den Prozessor zu übertragen. Der ausgewählte Prozess wird dann von a verrichtet NICHT LAUFEN Zustand zu a LAUFEND Status, und seine Ausführung wird entweder begonnen, wenn es sich um einen neuen Prozess handelt, oder wird wieder aufgenommen, wenn es sich um einen Prozess handelt, der zu einem früheren Zeitpunkt unterbrochen wurde.

Aus diesem Modell können wir einige Designelemente des Betriebssystems identifizieren:

  • Die Notwendigkeit, jeden Prozess darzustellen und zu verfolgen.
  • Der Zustand eines Prozesses.
  • Die Warteschlange von Non Running Prozesse

Drei-Staaten-Prozessmanagementmodell

Obwohl das Zwei-Zustands-Prozessmanagementmodell ein perfekt gültiges Design für ein Betriebssystem ist, fehlt A nicht VERSTOPFT Zustand bedeutet, dass die Prozessor liegt im Leerlauf, wenn sich der aktive Prozess von CPU -Zyklen nach ändert I/o Fahrräder. Dieses Design nutzt den Prozessor nicht effizient. Das Drei-Staaten-Prozessmanagementmodell soll dieses Problem überwinden, indem ein neuer Staat namens the eingeführt wird VERSTOPFT Zustand. Dieser Zustand beschreibt jeden Prozess, der auf ein E/A -Event wartet. In diesem Fall kann ein E/A -Ereignis die Verwendung eines Geräts oder eines Signals aus einem anderen Prozess bedeuten. Die drei Zustände in diesem Modell sind:

  • LAUFEND: Der Prozess, der derzeit ausgeführt wird.
  • BEREIT: Ein Prozess, der sich anstellt und bereit ist, sich auszuführen, wenn sie die Gelegenheit dazu gegeben hat.
  • VERSTOPFT: Ein Prozess, der erst ausgeführt werden kann, wenn ein Ereignis auftritt, z. B. die Abschluss eines E/A -Betriebs.

Zu jedem Zeitpunkt befindet sich ein Prozess in einem der drei Staaten. Für einen einzelnen Prozessorcomputer kann nur ein Prozess in der sein LAUFEND Staat jederzeit an. Es kann viele Prozesse in der geben BEREIT und VERSTOPFT Staaten und jeder dieser Staaten wird eine zugehörige Warteschlange für Prozesse haben.

Prozesse, die in das System eintreten BEREIT Status, Prozesse können nur die Eingabe der LAUFEND Zustand über die BEREIT Zustand. Prozesse lassen das System normalerweise von der LAUFEND Zustand. Für jeden der drei Zustände nimmt der Prozess den Raum im Hauptgedächtnis ein. Während der Grund für die meisten Übergänge von einem Zustand zu einem anderen offensichtlich sein könnte, sind einige möglicherweise nicht so klar.

  • Laufen → Bereit Der häufigste Grund für diesen Übergang ist, dass der laufende Prozess die maximal zulässige Zeit für die ununterbrochene Ausführung erreicht hat. d.h. Timeout tritt auf. Andere Gründe können die Auferlegung von Prioritätsniveaus sein, die durch die bestimmt werden Planung Richtlinie für die niedrige Ebene Planerund die Ankunft eines Prozesses mit höherer Priorität in den Bereitschaftszustand.
  • Laufen → blockiert Ein Prozess wird in die gestellt VERSTOPFT Geben Sie an, wenn es etwas anfordert, auf das es warten muss. Eine Anfrage an das Betriebssystem erfolgt normalerweise in Form eines Systemaufrufs (d. H. Ein Aufruf aus dem laufenden Prozess zu einer Funktion, die Teil des Betriebssystemcodes ist). Anfordern einer Datei von der Festplatte oder eines Speicherns eines Code- oder Datenabschnitts vom Speicher zu einer Datei auf der Festplatte beispielsweise.

Prozessbeschreibung und Kontrolle

Jeder Prozess im System wird durch eine Datenstruktur als a dargestellt Prozesssteuerungsblock (PCB) oder Prozessdeskriptor in Linux, was die gleiche Funktion wie der Reisepass eines Reisenden ausführt. Die PCB enthält die grundlegenden Informationen über den Job, einschließlich:

  • Was es ist
  • Wohin es geht
  • Wie viel von seiner Verarbeitung wurde abgeschlossen
  • Wo es gespeichert ist
  • Wie viel es für die Verwendung von Ressourcen „verbracht“ hat

Prozessidentifizierung: Jeder Prozess wird durch die Identifizierung des Benutzers und ein Zeiger, der ihn mit seinem Deskriptor verbindet, eindeutig identifiziert.

Prozessstatus: Dies zeigt den aktuellen Status des Prozesses an;BEREIT, LAUFEND, VERSTOPFT, Bereitete Aufsetzung, Blockierte Suspendierung.

Prozesszustand: Dies enthält alle Informationen, die erforderlich sind, um den aktuellen Stand des Auftrags anzuzeigen.

Buchhaltung: Dies enthält Informationen, die hauptsächlich für Abrechnungszwecke und zur Leistungsmessung verwendet werden. Es zeigt an, welche Art von Ressourcen der Prozess verwendet hat und wie lange.

Prozessormodi

Zeitgenössisch Prozessoren Integrieren Sie ein Modusbit, um die Ausführungsfähigkeit eines Programms im Prozessor zu definieren. Dieses Bit kann auf eingestellt werden Kernelmodus oder Benutzermodus. Der Kernel -Modus wird allgemein auch als als bezeichnet Supervisor -Modus, Überwachungsmodus oder Ring 0.

Im Kernel -Modus kann der Prozessor jede Anweisung in seinem Hardware -Repertoire ausführen, während er im Benutzermodus nur eine Teilmenge der Anweisungen ausführen kann. Anweisungen, die nur im Kernel -Modus ausgeführt werden können, werden als Kernel, privilegierte oder geschützte Anweisungen bezeichnet, um sie von den Anweisungen des Benutzermodus zu unterscheiden. Zum Beispiel, I/o Anweisungen sind privilegiert. Also, wenn eine Anwendung Programm führt im Benutzermodus aus, es kann keine eigene ausführen I/o. Stattdessen muss das Betriebssystem aufgefordert werden I/o in ihrem Namen.

Das Rechnerarchitektur Kann das Modusbit logisch erweitern, um Speicherbereiche zu definieren, die verwendet werden sollen, wenn sich der Prozessor im Kernel -Modus im Vergleich zu dem Benutzermodus befindet. Wenn das Modusbit auf den Kernel -Modus gesetzt ist, kann der im Prozessor ausgeführte Prozess entweder auf die Kernel- oder Benutzerpartition des Speichers zugreifen. Wenn der Benutzermodus jedoch festgelegt ist, kann der Prozess nur auf den Benutzerspeicherraum verweisen. Wir verweisen häufig auf zwei Klassen von Speicherraum und Systemraum (oder Kernel, Supervisor oder geschützter Raum). Im Allgemeinen erweitert das Bit des Modus die Schutzrechte des Betriebssystems. Das Modusbit wird von der Benutzermodus -Trap -Anweisung festgelegt, auch als a genannt Aufrufanweisung. Dieser Befehl legt das Modusbit fest und verzweigt an einem festen Speicherort im Systembereich. Da nur der Systemcode im Systemraum geladen wird, kann nur der Systemcode über eine Falle aufgerufen werden. Wenn das Betriebssystem den Vorgesetzten -Anruf abgeschlossen hat, setzt es das Modusbit vor der Rückgabe auf den Benutzermodus zurück.

Das Kernel -Systemkonzept

Die Teile der OS kritisch für den korrekten Vorgang ausführen in Kernelmodus, während andere Software (wie z. B. generische Systemsoftware) und alle Anwendungsprogramme ausführen in Benutzermodus. Diese grundlegende Unterscheidung ist normalerweise die unwiderlegbare Unterscheidung zwischen dem Betriebssystem und anderen Systemsoftware. Der Teil des Systems, der im Kernel Supervisor State ausführt Kernel, oder Kern, der Betriebssystem. Der Kernel arbeitet als vertrauenswürdige Software, was bedeutet, dass es bei der Entführung und Implementierung Schutzmechanismen implementieren sollte, die durch die Aktionen nicht vertrauenswürdiger Software, die im Benutzerbereich ausgeführt wurden, nicht verdeckt verändert werden konnten. Erweiterungen zum Betriebssystem werden in ausgeführt BenutzermodusDas Betriebssystem stützt sich daher nicht auf die Richtigkeit dieser Teile der Systemsoftware, um den Betrieb des Betriebssystems korrekt zu betreiben. Daher ist eine grundlegende Entwurfsentscheidung für jede Funktion, die in das Betriebssystem einbezogen wird, ob es im Kernel implementiert werden muss. Wenn es im Kernel implementiert ist, wird es im Kernel -Bereich (Supervisor) ausgeführt und haben Zugang zu anderen Teilen des Kernels. Es wird auch von den anderen Teilen des Kernels vertrauenswürdige Software. Wenn die Funktion implementiert ist, um in auszuführen BenutzermodusEs wird keinen Zugriff auf Kernel -Datenstrukturen haben. Der Vorteil besteht jedoch darin, dass normalerweise nur sehr begrenzte Anstrengungen erforderlich sind, um die Funktion aufzurufen. Während mit Kernel implementierte Funktionen einfach zu implementieren sind, sind der Trap-Mechanismus und die Authentifizierung zum Zeitpunkt des Anrufs normalerweise relativ teuer. Der Kernelcode läuft schnell, aber es gibt einen großen Leistungsaufwand im tatsächlichen Anruf. Dies ist ein subtiler, aber wichtiger Punkt.

Anfordern von Systemdiensten

Es gibt zwei Techniken, mit denen ein im Benutzermodus ausgeführter Programm die anfordern kann KernelDienste:

Betriebssysteme werden mit dem einen oder anderen dieser beiden Einrichtungen entwickelt, aber nicht beides. Nehmen Sie zunächst an, dass a Benutzerprozess möchte eine bestimmte Zielsystemfunktion aufrufen. Für die Systemanruf Ansatz verwendet der Benutzerprozess den Trap -Befehl. Die Idee ist, dass der Systemaufruf ein ordentlicher Verfahrensanruf für das Anwendungsprogramm zu sein sollte. das OS Bietet eine Bibliothek von Benutzerfunktionen mit Namen, die jedem tatsächlichen Systemaufruf entsprechen. Jede dieser Stubfunktionen enthält eine Falle für die Betriebssystemfunktion. Wenn das Anwendungsprogramm den Stub aufruft Zentralprozessor zu Kernelmodusund dann Zweige (indirekt durch eine OS -Tabelle) zum Einstiegspunkt der Funktion, die aufgerufen werden soll. Wenn die Funktion abgeschlossen ist, wechselt sie den Prozessor auf Benutzermodus und gibt dann die Kontrolle an den Benutzerprozess zurück; somit eine normale Verfahrensrückgabe simulieren.

In dem Nachrichtenübergang Ansatz, der Benutzerprozess erstellt eine Nachricht, die den gewünschten Dienst beschreibt. Dann verwendet es eine vertrauenswürdige Sendungsfunktion, um die Nachricht an eine vertrauenswürdige Übergabe zu übergeben OS Prozess. Die Sendungsfunktion dient dem gleichen Zweck wie die Falle; Das heißt, es überprüft die Nachricht sorgfältig, wechselt die Prozessor zum Kernel -Modus und liefert dann die Nachricht an einen Prozess, der die Zielfunktionen implementiert. In der Zwischenzeit wartet der Benutzerprozess auf das Ergebnis der Serviceanforderung mit einer Nachrichtempfängeroperation. Wenn der Betriebssystemvorgang die Operation abgeschlossen hat, wird eine Nachricht an den Benutzerprozess zurückgeführt.

Die Unterscheidung zwischen zwei Ansätzen hat wichtige Konsequenzen in Bezug auf die relative Unabhängigkeit des OS -Verhaltens, das Verhalten des Anwendungsprozesses und die daraus resultierende Leistung. Als Faustregel gilt, Betriebssystem based on a Systemanruf Die Schnittstelle kann effizienter gemacht werden als diejenigen, die Nachrichten zwischen unterschiedlichen Prozessen ausgetauscht werden müssen. Dies ist der Fall, obwohl der Systemaufruf mit einer Falleanweisung implementiert werden muss. Das heißt, obwohl die Falle relativ teuer ist, ist sie effizienter als der Ansatz der Nachrichtenübergabe, bei dem im Allgemeinen höhere Kosten mit dem Prozess verbunden sind Multiplexing, Nachrichtenbildung und Nachrichtenkopie. Der System -Call -Ansatz hat die interessante Eigenschaft, dass es nicht unbedingt einen Betriebssystemprozess gibt. Stattdessen ein Prozess, der in ausgeführt wird Benutzermodus Änderungen zu Kernelmodus Wenn der Kernelcode ausführt und in den Benutzermodus zurückkehrt, wenn er aus dem Betriebssystem zurückkehrt. Wenn andererseits das Betriebssystem als eine Reihe separater Prozesse ausgelegt ist, ist es normalerweise einfacher, es in besonderen Situationen zu entwerfen, als es die Kontrolle über die Maschine erhält, als wenn der Kernel einfach eine Sammlung von Funktionen ist, die von Benutzern ausgeführt werden Prozesse im Kernel -Modus. Auch das prozessbasierte Betriebssystem ist es normalerweise erforderlich, mindestens einige einzuschließen Systemprozesse (genannt Daemons in Unix) Um die Situation zu bewältigen, in der die Maschine ansonsten untätig ist wie z. Planung und das Netzwerk umgehen.

Siehe auch

Verweise

  1. ^ "Ein Sneak -Peek in Linux -Kernel - Kapitel 2: Prozesserstellung"
  2. ^ "CreateProcessa -Funktion (processThreadsapi.h) - Win32 -Apps".
  3. ^ "Erstellen von Prozessen - Win32 -Apps".

Quellen

  • Betriebssystem mit Windows und Unix, Colin Ritchie. ISBN0-8264-6416-5
  • Betriebssysteme, William Stallings, Prentice Hall, (4. Auflage, 2000)
  • Multiprogrammierung, Prozessbeschreibung und Kontrolle
  • Betriebssysteme - eine moderne Perspektive, Gary Nutt, Addison Wesley, (2. Auflage, 2001).
  • Prozessmanagementmodelle, Planung, UNIX -System V Release 4:
  • Moderne Betriebssysteme, Andrew Tanenbaum, Prentice Hall, (2. Auflage, 2001).
  • Betriebssystemkonzepte, Silberschatz & Galvin & Gagne (http://codex.cs.yale.edu/avi/os-book/os9/slidedir/), John Wiley & Sons, (6. Ausgabe, 2003)