Überblick über betriebssysteme kapitel 2. betriebssysteme ist ein programm, das die ausführung...
TRANSCRIPT
Ü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
HauptzielMaximierung 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-Spracheumgebung
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 Schreibenund Anzeigegeräte
9 Dateisystem Dateien Erstellen, Löschen, ÖffnenSchließen, Lesen, Schreiben
8 Kommunikation Kanäle (Pipes) Erstellen, Löschen, ÖffnenSchließen, Lesen, Schreiben
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
3 Prozeduren Prozeduren, Aufruf-, Stapelmarkierung, Aufruf,
stapel, Anzeige Rücksprung
2 Befehlssatz Auswertungsstapel, Laden, Speichern, Microprogrammüber-, Addieren,
Subtrahieren, setzer, Skalar- und VerzweigenFelddaten
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