Überblick über Betriebssysteme Kapitel 2. Betriebssysteme Ist ein Programm, das die Ausführung...

Preview:

Citation preview

Ü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

Recommended