Überblick über Betriebssysteme Kapitel 2
Betriebssysteme Ist ein Programm, das die Ausführung von Anwendungsprogrammen steuert Dient als Schnittstelle zwischen den Anwendungen und der Computerhardware.
Zielen von Betriebssysteme Bequemlichkeit Ein Computer kann bequemer benutzt werden. Effizienz Computersystemressourcen können effizient genutzt werden. Fähigkeit zur Weiterentwicklung Ermöglicht die effektive Entwicklung, das Testen und die Einführung neuer Systemfunktionen, ohne das dies den Betrieb negativ beeinflusst.
Schichten und Ansichten eines Computersystems
Dienste die ein Betriebssystem anbietet. Programmentwicklung Editoren und Debugger Programmausführung Zugriff auf E/A-Geräte Kontrollierter Zugriff auf Dateien Systemzugriff
Dienste die ein Betriebssystem anbietet Fehlererkennung und Reaktion auf Fehler Interne und externe Hardwarefehler Speicherfehler Ausfall von Geräte Softwarefehler arithmetischer Überlauf Zugriff auf geschützte Speicherzellen Betriebssystem kann einer Anforderung einer Anwendung nicht nachkommen.
Dienste die ein Betriebssystem anbietet Buchführung stellt Nutzungsstatistiken auf Leistungen überwachen Nützlich, um die Notwendigkeit zukünftiger Erweiterungen abschätzen zu können. Kann zu Abrechnungszwecken verwendet werden.
Betriebssystem Funktioniert auf die gleiche Art und Weise wie normale Computersoftware es ist ein Programm das durch den Prozessor ausgeführt wird. Das Betriebssystem gibt die Kontrolle häufig ab und ist darauf angewiesen dass der Prozessor es ihm ermöglicht die Kontrolle zurück zu erlangen.
Kernel Teil des Betriebssystem welcher sich im Hauptspeicher befindet. Umfasst die am häufigsten verwendeten Funktionen auch bezeichnet als Betriebssystemkern
Fähigkeit zur Weiterentwicklung Hardwareupgrades und neue Hardwaretypen Neue Dienste Reparaturen (fixes)
Entwicklungsgeschichte der Betriebssysteme Serielle Verarbeitung Kein Betriebssystem (50er Jahren) Rechner wurden von einer Konsole aus gestartet, die Kontrollleuchten, Kippschalter, Eingabegeräte (Lochkartenleser) und Drucker umfasste. Reservierungsterminkalender auf Papier Für einen einzelnen Programmlauf, konnte es notwendig sein, einen Compiler, Quellprogramm, zu laden. Das kompilierte Programm zu sichern, usw.
Entwicklungsgeschichte der Betriebssysteme Einfache Stapelbetriebssysteme Monitor Benutzer hat keinen direkter Zugriff auf den Rechner Der Monitor steuert die Sequence der Ereignisse Jobs werden vom Operator aufeinander gestapelt Nach Programmbeendigung wird zum Monitor zurück verzweigt Ein Teil, der Residenter Monitor, befindet sich stets im Hauptspeicher
Jobsteuersprache Job Control Language (JCL) Eine spezielle Art von Programmier-sprache. Stellt dem Monitor Befehle zur Verfügung der Compiler der geladen werden soll Die Daten die vom Programm verwendet werden sollen
Hardwaremerkmale Speicherschutz Ein Benutzerprogramm darf den Speicherbereich, der den Monitor enthält, nicht verändern. Timer: Der wird verwendet um einzelne Jobs daran zu hindern, das System für sich alleine auf Dauer in Beschlag zu nehmen.
Einprogrammbetrieb Prozessor muss mit der Ausführung warten auf den E/A-Befehlsablauf.
Mehrprogrammbetrieb Während ein Job auf die E/A wartet, kann der Prozessor zu dem anderen Job umschalten
Mehrprogrammbetrieb
Beispiel JOB1 JOB2 JOB3 Art des Jobs umfangreiche umfangreiche umfangreiche Berechnungen E/A E/A Dauer 5 min. 15 min. 10 min. Speicherbedarf 50K 100 K 80 K Festplatte? No No Yes Terminal? No Yes No Drucker? No No Yes
Auswirkung des Mehrprogramm-betriebs auf die Ressourcennutzung Uniprogramming Multiprogramming Prozessornutzung 22% 43% Speichernutzung 30% 67% Festplattennutzung 33% 67% Druckernutzung 33% 67% Zeitaufwand 30 min. 15 min. Durchsatzrate 6 jobs/hr 12 jobs/hr Mittlere Antwortzeit 18 min. 10 min.
Timesharing Mehrprogrammbetrieb für die Abarbeitung mehrere interaktive Jobs. Die Zeit des Prozessors wird auf mehrere Benutzer verteilt. Mehrere Benutzer greifen gleichzeitig über Terminals auf das System zu.
Stapelmehrprogrammbetrieb im Vergleich mit Timesharing Stapelmehrprogramm-betreib Time Sharing Hauptziel Maximierung der Prozessorausnutzung Minimierung der Antwortzeit Anweisungsquelle für das Betriebssystem Befehle in Jobsteuerungs-sprache, die mit dem Job bereitgestellt werden Befehle, die am Terminal eingegeben werden
Wichtige Errungenschaften Prozesse Speicherverwaltung Informationsschutz und Sicherheit Ablaufplanung und Ressourcen-verwaltung Systemstruktur
Prozesse Ein Programm in der Ausführung Eine Instanzierung eines Programms, welches auf einem Prozessor ausgeführt werden kann Die Einheit, die einem Prozessor zugeteilt und auf einem Prozessor ausgeführt werden kann Eine Aktivitätseinheit, die durch einen einzigen sequentiellen Ausführungs-Thread, einen aktuellen Status und einen zugehörigen Satz Systemressourcen gekennzeichnet wird
Hauptursachen für Programmierfehler in der Entwicklung der Systemsoftware Falsche Synchronisation Das Betriebssystem muss gewährleisten dass ein Prozess, das auf ein E/A-Gerät wartet auch das Signal empfangen wird. Fehlgeschlagener gegenseitiger Ausschluss Nichtdeterministischer Programmbetrieb Ergebnisse sollten nur von der Eingabe und nicht von den Aktivitäten andere Programme abhängen Verklemmungen (Deadlocks)
Prozess Besteht aus drei Komponenten Ein ausführbares Programm Die zugehörige Daten, die das Programm benötigt Den Ausführungskontext des Programms Alle Informationen, die das Betriebssystem braucht, um den Prozess zu verwalten
Prozess
Speicherverwaltung Prozessisolierung Automatische Zuordnung und Verwaltung Unterstützung der modularen Programmierung Schutz und Zugriffskontrolle Langzeitspeicher
Virtueller Speicher Es ermöglicht den Programmen, den Speicher von einem logischen Standpunkt aus anzusprechen Bei der Ausführung aufeinander folgender Prozesse kommt es zu keiner Unterbrechung, wenn ein Prozess auf den Sekundärspeicher ausgelagert und der nachfolgende Prozess eingelesen wird
Paging Paging ermöglicht es, Prozesse aus einer Anzahl von Blöcken mit fester Grösse, genannt Seiten, zu bilden Eine virtuelle Adresse besteht aus einer Seitenzahl und einem Offset innerhalb der Seite Die einzelnen Seiten können im Hauptspeicher beliebig angeordnet sein Das Paging-System sorgt für eine dynamische Abbildung der virtuellen oder logische Adressen und der realen Adressen, oder physikalische Adressen
Adressierung beim virtuellen Speicher
Ablaufplanung und Ressourcenverwaltung Fairness allen Prozessen ungefähr den gleichen und fairen Zugriff geben Differenzierte Ansprechempfindlichkeit muss zwischen unterschiedlichen Jobklassen unterscheiden Effizienz den Durchsatz maximieren, die Antwortzeit minimieren, so viele Benutzer wie möglich bedienen
Hauptelementen eines Betriebssystems
Systemstruktur Wir können das Betriebssystem als eine Reihe von Ebenen betrachten Jede Ebene führt einen zugeordneten Teil an Funktionen aus Die einzelnen Ebenen verlassen sich für die Durchführung einfacher Funktionen auf die nächst tiefere Ebene Ein Problem wird so in eine Reihe von leichter zu handhabenden Teilproblemen aufgespaltet
Hierarchie eines Betriebssystems Ebene Name Objekte Beispieloperationen 13 Shell Benutzerprogrammier- Aussagen in Shell-Sprache umgebung 12 Benutzerprozesse Benutzerprozesse Beenden, Löschen, Unterbrechen, Wiederaufnehmen 11 Verzeichnisse Verzeichnisse Erstellen, Löschen, Anhängen, Ablösen, Suchen, Auflisten 10 Geräte Externe Geräte, wie Öffnen, Schließen, Lesen, Drucker, Tastaturen Schreiben und Anzeigegeräte 9 Dateisystem Dateien Erstellen, Löschen, Öffnen Schließen, Lesen, Schreiben 8 Kommunikation Kanäle (Pipes) Erstellen, Löschen, Öffnen
Hierarchie eines Betriebssystems Ebene Name Objekte Beispieloperationen 7 Virtueller Speicher Segmente, Seiten Lesen, Schreiben, Aufrufen 6 Lokaler Sekundär- Datenblöcken, Geräte- Lesen, Schreiben, Zuweisen, Speicher kanäle Freigeben 5 Einfache Prozesse Einfach Prozesse, Unterbrechen, Wiederauf- Semaphore, Bereit- nehmen, Warten, schaftslisten Signalisieren
Hierarchie eines Betriebssystems Ebene Name Objekte Beispieloperationen 4 Interrupts Interrupt-Steuer- Aufrufen, Verdecken, Auf- programme decken, erneuter Versuch Prozeduren Prozeduren, Aufruf-, Stapelmarkierung, Aufruf, stapel, Anzeige Rücksprung 2 Befehlssatz Auswertungsstapel, Laden, Speichern, Microprogrammüber-, Addieren, Subtrahieren, setzer, Skalar- und Verzweigen Felddaten 1 Elektronische Register, Gatter, Busse, Löschen, Übertragen, Schaltungen usw Aktivieren, Vervollständigen
Merkmale moderner Betriebsysteme Mikrokernel-Architektur Hierbei werden dem Kernel nur einige wesentliche Elemente zugeordnet Unterstützung von Adressräumen Interprozesskommunikation (IPC) Grundlegendes Scheduling
Merkmale moderner Betriebsysteme Multithreading ein Prozess wird in mehrere Threads aufgeteilt die nebenläufig ausgeführt werden können Thread Eine Arbeitseinheit, die sich per Dispatcher zuordnen lässt wird sequentiell ausgeführt und kann unterbrochen werden Prozess: Ein oder mehrere Threads mit dazugehörenden Systemressourcen
Merkmale moderner Betriebsysteme Symmetrischer Mehrprozessorbetrieb es sind mehrere Prozessoren vorhanden Diese Prozessoren teilen sich denselben Hauptspeicher, dieselben E/A-Geräte und sind durch einen Kommunikationsbus miteinander verbunden Alle Prozessoren können dieselben Funktionen ausführen
Merkmale moderner Betriebsysteme Verteilte Betriebssysteme Schafft die Illusion eines einzigen Hauptspeicherraums und eines einzigen Sekundärspeicherraums wie z.B. ein System für verteilte Dateien
Merkmale moderner Betriebsysteme Objektorientierter Aufbau Ermöglicht das disziplinierte Hinzufügen von modularen Erweiterungen zu einem kleinen Kernel Ermöglicht den Programmierern, ein Betriebssystem ohne Zerschlagung der Systemintegrität nach Maß zuzuschneidern
Windows 2000 Nutzt die Verarbeitungsfähigkeiten heutiger 32-Bit-Mikroprozessoren aus Es handelt sich um ein Multitasking-Betriebssystem, obwohl es nach wie vor für die Unterstützung eines einzelne interaktiven Benutzers gedacht ist. Client/Server System
Windows 2000 Architektur Modularer Aufbau verleiht ein hohes Maß an Flexibilität Läuft auf einer Vielzahl von Hardwareplattformen (??) Unterstützt Anwendungen, die für eine Vielzahl anderer Betriebssysteme geschrieben wurden
Betriebssystemaufbau Modifizierte Mikrokernel-Architektur Nicht ein reiner Mikrokernel (denn) Viele Systemfunktionen laufen außerhalb des Mikrokernels im Kernel-Modus Jedes Modul kann entfernt, aufgerüstet oder ausgetauscht werden, ohne dass das gesamte System neu geschrieben werden muss
Client/Server-Modell Vereinfacht die Executive es ist möglich eine Vielzahl von APIs zu konstruieren Verbessert die Zuverlässigkeit Jedes Executive-Service-Modul läuft geschützt mit einer eigenen Speicherpartition Clients können nicht direkt auf die Hardware zugreifen Bietet eine passende Grundlage für die verteilte Verarbeitung in Computernetzen
Threads and SMP Unterschiedliche Routinen können simultan auf unterschiedlichen Prozessoren laufen Mehrere Threads desselben Prozesses können gleichzeitig auf verschiedenen Prozessoren ausgeführt werden Server-Prozesse können mehrere Threads einsetzen Gemeinsame Nutzung von Daten und Ressourcen durch Prozesse
UNIX Die zugrunde liegende Hardware ist von der Betriebssystemsoftware umgeben Das Betriebssystem wird als System-Kernel bezeichnet Unix ist zusätzlich mit einer Reihe von Benutzerdiensten und Schnittstellen ausgestattet, die auch als Teil des Systems angesehen werden shell C compiler
UNIX
Modern UNIX Systeme System V Release 4 (SVR4) Solaris 2.x HPux 4.4BSD Linux
Unix-Geschichte