7.8 KiB
title | date | author |
---|---|---|
Betriebssysteme | Wintersemester 20/21 | Robert Jeutter |
Einführung
worauf es ankommt:
- Korrektheit
- Sicherheit
- Verfügbarkeit
- Skalierbarkeit
- Echtzeitfähigkeit
- Robustheit
- Sparsamkeit
Extrem breites Anwendungsspektrum
- funktionale Eigenschaften
- Authentisierung, Verschlüsselung
- Fahrzeug/Verkehrsmanagement
- Informationsmanagement
- Kommunikationsmanagement
- nichtfunktionale Eigenschaften
- Sicherheit
- Korrektheit
- Echtzeitfähigkeit
- Skalierbarkeit
- Offenheit
- Sparsamkeit
- Verfügbarkeit
- Robustheit
mit vielen Gemeinsamkeiten
- Architekturprinzipien
- Programmierparadigmen
voller individueller Strategien mit teils konfligierenden Zielen
- Performanz
\leftrightarrow
Robustheit - Echtzeitfähigkeit
\leftrightarrow
Effizienz
\Rightarrow
spezialisierte Betriebssystem-Familien1. Einführung
Funktionale und nicht-Funktionale Eigenschaften
Beispiel Essen:
- funktionale Eigenschaft: es soll satt machen
- nichtfunktional: Geschmack, Aussehen,...
Funktionale Eigenschaften (= Funktionen, Aufgaben)
- Betriebssysteme: sehr komplexe Softwareprodukte
- Ein Grund für diese Komplexität: besitzen Reihe von Aufgaben - also funktionale Eigenschaften
- Hauptaufgaben dabei:
- Verwalten der Resourcen des Systems (Hard-u. Software-Ressourcen)
- Transformation der „hässlichen“ Hardwareschnittstellen in angenehme nutzerfreundliche Schnittstelle (Betriebssystem als „Erweiterung“ der Maschine, auch Hardware + BS = „virtuelle Maschine“)
- Dabei für beide Aufgaben: Schaffung sinnvoller Abstraktionen(Prozess, Datei,...
\rightarrow
Softwareressourcen)
Nichtfunktionale Eigenschaften
Wie - mit welchen speziellen weiteren Eigenschaften sollen die funktionalen Eigenschaften realisiert werden. Z.B. schon genannt:
- Echtzeitfähigkeit: Betriebssystem-Komponenten, -Algorithmen usw. mit solchen Eigenschaften realisieren, dass Betriebssystem insgesamt echtzeitfähig ist
- Robustheit: Betriebssystem-Komponenten, -Algorithmen usw. mit solchen Eigenschaften realisieren, dass Betriebssystem insgesamt robust ist
- usw
Blick in Betriebssystem-Zoo
- Mainframe Betriebssystem
- performante E/A
- Massendatenverarbeitung
- Server Betriebssystem
- viele Klienten, permanente Kommunikation
- Web Server, Fileshare
- Parallelrechner Betriebssystem
- Number Crunching, parallele Algorithmen mit hohem Rechenbedarf
- schnelle IPC
- Desktop/Laptop Betriebssystem
- Interaktivität/Responsivität
- Echtzeit Betriebssystem
- Einhaltung zeitlicher Garantien, Safety
- Fahrzeug-, Anlagensteuerung
- Eingebettete Systeme
- in Fahrzeugen, Kaffeemaschinen, Telefonen...
- z.T. Spezialaufgaben
Grundbegriffe
- Wo sind Betriebssysteme zu finden?
- Welches Spektrum decken sie ab?
- Welche Arten von Betriebssystemen gibt es?
- Welche funktionalen und nichtfunktionalen Eigenschaften spielen dabei eine Rolle?
Prozessormanagement: Prozesse und Threads
Grundsätzliches
- Computer bearbeiten Aufgaben in wohldefinierten Arbeitsabläufen (beschrieben durch Programme/Algorithmen)
- bei abarbeitung von Programmen entstehen oft Wartesituationen
- Wartezeiten sind ~ relativ zur Prozessorgeschwindigkeit ~ gigantisch (1 Sek ~ 10 Milliarden Prozessorzyklen)
- statt zu warten, lässt sich besseres tun (parallele Ausführung mehrerer Aufgaben)
- Parallelität geht nicht immer (vorraussetzung Nebenläufigkeit)
Begriffe
- Aktivitäten heißen nebenläufig, wenn zwischen ihnen keine kausalen abhängigkeiten bestehen
- Aktivitäten heißen parallel, wenn sie zeitlich überlappend druchgeführt werden
Definition Prozess: Ein Prozess ist eine Abstraktion zur vollständigen Beschreibung einer sequenziell ablaufenden Aktivität
parallele Aktivitäten werden repräsentiert durch parallele Prozesse
Prozess = betriebssystem-Abstraktion zur Ausführung von programmen
Prozessmodelle: definieren konkrete Prozesseigenschaften
Prozessmanagement: Komponente eines Betriebssystems, die Prozessmodell dieses Betriebssystems implementiert
Aufgabe: präzise Definition der Betriebssystem-Abstraktion "Prozess" (definiert durch Semantik und nichtfunktionale Eigenschaften; implementiert durch Datenstrukturen/Algorithmen)
Prozesserzeugung: Erzeugen einer Programmablaufumgebung
Prozesserzeugung
Was geschieht bei der Prozesserzeugung
- Prüfen notwendiger Vorraussetzungen (Rechte, Ressoucenverfügbarkeit,...)
- Namensvergabe und "Stammbaumpflege"
- Allokation von Ressourcen (Arbeitsspeicher, Prozessorzeit)
- Anlegen von Managementstrukturen (belegte Ressourcen, Laufzetmanagement)
Prozesserzeugung: notwenige Vorraussetzungen
- Rechte: zur Prozesserzeugung und Ressourcenallokation (Kontingente)
- Ressourcenverfügbarkeit (Arbeitsspeicher, Rechenzeit, Kommunikation)
- Sicherheit (Authentizität und Integrität des auszuführenden Programms)
- bei Echtzeitbetriebssystem
- Erfüllung von Ressourcenanforderung
- Einhaltung gegebener Garantien
- Fairness (Quoten)
- robustheit/Überlastvermeidung (Lastsituation)
Prozesserzeugung: Namensvergabe
Identifikation ist positive ganze Zahl durch Vergabe Algorithmus. Kann nach Terminierung eines Prozesses erneut vergeben werden
- eindeutig: zu einem Zeitpunkt bzgl aller existierenden Prozesse
- nicht unbedingt eindeutig: für zeitlich nicht überlappende Prozesse
- erst recht nicht eindeutig: über Systemgrenze hinweg
Prozesserzeugung: Stammbaumpflege
Abstammungsbeziehung: definieren Eltern/Kind Hierarchie
- Prozess erzeugt weitere Prozesse: Kinder
- diese wiederum erzeugen weitere Prozesse usw -> baumartige Abstammungshierarchie Nutzung: Rechte und Verantwortlichkeiten
Verwaiste Prozesse -> Adoption (durch Urprozess)
Prozesserzeugung: Allokation (Zuordnung) von Ressourcen
- Arbeitsspeicher
- Größe: Wie viel Arbeitsspeicher benötigt der Prozess?
- Zeitpunkt: zu welchem Zeitpunkt? Echtzeiteigenschaften (Planbarkeit) oder Performanz (proaktivität)?
- Isolation: wie ist er geschützt? (Robustheit, Sicherheit, Korrektheit)
- Prozessorzeit
- in Prozessmodellen echtzeitfähiger Systeme: Größe und Zeitpunkt
- in Prozessmodellen ohne diese Eigenschaften: dynamisches ad-hoc-Scheduling
für richtige Initialisierung: präzise Formatvereinbarung zwischen
- Linker (Programmdatei-Produzent)
- Prozessmanagement des BS (Programmdatei Nutzer)
- das a.out-Format (veraltet; ursprünglich Unix Format)
- das Mach Object File Format (Mach-O; heutiger Standard für OS X, iOS)
- das Executable and Link(age/able) Format (ELF; heutiger Linux standard)
Prozesserzeugung: Management Datenstrukturen
Buchführung über sämtliche zum management notwendigen Informationen
- Prozessidentifikation
- Rechtemanagement
- Speichermanagement
- Prozessormanagement
- Kommunikationsmanagement
a. Prozessdeskriptor (process control block ~ PCB) b. Prozessdeskriptortabelle: Deskriptioren sämtlicher Prozesse
| Prozessormanagement | | | Identifikation | eindeutige Prozessbezeichnung; einordnung in Abstammungshierarchie | | Scheduling | Informationen für Schedulingalgorithmen | | Prozessorkontext | gesichert bei Verdrängung des Prozesses, restauriert bei Reaktivierung | | Ereignismanagement | what if... | | Accounting (Kontoführung) | zur Prioritätsbestimmung, Statisik, kostenberechnung | | Virtueller Adressraum | Beschreibung des Speicherlayouts | | Kernel Stack | Prozedurmanagement innerhalb des BS | | Rechtemanagement | | | Allgemeines Ressourcenmanagement | Filedeskriptoren, Socketdeskriptoren,... |
Aktionen des Prozessmanagements
- Prüfen notweniger Vorraussetzungen
- Namensvergabe und Stammbaum
- Allokation von Ressourcen
- Anlegen von Managementdatenstrukturen (Prozessdeskriptor)
Prozessterminierung
durch
- Aufgabe erledigt
- Fehler aufgetreten
- durch Nutzer/Eigentümer geschlossen
- ...
- Freigabe der Ressourcen
- Benachrichtigung der "Eltern"
- Adoption der "Kinder"