03_Prozessverwaltung Flashcards
1
Q
Prozesse
Virtueller Adressraum von Prozessen
A
- Prozess verfügt über Code, Daten und dynamische Speicherbereiche (Heap und Stack)
(vereinfachte Darstellung ohne pages)
2
Q
Prozesse
Definition
A
- Programm -> von Betriebssystem in Adressraum eines Prozesses/freien Teil des RAM geladen
- Prozess = Programm, das im Hauptspeicher zur Ausführung kommt
3
Q
Prozesse
Prozesserzeugung (UNIX)
A
- durch Kopieren aus Initialisierungsprozessen
-
fork() = Systemaufruf, der Kopie des aufrufenden Prozesses mit eigener PID erstellt
- Vererbung von Eigenschaften (User-ID, Group-ID) + Ressourcen (offene Dateien, Pipes, Sockets, …)
- neu erzeugter Adressraum
- return 0 an Kind, >0 an Vater, <0 Fehler
- exec(„PATH“) = Systemaufruf, der BS veranlasst, den Adressraum des rufenden Prozesses mit dem Code und den Daten aus der ausführbaren Datei „PATH“ zu überladen -> Beginn an Startadresse des neuen Programmes
- wait() = Vaterprozess wartet auf Beendigung des erzeugten Prozesses und Rückgabewert (EXIT(…)) - Prozesse laufen parallel
4
Q
Prozesse
Erzeugungsmechanismen
A
nur exec() - wenn Prozess seinen Zweck erfüllt hat
5
Q
Prozesse
Prozesserzeugungsbaum UNIX
A
- Systemprozesse starten als Kopien von init -> schaffen Benutzerumgebungen
- blau: Rechte des Systemadministrators
- Shell nach Login, da User zugeordnet -> UID wird gesetzt -> Login wird nicht mehr benötigt
- auch Systemanwendungen (daemons) in Initialisierungsphase gestartet (z.B. inetd = Internetdaemon)
6
Q
Prozesse
Prozesszustände
A
- geladen: Programm in Hauptspeicher geladen, Prozess existiert und hat PID
- bereit: Prozess ist bereit, Prozessor zugeteilt zu bekommen, um Programmcode auszuführen
- rechnend: Prozess hat Prozessor, Programmcode wird ausgeführt
- wartend: Prozess hat system call gestellt und wartet auf Beendigung
- ausgelagert: BS hat Prozess auf Externspeicher ausgelagert, um Speicherplatz frei zu machen
- nicht existent: Prozess hat BS Auftrag gegeben, ihn zu beenden -> alle Ressourcen freigegeben
7
Q
Prozesse
Fehlerfälle
A
8
Q
Prozesse
Prozessende
A
- Timerbaustein, der in relativ kurzen Zeitabständen (ca. 10 ms) einen Hardwareinterrupt generiert, der zum Einsprung ins Betriebssystem führt
- System stellt fest, ob dem Prozess der Prozessor entzogen werden muss, da seine ihm zustehende Bearbeitungszeit abgelaufen ist -> anderen Prozess den Prozessor zuteilen
- ermöglicht Multitasking-System
- o. Prozess wartet auf Eingabe u. gibt Prozessor selbst ab
- Abmeldung des Users: beendet seine ihm zugeordnete oberste Shell der Prozesshierarchie -> Signal SIGHUP an alle Kindprozesse -> beenden sich
9
Q
Prozessverwaltung
Prozess-Kontext + Switching
A
- BS speichert Informationen für jeden Prozess im Prozess-Kontext: Programme und Daten des Programms + Informationen, die im Betriebssystem für einen Prozess verwaltet werden + Inhalte aller Hardware-Register (Befehlszähler, PSW, MMU-Register, …)
- Kontext-Switching: wenn gerader aktiver Prozess die CPU verliert -> Hardware-Kontext des laufenden Prozesses gesichert + Hardware-Kontext des neu aktivierten Prozesses in Ablaufumgebung geladen
- Prozesstabelle: spezielle Datenstruktur des BS mit allen aktuellen Prozessen gesamte Information für Prozessverwaltung
- Process Control Block (PCB): Eintrag in Prozesstabelle
10
Q
Prozessverwaltung
Informationen im PCB
A
- Prozesspriorität (entscheidend für Laufzeitverhalten)
- Signalmaske
- bisherige Rechenzeit
- Erzeugungszeitpunkt
- Kontext (Register etc., insbes. PC)
- Prozessnummer (process identifier, PID)
- Eigentümer (user ID UID, group ID GID)
- Eltern-PID (PPID)
- Dateideskriptoren (offene Dateien)
11
Q
Prozessverwaltung
Ziele von Prozessscheduling
A
- Optimierung der Ressourcennutzung
- Maximierung des Durchsatzes
- Minimierung der Antwortzeiten
- Auslastung der CPU
- Fairness (es sollen keine Prozesse oder Anwender benachteiligt werden, v.a. nicht verhungern)
- Garantie von Antwortzeiten (Echtzeit)
12
Q
Prozessverwaltung
Arten des Scheduling
A
-
preemptiv: BS hat Timer, unterbricht die Prozesse
- Round-Robin-Scheduling
- Multilevel Feedback Scheduling
-
nicht preemptiv: Prozess behält Prozessor bis zum Prozessende oder gibt ihn selber frei
- FCFS
- SJF
13
Q
Threads
Speicher
A
- “leichtgewichtige Prozesse”
- nebenläufige Ausführungseinheit innerhalb eines Prozesses
- erben offene Dateien und Netzwerkverbindungen
- kein neuer Daten- und Codebereich
- nur weiterer Stack
- Zugriff auf globale Daten des Thread-Erzeugers
14
Q
Threads
KLT - Kernel-Level-Threats
A
- mit system call erzeugt und verwaltet
- können synchronisiert werden
- ähnlich wie Prozesse wahrgenommen
- entsprechend der Strategien des Schedulers Prozessorzeit eingeräumt
15
Q
Threads
ULT - User-Level-Threats
A
- Thread-Bibliothek (ULT) mit Aufgabe, Threads zu generieren + Betriebsmittel (Stack) u. Prozessor zuzuweisen
- für BS nur ein Prozess zusehen
- z.B. auf Rechnern, deren BS keine Threads unterstützt