Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Kapitel 6 Betriebssysteme - Einführung

Ähnliche Präsentationen


Präsentation zum Thema: "Kapitel 6 Betriebssysteme - Einführung"—  Präsentation transkript:

1 Kapitel 6 Betriebssysteme - Einführung

2 Überblick Betriebssysteme
6 Einführung 6.1 Aufgabe von Betriebssystemen 6.2 Verschiedene Komponenten / Konzepte von Betriebssystemen 6.3 Unterschiedliche Arten von Betriebssystemen 6.4 Anforderungen 6.5 Daraus abgeleitete Probleme, Teilaufgaben, Konzepte, Verfahren 6.6 Zusammenfassung 6.7 Historische Entwicklung 7 Prozesse, Fäden (threads), Scheduling 8. Speicherverwaltung 9. Dateisysteme 10. Ein- und Ausgabe Nebenläufigkeit und wechselseitiger Ausschluss – Inhalt der Vorlesung „Nebenläufige Programmierung“ Deadlocks - dito Kap. 6

3 Abstraktionsniveaus für Programmierer
Anwender Anwendungs-programmierer Anwendungsprogramme Betriebssystem-programmierer Bibliotheksfunktionen, Dienstprogramme Betriebssystem - Abstraktion der Architektur Befehlssatzarchitektur - Instruction Set Architecture (ISA) Kap. 6

4 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. 6

5 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. 6

6 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. Beispiel: Ist Internet Explorer Bestandteil des Betriebssystems oder nicht? Kap. 6

7 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. 6

8 6.4 Anforderungen an Betriebssysteme
Kap. 6

9 Anforderungen an und Charakteristik von PC/Workstation-Betriebssystemen
Kap. 6

10 Anforderungen an und Charakteristik von Echtzeit-Betriebssystemen
Kap. 6

11 Anforderungen an und Charakteristik von File-Server-Betriebssystemen
Kap. 6

12 Anforderungen an und Charakteristik von Compute-Server-Betriebssystemen
Kap. 6

13 Anforderungen an und Charakteristik von Transaktions-Betriebssystemen
Kap. 6

14 Kap. 6

15 Betriebssystem verwaltet Berechnungen
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. 6

16 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. 6

17 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. 6

18 6.6 Zusammenfassung: Aufgabe von Betriebssystemen
Ein Betriebssystem ist ein Programm (Software) mit den grundsätzlichen Funktionen: Virtualisierung von Systemressourcen, dazu Verwaltung von Systemressourcen, Bereitstellen einer „erweiterten Maschine“ für den Anwendungsprogrammierer, Anbieten von Schutzmechanismen. Kap. 6

19 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. 6

20 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. 6

21 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. 6

22 Ressourcenverwaltung in zwei Dimensionen:
Zeit: Verschiedene Benutzer erhalten Betriebsmittel nacheinander Raum: Verschiedene Benutzer erhalten verschiedene Teile einer Ressource. Achtung: Manche Ressourcen sind unteilbar! Kap. 6

23 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. 6

24 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. 6

25 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. 6

26 6.7 Historische Entwicklung von Betriebssystemen
bis 1955 Rechnen auf „nackter“ Hardware Stapelverarbeitung, Serielle Abarbeitung der Jobs gesteuert durch kleines Softwareprogramm, genannt Monitor, IBM 1955 1966/67, IBM OS/360 Mehrprogrammfähige Stapelverarbeitungssysteme, überlappende Ausführung mehrerer Progamme zur Überbrückung von Ein-/Ausgabewartezeiten, mehrere Speicherpartitionen. 1962 CTSS, Multics, UNIX Time-Sharing Systeme (Zeitaufteilungsverfahren), interaktives Arbeiten mehrerer Benutzer mit Online-Zugang 1974 CPM, 1980 MS-DOS Mikrocomputer-Betriebssysteme 1974 XEROX, 1983 Apple 1985 MS-Windows Systeme mit graphischen Benutzeroberflächen, Fenster, Maus, … Kap. 6

27 6.7 Historische Entwicklung von Betriebssystemen (1)
Verschiedene Entwicklungsstadien: Serielle Systeme Einfache Stapelverarbeitungssysteme Mehrprogrammfähige Stapelverarbeitungssysteme Timesharing-Systeme (Systeme mit Graphischen Benutzeroberflächen) Netzwerkbetriebssysteme Verteilte Betriebssysteme Kap. 6

28 6.7.: Historische Entwicklung von Betriebssystemen (2)
Serielle Systeme ( ) Betrieb von Rechnern ohne Betriebssystem Programmierung von Rechnern durch Einschieben von Steckkarten Später: Einlesen von Lochkarten Zuteilung von Rechenzeit durch Reservierung mit Hilfe Papieraushang Kap. 6

29 6.7 Historische Entwicklung von Betriebssystemen (3)
Einfache Stapelverarbeitungssysteme, 1955 für IBM Unterscheidung Programmentwickler Operateure, die Rechner („Mainframes“) betrieben Sammlung von Programmen (Jobs) auf Lochkarten Einlesen der gesammelten Jobs durch kleine Rechner (z.B. IBM 1401), Speichern auf Band Abarbeitung des Bandes durch Hauptrechner (z.B. IBM 7094): Lese ersten Job ein Führe ersten Job aus Ausgaben auf zweites Band Dann weiter mit zweitem Job etc. Serielle Abarbeitung der Jobs gesteuert durch kleines Softwareprogramm, genannt Monitor. Ausgabe der Ergebnisse auf Band durch kleinen Rechner (z.B. IBM 1401) Fortschritt: Eingabe von Lochkarte, Rechnen, Ausgabe auf Drucker parallel. Kap. 6

30 6.7 Historische Entwicklung von Betriebssystemen (5)
Mehrprogrammfähige Stapelverarbeitungssysteme, ab 1965 Verarbeitung durch einzigen Rechner (IBM Nachfolger) Spooling (Simultaneous Peripheral Operation On Line): Einlesen von Jobs auf Lochkarten, Speichern auf Platte Nach Beenden des aktuellen Jobs: Laden eines neuen Jobs von Platte + Ausführung Mehrprogrammfähigkeit bzw. Multiprogramming Kap. 6

31 6.7 Historische Entwicklung von Betriebssystemen (6)
Mehrprogrammfähigkeit bzw. Multiprogramming Beobachtung: Viel Rechenzeit wird verschwendet durch Warten der CPU auf Beendigung von Ein- / Ausgabeoperationen. Bis zu 90% der Zeit verschwendet bei Hochleistungs-Datenverarbeitung. Idee: Führe aus Effizienzgründen Jobs nicht streng sequentiell aus. Aufteilung des Speichers in mehrere Bereiche Eigene Partition pro aktiven Job Wartezeiten auf Beendigung von Ein- / Ausgabeoperationen genutzt durch Rechenzeit für andere Jobs. Job 3 Job 2 Speicher-partitionen Job 1 Betriebs-system Kap. 6

32 6.7 Historische Entwicklung von Betriebssystemen (7)
Timesharing-Systeme Nachteil mehrprogrammfähiger Stapelverarbeitungssysteme: kein interaktives Arbeiten mehrerer Benutzer möglich Abhilfe durch Timesharing-Systeme: Variante des Multiprogrammings Online-Zugang zum System für alle Benutzer Mehrprogrammbetrieb mit schnellem Umschalten von Benutzer zu Benutzer. Idee: Interaktives Arbeiten eines Benutzers erfordert nicht die komplette Rechenzeit eines Rechners Bei schnellem Umschalten bemerkt der Einzelnutzer nicht, dass er die Maschine nicht für sich allein hat. Kap. 6

33 6.7 Historische Entwicklung von Betriebssystemen (8)
Vergleich Mehrprogrammfähige Stapelverarbeitungssysteme versus Timesharing-Systeme: Stapelverabeitung Maximale Prozessornutzung (Betreiberwunsch) Job Control Language Timesharing Minimale Antwortzeit (Benutzerwunsch) Interaktive Kommandos Kap. 6

34 6.7 Historische Entwicklung von Betriebssystemen (9)
Systeme mit Graphischen Benutzeroberflächen GUI (Graphical User Interface) Geht zurück auf D. Engelbart, Stanford Research Institute, 60er Jahre Elemente: Fenster, Icons, Menüs, Maus Übernommen durch Apple Macintosh Später durch Microsoft Windows : Graphische Umgebung, aufsetzend auf MS-DOS Windows95, …, WindowsXP Betriebssystem und GUI stark miteinander verschränkt. UNIX / LINUX: GUI als Aufsatz auf Betriebssystem X-Windows-System (M.I.T.): Grundlegende Funktionen zur Fensterverwaltung Komplette GUI-Umgebungen basierend auf X-Windows: z.B. Motif Kap. 6

35 6.7 Historische Entwicklung von Betriebssystemen (10)
Netzwerkbetriebssysteme und verteilte Betriebssysteme Netzwerkbetriebssysteme: Benutzer kennt mehrere vernetzte Rechner Einloggen auf entfernten Rechnern möglich Datenaustausch möglich Auf Einzelrechnern: Lokales Betriebssystem, lokale Benutzer Netzwerkbetriebssystem = „normales Betriebssystem mit zusätzlichen Fähigkeiten“ Verteilte Betriebssysteme: Mehrere vernetzte Rechner Erscheinen Benutzern wie Einplatzsystem Datenspeicherung und Programmausführung verteilt auf mehreren Rechnern Verwaltung transparent und effizient (?) durch Betriebssystem Probleme: Nachrichtenverzögerungen, Datenkonsistenz Kap. 6

36 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. Kap. 6


Herunterladen ppt "Kapitel 6 Betriebssysteme - Einführung"

Ähnliche Präsentationen


Google-Anzeigen