Prozess (Computing)
Im Computer, a Prozess ist der Beispiel von a Computer Programm das wird von einem oder vielen ausgeführt Themen. Es enthält den Programmcode und seine Aktivität. Abhängig von Betriebssystem (Betriebssystem) kann ein Prozess aus mehreren Ausführungen bestehen, die Anweisungen ausführen gleichzeitig.[1][2]
Während ein Computerprogramm eine passive Sammlung von ist Anweisungen In der Regel in einer Datei auf der Festplatte gespeichert, ist ein Prozess die Ausführung dieser Anweisungen, nachdem sie von der Festplatte in den Speicher geladen wurden. Mehrere Prozesse können mit demselben Programm in Verbindung gebracht werden. Beispielsweise führt das Öffnen mehrerer Instanzen desselben Programms häufig zu mehr als einem Prozess, der ausgeführt wird.
Multitasking ist eine Methode, mit der mehrere Prozesse freigegeben werden können Prozessoren (CPUs) und andere Systemressourcen. Jede CPU (Kern) führt eine einzelne aus Aufgabe zu einer Zeit. Multitasking ermöglicht es jedoch jedem Prozessor Schalter Zwischen Aufgaben, die ausgeführt werden, ohne auf jede Aufgabe warten zu müssen (erledigt (Präsentation). Abhängig von der Implementierung des Betriebssystems können Switches ausgeführt werden, wenn Aufgaben eingeleitet und auf die Fertigstellung warten Input-Output Operationen, wenn eine Aufgabe freiwillig die CPU auf Hardware liefert Interruptsund wenn der Betriebssystemplaner entscheidet, dass ein Prozess seinen angemessenen Anteil an CPU -Zeit abgelaufen ist (z. B. durch die Ganz fairer Zeitplaner des Linux Kernel).
Eine gemeinsame Form des Multitaskings wird von CPUs bereitgestellt Zeitteilung Dies ist eine Methode zur Verschachtung der Ausführung der Prozesse und Threads der Benutzer und sogar der unabhängigen Kernelaufgaben - obwohl das letztere Merkmal nur in Präventiv machbar ist Kerne wie zum Beispiel Linux. Die Präsentation hat einen wichtigen Nebeneffekt für interaktive Prozesse, die in Bezug auf CPU -gebundene Prozesse eine höhere Priorität haben. Daher wird den Benutzern sofort Rechenressourcen zum einfachen Drücken einer Taste oder beim Verschieben einer Maus zugewiesen. Darüber hinaus erhalten Anwendungen wie Video und Musikreproduktion eine Art Echtzeit-Priorität, die einen anderen Prozess mit niedrigerer Priorität vornehmen. In Zeit Sharing-Systemen, Kontextschalter werden schnell durchgeführt, wodurch es so aussieht, als würden mehrere Prozesse gleichzeitig auf demselben Prozessor ausgeführt. Diese gleichzeitige Ausführung mehrerer Prozesse wird aufgerufen Parallelität.
Für Sicherheit und Zuverlässigkeit am modernsten Betriebssysteme direkt verhindern Kommunikation Zwischen unabhängigen Prozessen, die streng vermittelte und kontrollierte Kommunikationsfunktionen der Inter-Prozess bereitstellen.
Darstellung
Im Allgemeinen besteht ein Computersystemprozess aus (oder soll gesagt werden besitzen) Die folgenden Ressourcen:
- Ein Bild der ausführbaren Datei Maschinensprache mit einem Programm verbunden.
- Gedächtnis (typischerweise eine Region von virtueller Speicher); Dies enthält den ausführbaren Code, prozessspezifische Daten (Eingabe und Ausgabe), a Rufen Sie Stack an (Um aktiv im Auge zu behalten Unterroutinen und/oder andere Ereignisse) und a Haufen Durchschnittliche Berechnungsdaten, die während der Laufzeit generiert wurden.
- Betriebssystemdeskriptoren von Ressourcen, die dem Prozess zugeordnet sind, wie z. Dateideskriptoren (Unix Terminologie) oder Griffe (Fenster) und Datenquellen und -sensen.
- Sicherheit Attribute wie der Prozessbesitzer und der Prozess der Berechtigungen (zulässige Operationen).
- Prozessor Zustand (Kontext), wie der Inhalt von Register und physischer Speicheradressierung. Das Zustand wird in der Regel in Computerregistern gespeichert, wenn der Prozess ausgeführt wird, und ansonsten in Speicher.[1]
Das Betriebssystem enthält die meisten Informationen zu aktiven Prozessen in Datenstrukturen, die genannt werden Prozesssteuerblöcke. Jede Teilmenge der Ressourcen, in der Regel zumindest zum Prozessorzustand, kann mit jedem Prozess verbunden sein. ' Themen in Betriebssystemen, die Fäden unterstützen oder Kind Prozesse.
Das Betriebssystem hält seine Prozesse getrennt und zuteilt die Ressourcen, die sie benötigen, so dass es weniger wahrscheinlich ist, dass sie sich gegenseitig beeinträchtigen und Systemfehler verursachen (z. B.,. Sackgasse oder Prügel). Das Betriebssystem kann auch Mechanismen für liefern Interprozesskommunikation Prozesse ermöglichen es, sich auf sichere und vorhersehbare Weise zu interagieren.
Multitasking und Prozessmanagement
A Multitasking Betriebssystem kann einfach zwischen den Prozessen wechseln, um das Erscheinungsbild vieler Prozesse zu verleihen Ausführung gleichzeitig (das heißt, in parallel), obwohl in der Tat nur ein Prozess auf einer einzigen ausgeführt werden kann Zentralprozessor (Es sei denn, die CPU hat mehrere Kerne, dann Multithreading oder andere ähnliche Technologien können verwendet werden).[a]
Es ist üblich, einen einzelnen Prozess mit einem Hauptprogramm und untergeordneten Prozessen mit allen Parallelprozessen zu verbinden, die sich verhalten wie asynchron Unterroutinen. Ein Prozess soll zu besitzen Ressourcen, von denen und Bild seines Programms (im Speicher) ist eine solche Ressource. In Multiprocessing -Systemen viele Prozesse können das gleiche ablaufen oder teilen wieder eingetreten Programm am selben Ort im Speicher, aber jeder Prozess soll seine eigenen besitzen Bild des Programms.
Prozesse werden oft als "Aufgaben" bezeichnet eingebettet Betriebssysteme. Das Gefühl von "Prozess" (oder Aufgabe) ist "etwas, das Zeit nimmt", im Gegensatz zu "Erinnerung", was "etwas, das Raum nimmt" ist.[b]
Die obige Beschreibung gilt für beide Prozesse, die von einem Betriebssystem verwaltet werden, und für Prozesse wie definiert von Prozesskalkül.
Wenn ein Prozess etwas anfordert, auf das er warten muss, wird er blockiert. Wenn der Prozess in der ist Blockierter ZustandEs ist berechtigt, gegen Scheibe zu tauschen, aber dies ist in a transparent virtueller Speicher System, wo Regionen des Gedächtnisses eines Prozesses wirklich auf der Festplatte und nicht in sein Haupterinnerung jederzeit. Beachten Sie, dass selbst Teile aktiver Prozesse/Aufgaben (ausführende Programme) zum Austausch gegen die Festplatte berechtigt sind, wenn die Teile in letzter Zeit nicht verwendet wurden. Nicht alle Teile eines ausführenden Programms und seiner Daten müssen im physischen Speicher sein, damit der zugehörige Prozess aktiv ist.
Prozesszustände
Ein Betriebssystem Kernel Dadurch können Multitasking -Anforderungen Prozesse haben Bestimmte Zustände. Namen für diese Zustände sind nicht standardisiert, aber sie haben ähnliche Funktionen.[1]
- Erstens wird der Prozess "erstellt", indem er von a geladen wird Zweitlager Gerät (Festplatte, CD-ROMusw.) in Haupterinnerung. Danach die Prozessplaner weist ihm den "wartenden" Zustand zu.
- Während der Prozess "wartet", wartet er auf die Planer eine sogenannte machen Kontextschalter. Der Kontextschalter lädt den Prozess in den Prozessor und ändert den Status in "Ausführen", während der zuvor "ausgeführte" Prozess in einem "wartenden" Status gespeichert wird.
- Wenn ein Vorgang im Status "Ausführen" auf eine Ressource warten muss (beispielsweise auf die Eingabe oder Datei des Benutzers warten), wird er den "blockierten" Status zugewiesen. Der Prozessstatus wird wieder in "Warten" geändert, wenn der Prozess nicht mehr warten muss (in einem blockierten Zustand).
- Sobald der Prozess die Ausführung abgeschlossen hat oder vom Betriebssystem gekündigt wird, wird er nicht mehr benötigt. Der Prozess wird sofort entfernt oder in den "Kündigten" Zustand verschoben. Bei der Entfernung wartet es nur darauf, aus dem Hauptspeicher entfernt zu werden.[1][3]
Interprozesskommunikation
Wenn Prozesse miteinander kommunizieren müssen, müssen sie Teile ihrer teilen Adressräume oder andere Formen der Inter-Process Communication (IPC) verwenden. Zum Beispiel muss in einer Shell -Pipeline die Ausgabe des ersten Prozesses an die zweite übergehen und so weiter; Ein weiteres Beispiel ist eine Aufgabe, die in kooperierende, aber teilweise unabhängige Prozesse zerlegt werden kann, die gleichzeitig ausgeführt werden können (d. H. Unter Verwendung von Parallelität oder echter Parallelität - das letztere Modell ist ein besonderer Fall einer gleichzeitigen Ausführung und ist möglich, wenn genügend CPU -Kerne verfügbar sind Alle Prozesse, die bereit sind,).
Es ist sogar möglich, dass zwei oder mehr Prozesse auf verschiedenen Maschinen ausgeführt werden, die möglicherweise ein anderes Betriebssystem (OS) ausführen, daher einige Mechanismen für Kommunikation und Synchronisation (genannt Kommunikationsprotokolle Für verteilte Computing sind erforderlich (z. B. die Nachrichtenübergreifungsschnittstelle, oft einfach genannt MPI).
Geschichte
In den frühen 1960er Jahren hatte sich die Computersteuerungssoftware beispielsweise aus der Überwachungssteuerungssoftware entwickelt Ibys, um die Steuerungssoftware ausführlich zu kontrollieren. Im Laufe der Zeit wurden Computer schneller Computerzeit war immer noch weder billig noch voll genutzt; Eine solche Umgebung gemacht Multiprogrammierung möglich und notwendig. Multiprogrammierung bedeutet, dass mehrere Programme ausgeführt werden gleichzeitig. Zunächst lief mehr als ein Programm auf einem einzigen Prozessor aufgrund der zugrunde liegenden Uniprozessor Computerarchitektur, und sie teilten knappe und begrenzte Hardware -Ressourcen; Folglich war die Parallelität von a Serie Natur. Auf späteren Systemen mit Mehrere Prozessoren, mehrere Programme können gleichzeitig in ausgeführt werden parallel.
Programme bestehen aus Anweisungen für Prozessoren. Ein einzelner Prozessor kann jeweils nur eine Anweisung ausführen: Es ist unmöglich, gleichzeitig mehr Programme auszuführen. Ein Programm braucht möglicherweise einige Ressource, wie ein Eingabegerät, das eine große Verzögerung aufweist, oder ein Programm kann einen langsamen Betrieb starten, z. B. das Senden der Ausgabe an einen Drucker. Dies würde dazu führen, dass der Prozessor "untätig" ist (nicht genutzt). Um den Prozessor jederzeit zu beschäftigen, wird die Ausführung eines solchen Programms gestoppt und das Betriebssystem wechselt den Prozessor, um ein anderes Programm auszuführen. Für den Benutzer wird der Anschein, dass die Programme gleichzeitig ausgeführt werden (daher der Begriff "parallel").
Kurz darauf wurde der Begriff eines "Programms" auf den Begriff eines "ausführenden Programms und seines Kontextes" erweitert. Das Konzept eines Prozesses wurde geboren, das auch bei der Erfindung von notwendig wurde Wiedereintrittscode. Themen kam etwas später. Mit dem Aufkommen von Konzepten wie jedoch Zeitteilung, Computernetzwerkeund Multiple-CPU geteilte Erinnerung Computer, die alte "Multiprogrammierung" MultitaskingMultiprozessierung und später, später, Multithreading.
Siehe auch
Anmerkungen
- ^ Einige moderne CPUs kombinieren zwei oder mehr unabhängige Prozessoren in a Multi-Core Konfiguration und kann mehrere Prozesse gleichzeitig ausführen. Eine andere Technik genannt Simultanes Multithreading (benutzt in Intel's Hyper-Threading Technologie) kann die gleichzeitige Ausführung mehrerer Prozesse oder Threads simulieren.
- ^ Aufgaben und Prozesse beziehen sich im Wesentlichen auf dieselbe Entität. Und obwohl sie etwas andere terminologische Geschichten haben, wurden sie als Synonyme verwendet. Heutzutage wird der Begriff Prozess im Allgemeinen der Aufgabe bevorzugt, außer wenn sich auf "Multitasking" bezieht, da der alternative Begriff "Multiprocessing" zu einfach mit Multiprozessor zu verwechseln ist (was ein Computer mit zwei oder mehr CPUs ist).
Verweise
- ^ a b c d Silberschatz, Abraham; Cagne, Greg; Galvin, Peter Baer (2004). "Kapitel 4. Prozesse". Betriebssystemkonzepte mit Java (Sechstes Ausgabe). John Wiley & Sons. ISBN 0-471-48905-0.
- ^ Vahalia, Uresh (1996). "Kapitel 2. Der Prozess und der Kernel". Unix -Interna: Die neuen Grenzen. Prentice-Hall Inc. ISBN 0-13-101908-2.
- ^ Stallings, William (2005). Betriebssysteme: Interna und Designprinzipien (5. Aufl.). Prentice Hall. ISBN 0-13-127837-1. (insbesondere Kapitel 3, Abschnitt 3.2, "Prozesszustände", einschließlich Abbildung 3.9 "Prozesszustandsübergang mit Suspend -Zuständen")
Weitere Lektüre
- Remzi H. Arpaci-Dusseau und Andrea C. Arpaci-Dusseau (2014). "Betriebssysteme: drei einfache Stücke". Arpaci-Dusseau-Bücher. Relevante Kapitel: Abstraktion: der Prozess Die Prozess -API
- Gary D. Knott (1974) Ein Vorschlag für bestimmte Prozessmanagement- und Interkommunikations -Primitive ACM Sigops Betriebssysteme Überprüfung.Band 8, Ausgabe 4 (Oktober 1974).S. 7 - 44
Externe Links
- Medien im Zusammenhang mit dem Prozess (Computing) bei Wikimedia Commons
- Online -Ressourcen für Prozessinformationen
- Computerprozessinformationsdatenbank und Forum
- Prozessmodelle mit Prozesserstellung und Terminierungsmethoden Archiviert 2021-02-06 am Wayback -Maschine