Kapitel 3 Flashcards
Was ist ein Programm?
- statische Folge von Anweisungen in einer Programmiersprache unter Nutzung von Daten
- dient zur Codierung eines Algorithmus und liegt im Allgemeinen als Datei vor
Was ist ein Prozess?
- eine dynamische Folge von Aktionen, die durch Ausführung eines Programms auf einem Prozessor zustande kommen
- Prozess ist insbesondere durch zeitlich veränderlichen Zustand gekennzeichnet, er wird im Betriebssystem infolge eines Auftrags erzeugt
Wie ist der Zusammenhang zwischen Programm und Prozess?
- Ein Programm kann mehreren Prozessen zugeordnet sein, ein Prozess ist aus Sicht des Benutzer eine Ausführungseinheit
- Aktivität des Prozesses zeigt sich durch Transformation von Eingangs- und Ausgangsoperanden, deren Werte z.B. CPU-Registern oder Speicherzellen liegen
Was ist ein Adressraum?
- umfasst alle einem Prozess zugeordneten Speicherbereiche für Programmcode, statische oder dynamische Daten und Stack
- Das Betriebssystem kann einen Zugriffsschutz relaisieren für diesen Bereich
Was kann einen Auftrag zur Erzeugung eines Prozesses auslösen?
- von einem Bediener, z.B. durch eine Kommandoeingabe
- direkt aus der Umgebung mithilfe von Interrupts
- von anderen Prozessen, durch Aufruf von Systemdiensten
- in der Regel wird der Prozess nach beenden des Auftrags beendet, Ausnahme sind periodische Prozesse, wie z.B. Dienstleistungsprozesse, welche auf neue Aufträge warten
Was ist ein paralleler Prozess?
- wenn zur selben Zeit mehrere Prozesse im System existieren, werden sie parallele Prozesse genannt, unabhängig davon, ob ein Ein- oder Mehrprozessorsystem vorliegt
Was sind Prozesse für das Betriebssystem und wie können sie bearbeitet werden?
- sind Verwaltungseinheiten, welche parallel ablaufen können (Multi-Tasking)
- wenn nur ein Prozessor zur Verfügung steht werden sie quasi-parallel bearbeitet, die Nebenläufigkeit wird dann durch zeitliche Verschachtelung (Scheduling) der Prozesse erreicht
Welche Arten von Prozessen werden vom Betriebssystem verwaltet?
- Anwendungsprozesse, also Prozesse die vom Benutzer initiiert werden
- Systemprozesse, welche Betriebssystemleistungen ausführen
Welche Modi hat das Betriebssystem zur Auswahl?
- Benutzermodus, welcher nur die nichtpriviligierten Befehle des Prozessors zur Verfügung hat (Benutzer- oder Systemprozesse)
- Systemmodus, welcher auch priviligierte Befehle zulässt (z.B. Routinen des Betriebssystem-Kerns)
- Verwendung priviligierter Befehle im Benutzermodus führt bei vielen Betriebssystemen zu Fehlermeldungen
Was ist die Prozessverwaltung
- basiert auf Zustandsmodell, welches die Zustände, welche ein Prozess während seiner Existenz annehmen kann, sowie die zulässigen Zustandsübergänge enthält
Welche Grundzustände für Prozesse gibt es?
- aktiv - der Prozess hat einen Prozessor zugeteilt bekommen und läuft
- bereit - der Prozess wartet auf die Zuteilung eines Prozessors
- wartend - der Prozess muss auf die Erfüllung mindestens einer Wartebedingung warten
- nicht existent - formaler Zustand für Prozesse, die noch nicht oder nicht mehr im System existieren
Was ist der Kontext eines Prozesses?
- enthält alle relevanten Informationen über einen Prozess und ist für die Verwaltung durch das Betriebssystem besonders wichtig
Was sind die typischen Bestandteile des Prozess-Kontextes?
- Benutzer-Kontext: Inhalt des Adressraums des Prozesses, das Speicherabbild des Prozesses
- Hardware-Kontext: auch Register-Kontext oder Registerabbild, der Inhalt aller Prozessregister
- System-Kontext: Inhalt der betriebssysteminternen Verwaltungsdaten über den Prozess
Was sind die Informationen, die im System-Kontext enthalten sind?
- Prozess-Identifikator: Name oder Nummer des Prozesses
- Auftrag/Auftraggeber: Pfadname des Programms, Name des auftraggebenden Benutzers
- Ablaufpriorität: wenn vom OS berücksichtigt
- Verwandschaftsbeziehungen: Identifikatoren von Vater- oder Sohnprozessen, falls es eine Prozesshierarchie gibt
- Zustand: Zustand des Prozesses
- Zugriffsrechte: vom Prozess für Dateien, Speicherbereiche etc.
- Betriebsmittel: angeforderte oder zugeteilte Betriebsmittel und eventuell Auslastung dieser
Was ist ein Prozesswechsel?
- die Änderung der Prozessorzuteilung
- der aktive Prozess gibt den Prozessor entweder freiwillig ab oder wird ihm entzogen
- Vorgang wird vom Prozessumschalter gesteuert, Auswahl des nächsten Prozesses wird durch den Scheduler bestimmt (anhand gewählter Strategie)
- Wechsel kann in der Regel nur bei Unterbrechung stattfinden, Hardwareunterbrechung oder Softwareunterbrechung
Was muss das Betriebssystem bei Prozesswechsel tuen?
- Sicherung des gesamten Kontext des unterbrochenen Prozesses
- Änderung des Zustandes des unterbrochenen Prozesses in bereit oder wartend, je nach Grund für die Unterbrechung
- Scheduling: Auswahl des nächsten, zu aktivierenden Prozesses
- Änderung des Zustands dieses Prozesses von bereit auf aktiv
- Wiederherstellung des Kontextes dieses Prozesses, durch das Laden des Prozessorregisters wird der Prozess fortgesetzt
Was ist eine Kernsperre?
- verhindert die Unterbrechung von Abläufen innerhalb eines Betriebssystem-Kerns
- vollständige Kernsperre ist einfach und sicher, aber setzt voraus, dass im Kern keine Wartezustände auftreten
Was ist ein Leerprozess?
- eine Warteschleife, sodass er problemlos abgelöst werden kann, wird nur benötigt wenn beim Scheduling kein anderer Prozess laufbereit ist
Was ist ein Thread?
- ein Aktivitätsträger mit minimalem Kontext innerhalb eines Prozesses
- Jeder Prozess besitzt mindestens einen initialen Thread, alle Threads die zum selben Prozess gehören, benutzen den gleichen Adressraum und andere Betriebsmittel des Prozesses
- durch den gemeinsamen Kontext ist der Wechsel zwischen Threads desselben Prozesses sehr einfach
- es ist allerdings zusätzliche Synchronisation der Threads nötig