Title:
1Überblick über Betriebssysteme
2Betriebssysteme
- Ist ein Programm, das die Ausführung von
Anwendungsprogrammen steuert - Dient als Schnittstelle zwischen den Anwendungen
und der Computerhardware.
3Zielen 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.
4Schichten und Ansichten eines Computersystems
5Dienste die ein Betriebssystem anbietet.
- Programmentwicklung
- Editoren und Debugger
- Programmausführung
- Zugriff auf E/A-Geräte
- Kontrollierter Zugriff auf Dateien
- Systemzugriff
6Dienste 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.
7Dienste 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.
8Betriebssystem
- 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.
9(No Transcript)
10Kernel
- Teil des Betriebssystem welcher sich im
Hauptspeicher befindet. - Umfasst die am häufigsten verwendeten Funktionen
- auch bezeichnet als Betriebssystemkern
11Fähigkeit zur Weiterentwicklung
- Hardwareupgrades und neue Hardwaretypen
- Neue Dienste
- Reparaturen (fixes)
12Entwicklungsgeschichte 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.
13Entwicklungsgeschichte 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
14Jobsteuersprache 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
15Hardwaremerkmale
- 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.
16Einprogrammbetrieb
- Prozessor muss mit der Ausführung warten auf den
E/A-Befehlsablauf.
17Mehrprogrammbetrieb
- Während ein Job auf die E/A wartet, kann der
Prozessor zu dem anderen Job umschalten
18Mehrprogrammbetrieb
19(No Transcript)
20Beispiel
JOB1 JOB2 JOB3 Art des Jobs umfangreiche umfangre
iche 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 Drucke
r? No No Yes
21Auswirkung 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.
22Timesharing
- 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.
23Stapelmehrprogrammbetrieb 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
24(No Transcript)
25Wichtige Errungenschaften
- Prozesse
- Speicherverwaltung
- Informationsschutz und Sicherheit
- Ablaufplanung und Ressourcen-verwaltung
- Systemstruktur
26Prozesse
- 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
27Hauptursachen 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)
28Prozess
- 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
29Prozess
30Speicherverwaltung
- Prozessisolierung
- Automatische Zuordnung und Verwaltung
- Unterstützung der modularen Programmierung
- Schutz und Zugriffskontrolle
- Langzeitspeicher
31Virtueller 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
32Paging
- 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
33(No Transcript)
34Adressierung beim virtuellen Speicher
35Ablaufplanung 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
36Hauptelementen eines Betriebssystems
37Systemstruktur
- 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
38Hierarchie eines Betriebssystems
Ebene Name Objekte Beispieloperationen 13 Shell Be
nutzerprogrammier- Aussagen in Shell-Sprache umg
ebung 12 Benutzerprozesse Benutzerprozesse Beenden
, Löschen,
Unterbrechen, Wiederaufnehmen 11 Verz
eichnisse 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 Schließen,
Lesen, Schreiben
39Hierarchie eines Betriebssystems
Ebene Name Objekte Beispieloperationen 7 Virtuelle
r 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 Signalisi
eren
40Hierarchie 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
41Merkmale moderner Betriebsysteme
- Mikrokernel-Architektur
- Hierbei werden dem Kernel nur einige wesentliche
Elemente zugeordnet - Unterstützung von Adressräumen
- Interprozesskommunikation (IPC)
- Grundlegendes Scheduling
42Merkmale 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
43Merkmale 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
44Merkmale moderner Betriebsysteme
- Verteilte Betriebssysteme
- Schafft die Illusion eines einzigen
Hauptspeicherraums und eines einzigen
Sekundärspeicherraums - wie z.B. ein System für verteilte Dateien
45Merkmale 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
46Windows 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
47Windows 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
48Betriebssystemaufbau
- 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
49(No Transcript)
50Client/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
51Threads 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
52UNIX
- 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
53UNIX
54Modern UNIX Systeme
- System V Release 4 (SVR4)
- Solaris 2.x
- HPux
- 4.4BSD
- Linux
55Unix-Geschichte