Betriebssysteme

Aus II-Wiki
Zur Navigation springen Zur Suche springen

Zuletzt aktualisiert: WS20/21

Keine Garantie auf Vollständigkeit und/oder Korrektheit!

Einführung

Frage Unterscheidung Funktionale Eigenschaften, nicht Funktionale Eigenschaften. Was ist was?

Folien, die wichtig aussehen: 14, 15, 16

Es gibt viele verschiedene Betriebssystemtypen, für je unterschiedliche Anforderungen. Unterschiedliche funktionale und nicht-funktionale Eigenschaften

Prozessormanagement – Teil 1: Prozesse und Threads

Grundsätzliches

Computer erledigen Aufgaben --> Wartesituationen existieren --> Parallele Ausführung, effizienter

Vorraussetzung für Parallelität: Nebenläufigkeit

Nebenläufig <=> Kausal unabhängig Parallel <=> Zeitlich überlappend

Prozessmodelle und Prozessmanagement

Prozess: (Betriebssystem-)Abstraktion zur Ausführung von Programmen

Dazu gehören:

  • Programm, Bearbeitungszustand
  • Betriebsmittel (Ressourcen)
  • Rechte

Ein Prozess ist definiert durch

  • die Operationen auf ihm
  • Echtzeit-, Safety-, Security-Eigenschaften

Prozessmodelle: definieren konkrete Prozesseigenschaften

Prozessmanagement: Komponente, die Prozessmodelle implementiert

Prozesserzeugung

Bei einer Prozesserzeugung passiert: - Prüfen notwendiger Voraussetzungen - Namensvergabe - Stammbaumpflege - Allokation von Ressourcen - Anlegen von Managementdatenstrukturen

Nun etwas genauer.

Notwendige Voraussetzungen

- Rechte - Ressourcenverfügbarkeit - Sicherheit

    • Ist das Programm böse?

- irgendwas mit Echtzeitsystemen - Fairness - Robustheit/Überlastvermeidung

Namensvergabe

Gibt dem Prozess eine Zahl als Namen

Stammbaumpflege

Ein Prozess kann weitere Prozesse erzeugen. Baum-Struktur entsteht.

Wenn ein innerer Knoten-Prozess verschwindet, werden dessen Kinder von anderen Prozessen adoptiert. Bei Unix: Vom Urprozess

Allokation von Ressourcen

Arbeitsspeicher

- Wie viel Arbeitsspeicher? - Wann bekommt der Prozess ihn? - Isolation ???

Prozessorzeit

In Echtzeitsystemen ist das voll wichtig und so... bei anderen passiert etwas namens ad-hoc-Scheduling. Was das ist, kommt vielleicht später.


Anlegen von Managementdatenstrukturen

Buchführung über Informationen fürs Management.

- Prozessdeskriptor - Prozessdeskriptortabelle, beinhaltet Prozessdeskriptoren

Prozessterminierung

Prozess terminiert sich entweder selbst, weil Aufgabe erledigt\\ oder wird terminiert weil er Mist gebaut hat oder nicht mehr gebraucht wird.

Dabei werden: - Ressourcen freigegeben - Die Eltern benachrichtigt - Die Kinder adoptiert

Threads

Wir wollen Berechnungen parallel laufen lassen. Naive Lösung: Jedes nebenläufige Ding kriegt einen Prozess, das ist aber uncool weil das mit einigen Kosten verbunden ist (Management, Ressourcenallokation usw.).

Das Problem bei Prozessen ist, dass zwei unabhängige Konzepte zusammengefasst sind. Sie sind

  • sowohl die elementare Einheit des Ressourcenmanagements und des Schutzes als auch
  • die elementare Einheit der Parallelität

Nun wollen wir eine Abstraktion für jede dieser Einheiten erstellen.

Multithread-Prozessmodelle

Definition Prozess: Ein (Multithread-)Prozess ist eine vollständige Beschreibung einer (nicht zwingen sequentiell) ablaufenden Aktivität. Dazu gehört insbesondere - Das ablaufende Programm (ohne Bearbeitungszustand) - zugeordnete Betriebsmittel - Rechte - prozessinterne parallele Aktivitäten (Threads) und ihre Bearbeitungszustände

Definition Threads: Ein Thread ist eine sequentielle Aktivität innerhalb eines Prozesses. Parallele Aktivitäten werden durch parallele Threads repräsentiert.

Implementierungsebenen von Threads

langweilig


Prozessormanagement (Teil2): Scheduling

Prozessormanagement (Teil3): Kommunikation und Synchronisation

Speichermanagement

Dateisysteme

Netzwerkmanagement

E/A-Systeme

High-End Betriebssysteme