28
IV.3 Betriebssysteme IV.3 Betriebssysteme IV.3 Betriebssysteme

IV.3 BetriebssystemeIV.3 Betriebssysteme

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: IV.3 BetriebssystemeIV.3 Betriebssysteme

IV.3 BetriebssystemeIV.3 BetriebssystemeIV.3 Betriebssysteme

Page 2: IV.3 BetriebssystemeIV.3 Betriebssysteme

IV.3.1 Aufgaben eines Betriebssystems

Starten und Beenden des Betriebs des Rechners.Programme laden und beenden.Verwaltung des Arbeitsspeichers bei Nutzung durch mehrere Programme.Zuteilung des Prozessors an laufende Programme.Bereitstellung der Programme (Dienste) zum Transport von Daten zwischen dem Speicher und Ein/Ausgabegeräten.Verwaltung des externen Speichers (Festplatten)Überwachung von BerechtigungenVestecken 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 …)

Page 3: IV.3 BetriebssystemeIV.3 Betriebssysteme

Betriebssystem versus Benutzeroberfläche

Meist werden Benutzeroberflächen mit dem Betriebssystem identifiziert, weil es durch sie für den Benutzer in Erscheinung tritt.

Das Betriebssystemstellt elementare Dienste zur Programmierung bereitbietet eine abstrakte Schnittstelle zur Hardware. Verwaltet Betriebsmittel

Die Graphische BenutzeroberflächeStellt eine komfortable Schnittstelle zu den Anwendungsprogrammen und Systemdiensten bereitSetzt Dienste bildlich um (z.B. Mülleimer, Verschieben von Dateien)Desktop Metapher (Nachbildung eines Schreibtisches)

Page 4: IV.3 BetriebssystemeIV.3 Betriebssysteme

IV.3.2 Prozessorverwaltung und ZuteilungProzesse (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

Page 5: IV.3 BetriebssystemeIV.3 Betriebssysteme

Prozesse -- ffProzesse werden in folgenden Zuständen verwaltet.

Prozesskontrollblock: Zustandsübergänge

running

ready suspendedcreate

plan

exit

interrupt

suspend

resume

StartadresseProzessID

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.

Page 6: IV.3 BetriebssystemeIV.3 Betriebssysteme

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 Prozessesasynchron: von aussen eingehende, nicht maskierte Unterbrechungsynchron: vom Prozess per Befehl ausgelöst (Trap)

suspend: ein laufender Prozess wird wegen Unterbrechung suspendiert, odersuspendiert 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 Suspendierungsursacheaufhebt oder ändert werden suspendierte Prozesse geprüft, und ggf. wieder der ready Warteschlange zugeführt.

Page 7: IV.3 BetriebssystemeIV.3 Betriebssysteme

IV.3.3 Speicherverwaltung

Adressraum von heutigen Rechnern ist sehr groß !

Bei Busbreite n sind 2n Speicherzellen adressierbar !

... soviel Hauptspeicher kann man nicht bereitstellen !

13⋅1012 €1,8⋅101964

3.250 €4,3⋅10932--6553616

Kosten bei 25 € / 32 MByte

adressierbareSpeicherzellen

Busbreite

Page 8: IV.3 BetriebssystemeIV.3 Betriebssysteme

Benutze Festplatte als virtueller Speicher

BenutzersichtBenutzersichtProgramm und alle Daten befinden sich im Hauptspeicher, sofern der Adressraum nicht ausgeschöpft ist.

Die WirklichkeitDie Wirklichkeitmulti-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.

AuswegAuswegBenutze die Festplatte, um die "Hauptspeicherdaten" eines Prozesses zu speichern, die aufgrund von Kapazitätsgründen nicht im vorhandenen Hauptspeicher liegen können.

Page 9: IV.3 BetriebssystemeIV.3 Betriebssysteme

Verwaltung des virtuellen Adressraumes

Jedem Prozess steht ein virtueller Adressraum zur Verfügung

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 ?

In diesem Zusammenhang werden die KonzeptePagingPagingSegmentierungSegmentierung

angewandt.

Page 10: IV.3 BetriebssystemeIV.3 Betriebssysteme

Paging

GrundideeGrundidee

Der virtuelle Speicher wird auf dem Sekundärspeicher abgelegt

... und in SeitenSeiten (pagespages) fester Grösse unterteilt.

Der Hauptspeicher besteht aus SeitenrahmenSeitenrahmen (page framespage frames), die jeweils eine Seite aufnehmen können

Eine SeitentabelleSeitentabelle (page tablepage table) gibt an, welche Seitenrahmen durch welche Seiten belegt sind.

Page 11: IV.3 BetriebssystemeIV.3 Betriebssysteme

Paging ff

virtuellerAdressraum

Hauptspeicher

valid bit Seitenadresse

pagetable

Haupt-speicher

HDD

1

10

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 bitAdressraum zu 3 Byte = 384KB Pagetable

Pagegröße 16 KB -> 14 b offset und 14 Bit Pageadresse, ergibt 14 bitAdressraum zu 2 Byte = 32KB Pagetable

Page 12: IV.3 BetriebssystemeIV.3 Betriebssysteme

Paging: Zugriff auf Datenseite i

Überprüfe, ob die Datenseite i im Hauptspeicher liegt;if Seitenfehlerthen Überprüfe, ob ein Seitenrahmen im Hauptspeicher leer ist;

if kein Seitenrahmen leerthen 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;

Page 13: IV.3 BetriebssystemeIV.3 Betriebssysteme

Verdrängungsstrategien

LFULFU--StrategieStrategie (Least Least Frequently UsedFrequently Used)Verdränge die Seite aus dem Hauptspeicher, auf die seit ihrer

Einlagerungszeit am seltensten zugegriffen wurde

LRULRU--StrategieStrategie (Least Least Recently UsedRecently Used)Verdränge die Seite, auf die am längsten nicht zugegriffen

wurde.

FIFOFIFO--StrategieStrategie (First In, FirstFirst In, First OutOut)Verdränge die Seite, die am längsten im Hauptspeicher liegt

Kleiner Verwaltungsaufwand, da nur bei einemSeitenfehler etwas getan werden muss.

Page 14: IV.3 BetriebssystemeIV.3 Betriebssysteme

SegmentierungUnterteilung des virtuellen Speichers in Segmente unterschiedlicher Grössen

Zum Beispiel ein Segment fürden Programmcodeden Stackdie statischen Variablen....

Falls ein angefordertes Segment nicht im Hauptspeicher ist: segment segment faultfault

Das Betriebssystem kann dafür Sorge tragen, dass bestimmte Segmente dauernd im Hauptspeicher liegen und nicht verdrängt werden können.

Page 15: IV.3 BetriebssystemeIV.3 Betriebssysteme

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).

Page 16: IV.3 BetriebssystemeIV.3 Betriebssysteme

IV.3.4 Verwaltung des Hintergrundspeichers

Beispiel: MSDOS

Die Festplatte ist nach dem Formatieren logisch unterteilt inden SystembereichSystembereich bestehend aus

dem UrladerbereichUrladerbereich (BootBoot blockblock): Spur 0, Seite 0, Sektor 1der DateizuordnungstabelleDateizuordnungstabelle (File File allocation blockallocation block): Adresse (Spur, Seite, Sektor) = (0,0,2) bis (0,0,4)

dem DateiverzeichnisDateiverzeichnis (directorydirectory): Adresse (0,0,5...9) und (0,1,1...2)

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.

Page 17: IV.3 BetriebssystemeIV.3 Betriebssysteme

Dateizuordnungstabelle bei MS-DOS

Dateien werden in untereinander verketteten Sektoren gespeichert.

zu jedem Sektor muß demnachZylindernummerSeitennummer (d.h. welche Stapeloberfläche)Sektornummer

des nächsten zu dieser Datei gehörigen Sektors aufbewahrt werden.

In der FAT (FFile AAllocation TTable) 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.

Page 18: IV.3 BetriebssystemeIV.3 Betriebssysteme

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)

Page 19: IV.3 BetriebssystemeIV.3 Betriebssysteme

Das Dateiverzeichnis bei MS-DOSHier werden für jede Datei neben verschiedenen Attributen die Adresse des ersten Sektors der Datei hinterlegt.

Länge der Dateix1C-x1F

Adresse des ersten Sektorsx1A-x1B

Datum des letzten Schreibzugriffsx18-x19Uhrzeit des letzten Schreibzugriffsx16-x17Reserviert für MSDOS-Erweiterungenx0C-x15Schreibschutz, versteckt, ...x0BKennung (z.B. .txt, .exe, .com)x08-x0ADateiname oder not validx00-x07

InformationByte

Page 20: IV.3 BetriebssystemeIV.3 Betriebssysteme

IV.3.5 Das NetzwerkDie Verbindung von Rechnern durch ein Netzwerk spielt heute einezentrale Rolle. Zum Netzwerk gehören neben der rein physischen Verbindung die Dienste und die Infrastrukturen:

B-ISDN

34 Mbit/s155 Mbit/s

Token Ring

Ethernet

Subnet(Telekom)

2 Mbit/s

10 Mbps 4Mbps

4 Mbit/sToken Ring

4 Mbit/s

Token Ring

Datenpakete

Virtuelles Netz

Page 21: IV.3 BetriebssystemeIV.3 Betriebssysteme

IV.3.6 ReferenzmodelleUm 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 iimplementiert 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:

Page 22: IV.3 BetriebssystemeIV.3 Betriebssysteme

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)

Page 23: IV.3 BetriebssystemeIV.3 Betriebssysteme

Übertragungstechniken

Bei der Datenübertragung unterscheidet man zwei Vermittlungsarten:

Paketvermittelnde ÜbertragungNachricht wird in ein oder mehrere Pakete verpacktJedes der Pakete enthält die Adresse des EmpfängersEs wird kein direkter Übertragungsweg vom Sender zum Empfänger freigeschaltetDas Paket wird in Abhängigkeit der Empfängeradresse immer nur zu einem direkten Nachbarn geschickt.

Leitungsvermittelnde VermittlungEs wird im Netzwerk ein (virtueller) direkter Übertragungsweg vom Sender zum Empfänger geschaltet, über den alle Nachrichten geschickt werden (Bsp: Telefonverbindung)

Page 24: IV.3 BetriebssystemeIV.3 Betriebssysteme

Leitungsvermittelnde Übertragung

Sender 1Sender 1

Sender 2Sender 2

Sender 3Sender 3

Empfänger 1Empfänger 1

Empfänger 2Empfänger 2

Empfänger 3Empfänger 3

Schnelle Übertragung grosser Datenmengen in Echtzeit.

Geschalteter Pfad blockiert andere Verbindungen

Page 25: IV.3 BetriebssystemeIV.3 Betriebssysteme

Paket-vermittelnde Übertragung

Sender 1Sender 1

Sender 2Sender 2

Sender 3Sender 3

Empfänger 1Empfänger 1

Empfänger 2Empfänger 2

Empfänger 3Empfänger 3

Keine Verbindung muss lange warten

Unterbrechungen während einer Übertragung möglich

Page 26: IV.3 BetriebssystemeIV.3 Betriebssysteme

Beispiele Übertragungstechniken: Ethernet

CharakteristikaCharakteristikaBus-Topologie (alle Teilnehmer hängen an einem phys. Medium)10 - 100 Mbit / SekundePaket-Versand mit Paketgrößen von 64-1518 BytesNicht abhörsicher: alle hören mit !(Lokales) Rechnernetz über eine BridgeBridge mit der Aussenwelt verbunden, die die Nachrichten filtert und verstärkt

ÜÜbertragungsvorgangbertragungsvorgangNachrichten werden in Pakete fester Länge zerteilt. Jedes Paket enthält HeaderinformationHeaderinformation mit Zieladresse und SequenznummerJeder Rechner horcht am Bus und empfängt die Pakete, die seine Adresse tragenKollisionen von mehreren Sendern werden erkannt. Falls Kollision, dann später erneuter Sendeversuch

Page 27: IV.3 BetriebssystemeIV.3 Betriebssysteme

Beispiel: Token-Ring[Token Passing Ring Network]

CharakteristikaCharakteristikaRing-Topologiebis 16 Mbit / Sekunde (Token-Ring von IBM)Paket-Versand mit fester PaketgrößenNicht abhörsicher: viele hören mit !(Lokales) Rechnernetz über eine BridgeBridge mit der Aussenwelt verbunden, die die Nachrichten filtert und verstärkt

ÜÜbertragungsvorgangbertragungsvorgangNachrichten werden in Pakete fester Länge zerteilt. Jedes Paket enthält HeaderinformationHeaderinformation mit Zieladresse und SequenznummerPakete werden solange weitergereicht, bis Zieladresse mit der eigenen übereinstimmtEs kreist ein sogenanntes TokenToken (spezielles Paket)Ein Rechner darf nur dann senden, wenn er das Token besitzt

Page 28: IV.3 BetriebssystemeIV.3 Betriebssysteme

Beispiel: CDDI/FDDI-Ring

[Copper / Fiber Distributed Data Interconnect]

CharakteristikaCharakteristikaRing-Topologie

100 Mbit / Sekunde

Besteht aus zwei gegenläufigen Ringen→ FehlertolerantesFehlertolerantes NetzNetz

... ansonsten wie beim Token-Ring