IV.3 Betriebssysteme
IV.3 Betriebssysteme
IV.3 Betriebssysteme
IV.3.1 Aufgaben eines Betriebssystems
z Starten und Beenden des Betriebs des Rechners.
z Programme laden und beenden
.
z Verwaltung des Arbeitsspeichers bei Nutzung durch mehrere Programme.
z Zuteilung des Prozessors an laufende Programme.
z Bereitstellung der Programme (Dienste) zum Transport von Daten zwischen dem Speicher und Ein/Ausgabegeräten.
z Verwaltung des externen Speichers (Festplatten) z Überwachung von Berechtigungen
& Vestecken der Komplexität und genauen Eigenschaften der
Hardware vor den Anwendungen (Bereitstellen einer Anwendersicht) durch Bereitstellen von Diensten.
& Betriebsmittelverwaltung (Betriebsmittel = Speicher, Platte, Drucker,
Netzwerk, Anzeige, Sound …)
Betriebssystem versus Benutzeroberfläche
Meist werden Benutzeroberflächen mit dem Betriebssystem
identifiziert, weil es durch sie für den Benutzer in Erscheinung tritt.
Das Betriebssystem
z stellt elementare Dienste zur Programmierung bereit z bietet eine abstrakte Schnittstelle zur Hardware.
z Verwaltet Betriebsmittel
Die Graphische Benutzeroberfläche
z Stellt eine komfortable Schnittstelle zu den
Anwendungsprogrammen und Systemdiensten bereit
z Setzt Dienste bildlich um (z.B. Mülleimer, Verschieben von Dateien) z Desktop Metapher (Nachbildung eines Schreibtisches)
IV.3.2 Prozessorverwaltung und Zuteilung
Prozesse (
Prozesse (TasksTasks)) sind Programme, die als Rechenlast vom Betriebssystem verwaltet werden. Wenn man als Benutzer ein Programm startet, so erzeugt man (mindestens einen) neuen Prozess.
Eigenschaften von Prozessen:
Prozesse stehen für „in Ausführung befindliche Programme“
Sie haben einen Zustand, und werden durch einen Kontext beschrieben. (Prozesskontrollblock)
Sie arbeiten auf einem eigenen Teil des Speichers, auf den kein anderer Prozess (ausser das Betriebssystem) zugreifen kann. Oft sehen sie den ganzen Adreßraum als virtuellen Speicher (s. IV.3.3) Sie kommunizieren mit anderen Prozessen durch Nachrichten
(überbracht durch das Betriebssystem)
Sie können unterschiedliche Prioritäten und Berechtigungen haben.
Viele Systemdienste sind selbst laufende Prozesse
Prozesse -- ff
Prozesse werden in folgenden Zuständen verwaltet.
Prozesskontrollblock:
Zustandsübergänge
running
ready suspended
create
plan
exit
interrupt
suspend
resume Startadresse
ProzessID
Zustand + Kontrollinfos
Kontext
Der Systemkern realisiert die entsprechenden Zustandsübergänge.
Zu den Zuständen “ready” und “suspended” verwaltet der Kern eine oder mehrere Warteschlangen, je nach bereitgestellten
Mechanismen zu Ablaufplanung und Synchronisation.
Prozessverwaltung
Zu den Aktionen:
create: Erzeugt einen Prozess und reiht ihn in die entsprechende ready queue ein. Häufig hat man eine feste Prioritätshierarchie (0-32) und zu jedem
Prioritätswert eine Warteschlange.
exit: Systemaufruf zum Beenden. Der Prozess wird aus der Prozessverwaltung entfernt.
interrupt: Unterbrechung des Prozesses
asynchron: von aussen eingehende, nicht maskierte Unterbrechung synchron: vom Prozess per Befehl ausgelöst (Trap)
suspend: ein laufender Prozess wird wegen Unterbrechung suspendiert, oder suspendiert sich per Systemaufruf selbst (Warten auf ein Ereignis,
Ein/Ausgabe …). Er wird in die Warteschlange eingereiht, die alle suspendierten Prozesse hält.
resume: Bei Eintreten eines Ereignisses, das eine Suspendierungsursache
aufhebt oder ändert werden suspendierte Prozesse geprüft, und ggf. wieder der ready Warteschlange zugeführt.
IV.3.3 Speicherverwaltung
z Adressraum von heutigen Rechnern ist sehr groß ! z Bei Busbreite n sind 2n Speicherzellen adressierbar ! z ... soviel Hauptspeicher kann man nicht bereitstellen !
13⋅1012 € 1,8⋅1019
64
3.250 € 4,3⋅109
32
-- 65536
16
Kosten bei 25 € / 32 MByte
adressierbare Speicherzellen Busbreite
Benutze Festplatte als virtueller Speicher
zz BenutzersichtBenutzersicht
~ Programm und alle Daten befinden sich im Hauptspeicher, sofern der Adressraum nicht ausgeschöpft ist.
zz Die WirklichkeitDie Wirklichkeit
~ multi-user System, d.h. nicht jedem Benutzer kann der ganze Hauptspeicher zur Verfügung stehen.
~ Programme werden nicht für einen spezifischen 32-Bit Rechner mit maximaler Hauptspeichergrösse geschrieben. Sie sollen auch auf 32-Bit Rechner mit kleinerem Hauptspeicher lauffähig sein.
zz AuswegAusweg
~ Benutze die Festplatte, um die "Hauptspeicherdaten" eines Prozesses zu speichern, die aufgrund von Kapazitätsgründen nicht im vorhandenen Hauptspeicher liegen können.
Verwaltung des virtuellen Adressraumes
z Jedem Prozess steht ein virtueller Adressraum zur Verfügung z Diese virtuellen Adressräume werden von dem Betriebssystem
verwaltet. Fragen:
~ Welche Daten bzw. Programmteile werden im Hauptspeicher gehalten ?
~ Welche Daten werden ausgelagert, wenn neue Daten benötigt werden ?
z In diesem Zusammenhang werden die Konzepte
~~ PagingPaging
~~ SegmentierungSegmentierung angewandt.
Paging
Grundidee Grundidee
z Der virtuelle Speicher wird auf dem Sekundärspeicher abgelegt z ... und in SeitenSeiten (pages)pages fester Grösse unterteilt.
z Der Hauptspeicher besteht aus SeitenrahmenSeitenrahmen (page framespage frames), die jeweils eine Seite aufnehmen können
z Eine SeitentabelleSeitentabelle (page tablepage table) gibt an, welche Seitenrahmen durch welche Seiten belegt sind.
Paging ff
virtueller Adressraum
Hauptspeicher
valid bit Seitenadresse
pagetable
Haupt- speicher
HDD
1 1 0
0 Disk - Adressen
Speicheradressen
Seitentabelle (liegt im Hauptspeicher)
Zahlenbeispiele:
Zahlenbeispiele:
Bei einem virtuellen Adressraum vom 28 Bit (256MB) hätten wir bei
Pagegröße 2 KB -> 11 Bit offset und 17 Bit Pageadresse, ergibt 17 bit Adressraum zu 3 Byte = 384KB Pagetable
Pagegröße 16 KB -> 14 b offset und 14 Bit Pageadresse, ergibt 14 bit Adressraum zu 2 Byte = 32KB Pagetable
Paging: Zugriff auf Datenseite i
Überprüfe, ob die Datenseite i im Hauptspeicher liegt;
if Seitenfehler
then Überprüfe, ob ein Seitenrahmen im Hauptspeicher leer ist;
if kein Seitenrahmen leer
then Verdränge eine Seite aus dem Hauptspeicher und aktualisiere die Seitentabelle;
fi;
Schreibe die Datenseite i in einen freien Seitenrahmen;
Aktualisiere die Seitentabelle;
fi;
Greife auf Seite i im Hauptspeicher zu;
Verdrängungsstrategien
zz LFU-LFU-StrategieStrategie (Least Least Frequently Used)Frequently Used
Verdränge die Seite aus dem Hauptspeicher, auf die seit ihrer Einlagerungszeit am seltensten zugegriffen wurde
zz LRU-LRU-StrategieStrategie (Least Least Recently UsedRecently Used)
Verdränge die Seite, auf die am längsten nicht zugegriffen wurde.
zz FIFO-FIFO-StrategieStrategie (First In, FirstFirst In, First Out)Out
Verdränge die Seite, die am längsten im Hauptspeicher liegt
Kleiner Verwaltungsaufwand, da nur bei einem Seitenfehler etwas getan werden muss.
Segmentierung
Unterteilung des virtuellen Speichers in Segmente unterschiedlicher Grössen
z Zum Beispiel ein Segment für
~ den Programmcode
~ den Stack
~ die statischen Variablen
~ ....
z Falls ein angefordertes Segment nicht im Hauptspeicher ist:
segment
segment faultfault
z Das Betriebssystem kann dafür Sorge tragen, dass bestimmte Segmente dauernd im Hauptspeicher liegen und nicht verdrängt werden können.
Fragmentierung
Beim reinen Paging hat man das Problem, dass man stets eine
komplette Seite benutzen muss, auch wenn man nur ein Byte weiteren Speicher braucht.
Es gibt unausgelastete Seiten (innere Fragmentierung)
Segmentierung ist in dieser Hinsicht flexibler, vertagt aber das Problem auf die Festplatte. Wird ein Segment angefordert, muss dazu ein Stück auf der Festplatte benutzt werden, in das das Segment passt. Bei der Freigabe des Segments entstehen dann Lücken, die erst dann wieder gefüllt werden können, wenn ein Segment kleinerer oder gleicher
Grösse angefordert wird (äussere Fragmentierung).
IV.3.4 Verwaltung des Hintergrundspeichers
Beispiel: MSDOS
Die Festplatte ist nach dem Formatieren logisch unterteilt in z den SystembereichSystembereich bestehend aus
~ dem UrladerbereichUrladerbereich (BootBoot block): Spur 0, Seite 0, Sektor 1block
~ der DateizuordnungstabelleDateizuordnungstabelle (File allocation blockFile allocation block): Adresse (Spur, Seite, Sektor) = (0,0,2) bis (0,0,4)
~ dem DateiverzeichnisDateiverzeichnis (directory): Adresse (0,0,5...9) und directory (0,1,1...2)
z den DatenbereichDatenbereich: ab Adresse (0,1,3)
(Spur 0 ist die äussere Spur einer Festplatte)
Der Urladerbereich besteht aus einem kurzen Programm (Länge kleiner als 512 byte), das nach dem Einschalten des Rechners vom BIOS
(Basic I/O System) geholt wird, und dann den Prozess zum Laden des Betriebssystems in den Arbeitsspeicher aktiviert.
Dateizuordnungstabelle bei MS-DOS
Dateien werden in untereinander verketteten Sektoren gespeichert.
Î zu jedem Sektor muß demnach
~ Zylindernummer
~ Seitennummer (d.h. welche Stapeloberfläche)
~ Sektornummer
des nächsten zu dieser Datei gehörigen Sektors aufbewahrt werden.
z In der FAT (FFile AAllocation Table)T gibt es für jeden Sektor einen Eintrag, der anzeigt, ob
~ der Sektor frei, belegt oder schadhaft ist,
~ in einem belegten Sektor die Adresse des nächsten Sektors der Datei enthält, oder die Information, dass die Datei keinen
weiteren Sektor mehr belegt.
Dateizuordnungstabelle
Man erkennt, dass die FAT sehr groß werden kann, wenn man viele Sektoren hat. Sie muss vom Betriebssystem in den Hauptspeicher geladen werden und kann mehrere Mb gross werden. Wird ein Rechner einfach ausgeschaltet, kann sie inkonsistent sein.
Andererseits möchte man möglichst kleine Sektoren haben, um nicht zuviel Verschnitt beim Ablegen von Dateien zu erhalten.
Wähle einen Kompromiss (512 Byte bis 2 KB pro Sektor)
Das Dateiverzeichnis bei MS-DOS
Hier werden für jede Datei neben verschiedenen Attributen die Adresse des ersten Sektors der Datei hinterlegt.
Länge der Datei x1C-x1F
Adresse des ersten Sektors x1A-x1B
Datum des letzten Schreibzugriffs x18-x19
Uhrzeit des letzten Schreibzugriffs x16-x17
Reserviert für MSDOS-Erweiterungen x0C-x15
Schreibschutz, versteckt, ...
x0B
Kennung (z.B. .txt, .exe, .com) x08-x0A
Dateiname oder not valid x00-x07
Information Byte
IV.3.5 Das Netzwerk
Die Verbindung von Rechnern durch ein Netzwerk spielt heute eine zentrale Rolle. Zum Netzwerk gehören neben der rein physischen Verbindung die Dienste und die Infrastrukturen:
B-ISDN
34 Mbit/s 155 Mbit/s
Token Ring
Ethernet Subnet
(Telekom)
2 Mbit/s
10 Mbps 4Mbps
4 Mbit/s
Token Ring
4 Mbit/s
Token Ring
Datenpakete
Virtuelles Netz
IV.3.6 Referenzmodelle
Um von den Mechanismen des eigentlichen Transports von Daten seitens der Anwendung weitgehend zu abstrahieren, hat man ein Schichtenmodell von „Softwareschichten“ entwickelt und
standardisiert.
Die benötigten Funktionen werden Schichten zugeordnet, und zwar so, dass alle Funktionen der Schicht i+1 über Funktionen der Schicht i
implementiert werden können.
Dies erleichtert das Zusammenstellen aller Funktionen und den
Austausch einer Schicht durch eine alternative Implementierung, da Art und Umfang der Funktionen durch einen Standard vorgegeben sind.
Als Beispiel wollen wir das TCP/IP (Transmission Control Protokoll/
Internet Protokoll) Referenzmodell betrachten:
Das TCP/IP Referenzmodell
Anwendungsschicht
(Application Layer)
Transportschicht
(Transport Layer)
Internetschicht
(Internet Layer)
Netzwerkschicht
(Network Layer)
Oberste Protokolle, wie Telnet (virtuelles Terminal), SMTP (Email), FTP (FileTransfer), HTTP (Hypertext Transfer Protocol)
Transportprotokolle wie TCP. TCP ist ein zuverlässiges End zu End Protokoll zur fehlerfreien Übertragung von Byteströmen zwischen zwei Rechnern.
Definiert das IP Protokoll. Schnürt Pakete und stellt sie dem Adressaten zu. Das Routing der Pakete spielt hier eine wichtige Rolle.
Legt die eigentliche physische Übertragung fest, und welche Protokolle dazu zu benutzen sind. (Ethernet IEEE802.3, Serial Line IP
SLIP)… In diesem einfachen Referenzmodell unterscheidet man z.B. nicht zwischen
Bitübertragung und Sicherung.
(vgl ISO/OSI Modell: 7 Schichten)
Übertragungstechniken
Bei der Datenübertragung unterscheidet man zwei Vermittlungsarten:
z Paketvermittelnde Übertragung
~ Nachricht wird in ein oder mehrere Pakete verpackt
~ Jedes der Pakete enthält die Adresse des Empfängers
~ Es wird kein direkter Übertragungsweg vom Sender zum Empfänger freigeschaltet
~ Das Paket wird in Abhängigkeit der Empfängeradresse immer nur zu einem direkten Nachbarn geschickt.
z Leitungsvermittelnde Vermittlung
~ Es wird im Netzwerk ein (virtueller) direkter Übertragungsweg vom Sender zum Empfänger geschaltet, über den alle
Nachrichten geschickt werden (Bsp: Telefonverbindung)
Leitungsvermittelnde Übertragung
Sender 1 Sender 1
Sender 2 Sender 2
Sender 3 Sender 3
Empfänger 1 Empfänger 1
Empfänger 2 Empfänger 2
Empfänger 3 Empfänger 3
& Schnelle Übertragung grosser Datenmengen in
Echtzeit.
' Geschalteter Pfad blockiert andere Verbindungen
Paket-vermittelnde Übertragung
Sender 1 Sender 1
Sender 2 Sender 2
Sender 3 Sender 3
Empfänger 1 Empfänger 1
Empfänger 2 Empfänger 2
Empfänger 3 Empfänger 3
& Keine Verbindung muss lange warten
' Unterbrechungen während einer Übertragung möglich
Beispiele Übertragungstechniken: Ethernet
Charakteristika Charakteristika
z Bus-Topologie (alle Teilnehmer hängen an einem phys. Medium) z 10 - 100 Mbit / Sekunde
z Paket-Versand mit Paketgrößen von 64-1518 Bytes z Nicht abhörsicher: alle hören mit !
z (Lokales) Rechnernetz über eine BridgeBridge mit der Aussenwelt verbunden, die die Nachrichten filtert und verstärkt
ÜbertragungsvorgangÜbertragungsvorgang
z Nachrichten werden in Pakete fester Länge zerteilt. Jedes Paket enthält HeaderinformationHeaderinformation mit Zieladresse und Sequenznummer z Jeder Rechner horcht am Bus und empfängt die Pakete, die seine
Adresse tragen
z Kollisionen von mehreren Sendern werden erkannt.
z Falls Kollision, dann später erneuter Sendeversuch
Beispiel: Token-Ring
[Token Passing Ring Network]
Charakteristika Charakteristika z Ring-Topologie
z bis 16 Mbit / Sekunde (Token-Ring von IBM) z Paket-Versand mit fester Paketgrößen
z Nicht abhörsicher: viele hören mit !
z (Lokales) Rechnernetz über eine BridgeBridge mit der Aussenwelt verbunden, die die Nachrichten filtert und verstärkt
ÜbertragungsvorgangÜbertragungsvorgang
z Nachrichten werden in Pakete fester Länge zerteilt. Jedes Paket enthält HeaderinformationHeaderinformation mit Zieladresse und Sequenznummer z Pakete werden solange weitergereicht, bis Zieladresse mit der
eigenen übereinstimmt
z Es kreist ein sogenanntes TokenToken (spezielles Paket)
z Ein Rechner darf nur dann senden, wenn er das Token besitzt
Beispiel: CDDI/FDDI-Ring
[Copper / Fiber Distributed Data Interconnect]
Charakteristika Charakteristika
z Ring-Topologie
z 100 Mbit / Sekunde
z Besteht aus zwei gegenläufigen Ringen
→ FehlertolerantesFehlertolerantes NetzNetz z ... ansonsten wie beim Token-Ring