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)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Prozesse

Erzeugungsmechanismen

A

nur exec() - wenn Prozess seinen Zweck erfüllt hat

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Prozesse

Fehlerfälle

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Threads

Vorteile und Probleme

A
  • Wechsel zwischen Threads weniger aufwendig als Kontextwechsel zwischen Prozessen
  • keine Neuparametrisierung der MMU, TLB wird nicht invalide
  • Cache muss nicht geleert werden - virtuelle Adressen bleiben
  • Nachteil: Race Conditions -> Threads arbeiten zeitgleich/mit Überholvorgängen auf gemeinsamen Daten -> Race Conditions: Konkurrenz um Speichervariable, gegenseitiges Überschreiben des Ergebnisses
17
Q

Schedulingstrategien

Round-Robin-Scheduling

A
  • präemptiv
  • jeder Prozess bekommt Zeitscheibe (Quantum)
  • Prozess, dessen Laufzeitquantum abgelaufen ist, wird danach am Ende der „bereit“-Schlange eingereiht
  • Prozess, der in „bereit“-Schlange an erster Stelle steht, wird ausgeführt
  • „wait i/o“-Schlange: Prozesse warten auf Ende eines Systemaufrufs dann in „bereit“-Schlange eingereiht
18
Q

Aufgaben des Betriebssystems

A

Rechner und alle Komponenten verwalten

  • Speicherverwaltung
  • Prozessorverwaltung
  • Prozessverwaltung
  • Dateiverwaltung
  • Userverwaltung
  • Rechteverwaltung
  • Kommunikationsdienste
  • Synchronisierung
  • Uhrzeitverwaltung
  • Geräteverwaltung
19
Q

Nutzer-Modus, Kernel-Modus

A
  • Prozessor muss für sicheres BS mind. 2 Privilegierungsstufen unterscheiden
    • Kernel-Modus für BS
    • User-Modus für Benutzerprozesse
  • Stufe 0 für vollen Befehlsumfang der CPU (BS)
  • Stufe 3 für Anwendungen - verboten z.B.
    • Ändern der Privilegstufen
    • Setzen der Interruptsperre
    • Verwenden der I/O-Befehle
  • CPU startet mit höchster Privilegstufe + startet BS darin
20
Q

Schedulingstrategien

First Come First Served

Shortest Job First

A
  • nicht präemptiv
  • FCFS: Prozesse in der Reihenfolge ausgeführt, in der sie eintreffen
    • relative lange mittlere Antwortzeite
    • einfach zu implementieren, geringer Overload
  • SJF: wenn man Laufzeit der Prozesse kennt -> Prozess mit kürzester Laufzeit bzw. Prozessornutzung zwischen zwischen Wartezeiten bevorzug
    • schnelle mittlere Antwortzeiten
21
Q

Schedulingstrategien

Multilevel Feedback Scheduling

A
  • präemptiv
  • Warteschlangen mit unterschiedlichen Prioritäten
  • Prozesse der nächsten Priorität (z.B. P1) erst ausgeführt, wenn keine mehr in höherer Prioritätsstufe sind (z.B. P0)
  • Feedback:
    • beim Prozessstart höchste Priorität
    • wegen Zeitscheibe unterbrochen: in Priorität herabgestuft (Prozesse mit viel Rechenzeit)
    • vor Ende der Zeitscheibe Prozessor abgegeben: I/O-wartend in selbe Priorität eingeordnet
  • Anwendung: für schnelle Antwortzeiten bei Mausbewegungen, Schreiben etc.
22
Q

Schedulingstrategien

Echtzeit

A
  • Echtzeit: Anwendungen mit unterschiedlichen Zeitanforderungen, z.B. zeitkritische Prozesse und Prozesse ohne zeitl. Anforderungen
  • Aktion muss nach einer vom übergeordneten System generierten Anforderung zu einem bestimmten Zeitpunkt (Deadline) beendet sein, sonst ist sie sinnlos oder gar gefährlich
  • “weiche” Echtzeit: kleiner Anteil an Verletzungen der Zeitschranken tolerabel, z.B. Audio- und Videoanwendungen
  • starre Prioritäten: Administrator des Systems hat durch Prioritätszuweisung volle Kontrolle
  • unfaires Verfahren -> Prozesse niedriger Priorität können verhungern
  • Prozesse mit gleichen Prioritäten werden nach RR oder FCFS behandelt
23
Q

Prozessverwaltung

Systemaufrufe

A
  • damit Prozess mit Umwelt in Kontakt treten kann über Peripherie des Rechners -> von BS verwaltet
  • Systemaufrufe/Systemcalls -> Prozess bittet BS um Unterstützung
  • durch Interrupt realisiert
  • meist nicht von Anwendung selbst, sondern durch Bibliotheken abgesetzt
  • Maschinenbefehl SYSCALL für weniger aufwendigen Wechsel ins BS
  • BS kann entscheiden, ob Fortsetzung des Programms sinnvoll ist, wenn das im Aufruf gewünschte nicht unmittelbar ausgeführt werden kann
  • Beispiele: Zeichen von Standardeingabe holen, Ausgabe eines Zeichens auf Standardausgabe, Dateien öffnen/schließen, Daten in Datei schreiben, Datenblock über LAN senden, Taskende
24
Q

Prozessverwaltung

Ablauf eines Systemaufrufs

A
  1. mit Syscall in Kontext des BS wechseln
  2. im BS Auftrag auswerten und entsprechende Funktionseinheit (Festplattentreiber, LAN-Treiber, etc.) mit weiterer Ausführung betrauen
  3. Treiber wandelt abstrakten Auftrag in Auftrag um, der von entsprechenden Geräten (IDE-Controller, LAN-Controller, USB-Controller) verstanden wird
  4. Treiber kehrt zu BS zurück
  5. Scheduler blockiert rufende Anwendung („wartend“) und wechselt zu Anwendung 2 („bereit“)
  6. Auftrag abgeschlossen: Meldung per Interrupt an Treiber -> andere Anwendung unterbrochen und Treiber aktiviert
  7. Treiber meldet Auftragsende an BS -> Anwendung in Zustand „bereit“ gesetzt und in Warteschlange einsortiert
  8. keine Anwendung vor ihr: Anwendung erhält CPU und wird im Code unmittelbar nach Systemcall fortgesetzt
25
Q

Prozessverwaltung

Effiziente Speichernutzung

A
  • Demand Paging
  • Copy on Write
  • Memory Mapped Files
  • (Seitenverdrängung)
26
Q

Prozessverwaltung

Demand Paging

A
  • Ziel: Anwendung nur mit tatsächlich benötigten Platz im Speicher
    • weniger Hauptspeicherverbrauch
    • Einsparung der Transferzeit der nicht geladenen Seiten
    • schnelleres Starten der Anwendung
  • auch wenn Anwendungen zusätzlichen SPeicher im Heap anfordern
  1. Beginn: Anwendung nur mit Seite in Speicher geladen, in der Startadresse ist
  2. vom BS gestartet
  3. Zugriff auf weitere Seite -> Page-Fault-Exception wegen ungültiger Adresse
  4. BS prüft Berechtigung des Zugriffs -> lädt angeforderte Seite -> setzt Anwendung mit vorher fehlgeschlagenen Befehl fort
27
Q

Prozessverwaltung

Copy on Write

A
  1. Prozesserzeugung: nur die Seitentabellen als exakte Kopien der Tabellen des Vaters erstellt
    • Verweis auf identischen Hauptspeichers
    • Verwendung von selben Code + Daten + Stack
  2. alle(!) Seiten beider Prozesse mit Schreibschutz versehen, damit Prozesse nicht gegenseitig Daten überschreiben (W-Bit auf 0 gesetzt)
  3. Exception des Prozessors, wenn Prozess eine Zeile in seinem Adressraum beschreiben will
  4. BS erkennt, dass eigentlich zulässige Aktion
  5. Kopie der Seite in freie, ungenutzte Seite -> Zuordnung zu verursachenden Prozess -> page table aktualisiert
  6. Schreibschutz für neue und für bereits vorhandene Seite aufgehoben
  • Einsparungseffekt: viele Seiten nur gelesen (Code) -> viele Seiten a) nicht kopiert und b) nicht den freien Seiten entnommen
  • bei exec() aber komplett neuer Adressraum!
28
Q

Prozessverwaltung

Memory Mapped Files

A
  • Mechanismus ähnlich Demand Paging
  • bei Öffnen einer Datei per Programmierung
  • Ausschnitt der Datei mit Filedeskriptor fd, beginnend ab Offset offset, mit Länge len in freien virtuellen Adressraum des Prozesses, auf einer Seitengrenze beginnend, abgebildet -> im Heap Bild der Datei gemappt (virtuelle Datei)
  • Zugriff des Prozesses mit Zeiger auf Datei: Page-Fault-Exception
    • Behandlung der Exception durch BS
    • entsprechende Seite mit Inhalt des Abschnitts der Datei von Festplatte gefüllt
    • Anwendung mit Wiederholung des fehlgeschlagenen Befehls fortgesetzt
  • nur Seiten mit Zugriff werden geladen
29
Q

Prozessverwaltung

Seitenverdrängung

A
  • wenn zur Verfügung stehender Speicher knapp wird -> Verdrängung geladener Seiten durch BS
  • im Voraus für genügende Zahl freier Seiten sorgen
  • sicherstellen, dass laufender Prozess nicht auf ausgelagerte Seite zugreifen kann + dass keine CPU während Seitenentziehung zugeteilt ist
    • P = 0 gesetzt in page table
    • Seite in Auslagerungsbereich auf Festplatte kopiert
    • Prozess in der Zeit meist inaktiv (wartend) -> sichergestellt, dass TLB für diesen Prozess nicht valide
  • bei Verdrängen: prüfen, ob Seite modifiziert wurde -> Modified-Bit von Prozessor gesetzt
    • modifiziert: BS muss Inhalt in Swap-Area der Festplatte kopieren – von dort bei Bedarf wieder einlagern
    • nicht modifiziert: auf Festplatte ist Original noch erhalten BS kann Seite einfach freigeben (z.B. Code-Seite aus Initialisierung des Programms)
  • Problem: Page Trashing
30
Q

Prozessverwaltung

Seitenverdrängung - Strategien

A
  • Optimale Strategie
  • FIFO
  • Clock-Algorithmus
  • LRU
31
Q

Prozessverwaltung

Seitenverdrängung

Optimale Strategie

A
  • Seiten auslagern, die nie wieder, am wenigsten oft oder möglichst spät wieder benötigt werden
  • Ziel: Anzahl der page faults, die durch Wiedereinlagern der ausgelagerten Seiten entstehen, minimieren
  • unmögliche Strategie (unbekannt, welche Seiten wieder gebraucht werden)
  • Bewertungsgrundlage für andere Strategien (schließen aus Verhalten in Vergangenheit, ob Seiten bald wieder gebraucht werden)
32
Q

Prozessverwaltung

Seitenverdrängung

Clock-Algorithmus

A
  • Seiten in Reihenfolge ihrer Einlagerung (ähnlich FIFO) in Ringpuffer verwaltet
  • 2 Zeiger = Daemon-Prozess durchsucht Ringpuffer Prozessorzeit
    • kreisen in festen zeitlichen Abstand
    • vordere Zeiger löscht A-Bit im Ringpuffer („Accessed“)
    • folgende Zeiger liest A-Bit
    • A=1: Seite beim Markieren überspringen (wurde kürzlich benutzt)
    • A=0: Seite zum Auslagern vormerken
  • A-Bit wird bei Zugriff durch MMU gesetzt
33
Q

Prozessverwaltung

Seitenverdrängung

FIFO

A
  • einfach und unaufwendig
  • Seite wird beim Einlagern in verlinkte Liste aller geladenen Seiten hinten eingehängt
  • älteste Seite = Seite am Anfang wird ausgelagert
  • nicht optimal, da es Nutzung der Seite in jüngerer Vergangenheit nicht berücksichtigt Verdrängung häufig benutzter Seiten möglich
34
Q

Prozessverwaltung

Seitenverdrängung

LRU - Least Recently Used

A
  • momentan am ökonomischsten
  • längste nicht mehr benutzte Seite wird zuerst ausgelagert
  • Grund: lange nicht mehr benutzte Seiten werden in Zukunft nur mit geringerer Wahrscheinlichkeit benötigt
  • 8-Bit-/16-Bit-Zahl als Anhaltswert für Häufigkeit der Seitennutzung in jüngster Vergangenheit
  • Prozessoren setzen bei Zugriff auf Pagetable-Eintrag A-Bit -> Zugriff auf PT, wenn Seite noch nicht/nicht mehr im TLB
  • BS liest A-Bit in regelmäßigen Abständen t + trägt Wert als höchstwertiges Bit in Maßzahl pro Seite ein
  • Seite mit kleinsten Wert wird ausgelagert
35
Q

Prozessverwaltung

Seitenverdrängung

Page Trashing

A
  • zu viele Prozesse mit zu hohen Speicheranforderungen aktiv
  • permanentes Ein-und Auslagern von Seiten
  • Einlagern einer Seite provoziert Auslagern einer Seite
  • CPU-Last = klein, da Warten auf Auslagerung
  • Festplattenkapazität = voll ausgelastet durch permanente Zugriffe
  • Gegenmaßnahme: Stoppen und komplettes Auslagern / Abbrechen einzelner Prozesse + Verweigern der Erzeugung neuer Prozess
    • Speicher wird freigemacht/nicht angefordert
    • Anzahl der Speicheranforderungen vermindert