Kapitel 6Betriebssysteme - Einführung
Kap. 6RW-Systemarchitektur
Überblick Betriebssysteme
6 Einführung6.1 Aufgabe von Betriebssystemen6.2 Verschiedene Komponenten / Konzepte von Betriebssystemen6.3 Unterschiedliche Arten von Betriebssystemen6.4 Anforderungen6.5 Daraus abgeleitete Probleme, Teilaufgaben, Konzepte, Verfahren6.6 Zusammenfassung6.7 Historische Entwicklung7 Prozesse, Fäden (threads), Scheduling8. Speicherverwaltung9. Dateisysteme10. Ein- und AusgabeNebenläufigkeit und wechselseitiger Ausschluss – Inhalt der Vorlesung
„Nebenläufige Programmierung“Deadlocks - dito
Kap. 6RW-Systemarchitektur
Abstraktionsniveaus für Programmierer
Befehlssatzarchitektur - Instruction Set Architecture (ISA)
Betriebssystem - Abstraktion der Architektur
Bibliotheksfunktionen, Dienstprogramme
Anwendungsprogramme
Anwender
Anwendungs-programmierer
Betriebssystem-programmierer
Kap. 6RW-Systemarchitektur
6.1 Aufgabe von Betriebssystemen
Hardware für bestimmte Zwecke benutzbar machen: bietet komfortable Abstraktion der Hardware an,
Beispiel (Tanenbaum):read- und write-Kommando für Floppy Disks verlangen 13 Parameter, in 9 Bytes gepackt: Adresse,
Zahl der Sektoren pro Spur, Aufzeichnungsmodus, Zwischenraum zwischen Sektoren, …
geben 23 Status- und Fehlerfelder zurück, in 7 Bytes gepackt
Programmierer möchte aber Datei-Abstraktion haben.
Kap. 6RW-Systemarchitektur
6.2 Was gehört zum Betriebssystem
Rechner haben (mindestens) zwei Betriebsmodi (Hardware hat ein Modus-Bit):
System-Modus – erlaubt uneingeschränkte Nutzung aller Hardware-Funktionen und Zugriff auf alle Betriebsmittel,
Benutzer-Modus – erlaubt eingeschränkte Nutzung (Ausführung von nur einem Teil der Maschinenbefehle).
Betriebssystem läuft als einziges im System-Modus! System-Modus ist die Basis für Schutzmechanismen. Darauf aufbauend gibt es weitere privilegierte Systeme,
z.B. Passwortverwaltung, … Bedienoberfläche, Webbrowser laufen nicht im System-
Modus nicht Teil des Betriebssystems
Kap. 6RW-Systemarchitektur
Betriebssystem, Dienstprogramme, Anwendungsprogramme
Schnittstelle zwischen Betriebssystem und System- bzw. Dienstprogrammen ist nicht immer klar definiert.
Hier: Dienstprogramme laufen nicht im System-Modus, sind also nicht Teil des Betriebssystems.
Typische (anwendungsunabhängige) Dienstprogramme sind: Compiler Editoren Bedienoberfläche Kommandointerpreter (sog. Shell)
Anwendungsprogramme: Textverarbeitung Tabellenkalkulation Datenbankanwendungen Webbrowser etc.
Kap. 6RW-Systemarchitektur
6.3 Typen von Betriebssystemen
Viele Typen von Betriebssystemen mit verschiedenen Aufgaben, Unterstützung von
Anwendungsprogrammen: Textverarbeitung, Tabellenkalkulation, Spiele, …
Softwareentwicklung, Kontrolle eingebetteter (Echtzeit-)Systeme, Transaktionssystemen: Datenbanken, Reservierungssysteme,
Buchhaltung,…
Betriebssysteme unterstützen verschiedene Arten von Benutzern: Architektur-Abstraktion wichtig für den
Anwendungsprogrammierer, Interaktivität wichtig für Online-Nutzer, Persistente Speicherung wichtig für Server-Nutzer
Kap. 6RW-Systemarchitektur
6.4 Anforderungen an Betriebssysteme
Kap. 6RW-Systemarchitektur
Anforderungen an und Charakteristik von PC/Workstation-Betriebssystemen
Kap. 6RW-Systemarchitektur
Anforderungen an und Charakteristik von Echtzeit-Betriebssystemen
Kap. 6RW-Systemarchitektur
Anforderungen an und Charakteristik von File-Server-Betriebssystemen
Kap. 6RW-Systemarchitektur
Anforderungen an und Charakteristik von Compute-Server-Betriebssystemen
Kap. 6RW-Systemarchitektur
Anforderungen an und Charakteristik von Transaktions-Betriebssystemen
Kap. 6RW-Systemarchitektur
Kap. 6RW-Systemarchitektur
6.5 Von den Aufgaben abgeleitete Probleme, Teilaufgaben, Komponenten, Konzepte, Verfahren, Eigenschaften
Betriebssystem verwaltet Berechnungen Konzept: Prozess – in Ausführung befindliches Programm kreiert durch Benutzer, Service-Anfrage oder periodischen
Auslöser, koexistiert häufig mit anderen Prozessen
Nebenläufigkeit, Schutz voreinander, Deadlock, Livelock Sicherheitseigenschaften, Lebendigkeitseigenschaften
benötigt zur Ausführung Betriebsmittel/Ressourcen Verwaltung von Betriebsmitteln, Virtualisierung, wg. Nebenläufigkeit: Konkurrenz um Betriebsmittel Scheduling Lebendigkeitseigenschaften, Fairness
Kap. 6RW-Systemarchitektur
Von den Aufgaben abgeleitete Probleme, Teilaufgaben, Komponenten, Konzepte, Verfahren, Eigenschaften
Betriebssystem verwaltet Speicher, garantiert Persistenz – Dateisystem, garantiert Atomizität – Transaktion,
Betriebssystem verwaltet Ein-/Ausgabegeräte Virtualisierung – jedem Prozess sein verlangtes Gerät Zuordnung zu realen Geräten unter
Randbedingungen - Synchronität, gegenseitiger Ausschluss
Kap. 6RW-Systemarchitektur
Von den Aufgaben abgeleitete Probleme, Teilaufgaben, Komponenten, Konzepte, Verfahren
Verschiedenen Typen von Betriebssystemen - verschiedene Optimierungsziele
Server – Durchsatz Timesharing-System - Interaktivität
Echtzeitbetriebssystem „garantiert Reaktionszeiten”, genauer, garantiert bestenfalls die Unabhängigkeit
des zeitlichen Verhaltens der Prozesse,
Kap. 6RW-Systemarchitektur
6.6 Zusammenfassung: Aufgabe von Betriebssystemen
Ein Betriebssystem ist ein Programm (Software) mit den grundsätzlichen Funktionen:1. Virtualisierung von Systemressourcen, dazu2. Verwaltung von Systemressourcen,3. Bereitstellen einer „erweiterten Maschine“ für den
Anwendungsprogrammierer,4. Anbieten von Schutzmechanismen.
Kap. 6RW-Systemarchitektur
Virtualisierung
Betriebssystem bietet dem Benutzer statt – einem realen Rechner mit
– einer festen Zahl von Prozessoren, – beschränktem Hauptspeicher, – beschränkter Zahl von Ein-/Ausgabe-Geräten
– viele virtuelle Rechner an– pro ausgeführter Anwendung einen,– mit (fast) unbegrenztem Speicher,– der notwendigen Zahl von Ein-/Ausgabe-Geräten.
Kap. 6RW-Systemarchitektur
Verwaltung von Systemressourcen
Verwaltung aller Komponenten eines komplexen Systems Komponenten sind z.B.
Prozessoren, Speicher, Uhren, Platten, Terminals, Ein-/Ausgabegeräte, Netzwerkschnittstellen etc.
Diese Bestandteile eines Rechnersystems bezeichnet man auch als Betriebsmittel.
Betriebssystemaufgabe: Geordnete und kontrollierte Zuteilung von Betriebsmitteln an konkurrierende Prozesse / Benutzer.Beispiele: Mehrere Programme rechnen scheinbar gleichzeitig auf einer CPU und im gleichen
Speicher, versuchen gleichzeitig Daten auf demselben Drucker
auszugeben.
Kap. 6RW-Systemarchitektur
Betriebssystem als Ressourcenmanager
Aufgaben beim Verwalten von Systemressourcen: „Faire“ Zuteilung von gemeinsam genutzten
Betriebsmitteln Auflösung von Konflikten bei der Betriebsmittelanforderung Effiziente Verwaltung von Betriebsmitteln Protokollieren der Ressourcennutzung Abrechnung der Betriebsmittelnutzung Fehlererkennung, Fehlerbehandlung
Hardware: Gerätefehler Software: Programmfehler
Kap. 6RW-Systemarchitektur
Ressourcenverwaltung in zwei Dimensionen:
Zeit: Verschiedene Benutzer erhalten Betriebsmittel nacheinander
Raum: Verschiedene Benutzer erhalten verschiedene Teile einer Ressource.Achtung: Manche Ressourcen sind unteilbar!
Kap. 6RW-Systemarchitektur
Ressourcen-Zuteilung
Vergabestrategie zur Erreichung von Entwurfszielen, je nach Typ des Betriebssystems: Fairness Grad an Interaktivität Optimierungsziel: Maximierung von Durchsatz Garantien: Einhaltung von Fristen (Deadlines)
Kap. 6RW-Systemarchitektur
Bereitstellen einer „erweiterten Maschine“ (ABI) Abstraktion von Verhalten des zugrunde liegenden
Rechners auf möglichst hohem Niveau Verstecken von Eigenschaften der realen Hardware
vor dem Programmierer Leichte Programmierbarkeit
Beispiel: Datenspeicherung auf der Festplatte Entlastung des Programmierers von Details wie Einschalten
des Motors, Bewegung des Plattenarms, Aufteilung des benötigten Platzes auf Sektoren der Platte etc.
Einfache Programmierschnittstelle: Schreiben in Datei
Das BS stellt dem Programmierer eine abstrakte Programmierschnittstelle (ABI) zur Verfügung.
Das BS bietet einen Satz von Kommandos (Systemaufrufe), über die z.B. auf Ein-/Ausgabegeräte zugegriffen werden kann.
Kap. 6RW-Systemarchitektur
Schutz Schutz verschiedener Benutzer und Programme
voreinander Kontrolle des Zugriffs auf Speicherbereiche und Dateien –
z.B. kein Überschreiben von Programmener, kein Pufferüberlauf (buffer overflow)
Zugriffskontrolle zum System Verhindern nicht autorisierten Eindringens.
Kap. 6RW-Systemarchitektur
6.7 Historische Entwicklung von Betriebssystemen
bis 1955 Rechnen auf „nackter“ Hardware
1955 Stapelverarbeitung, Serielle Abarbeitung der Jobs gesteuertdurch kleines Softwareprogramm, genannt Monitor, IBM
1966/67,IBM OS/360
Mehrprogrammfähige Stapelverarbeitungssysteme,überlappende Ausführung mehrerer Progamme zur Überbrückung von Ein-/Ausgabewartezeiten, mehrere Speicherpartitionen.
Time-Sharing Systeme (Zeitaufteilungsverfahren),interaktives Arbeiten mehrerer Benutzer mit Online-Zugang
Systeme mit graphischen Benutzeroberflächen, Fenster, Maus, …
1962 CTSS,1963-69 Multics,1969-74 UNIX
Mikrocomputer-Betriebssysteme1974 CPM,1980 MS-DOS
1974 XEROX,1983 Apple1985 MS-Windows
Kap. 6RW-Systemarchitektur
Zusammenfassung
Betriebssystem ist ein Softwareprogramm. Liefert eine abstrakte Schnittstelle zum Rechner Verwaltet Systemressourcen Verschiedene Arten von Betriebssystemen aufgrund
verschiedener Anforderungen in unterschiedlichen Anwendungsgebieten
Moderne Betriebssysteme sind in der Regel Timesharing-Systeme mit vielen zusätzlichen Eigenschaften.