7 Betriebssysteme Resourcenverwaltung, Benutzerservice Prinzipieller Aufbau: Betriebssystem Hardware: CPU Speicher Peripherie B E T R I E B S S Y S T E M A N W E N D E R P R O G R A M M E Compiler Editor Datenbank Graphik Internet... Spiele User 1 User 2 User 3 User 4 User 5 User n 2
Resourcen-Verwaltung Zuteilung an die User effizient, gerecht Überwachung der Prozesse Störungen, illegale Zugriffe Auslastung der Geräte Optimierung, Arbeitsteilung Fehlerbehandlung Meldungen, Korrektur, Recovery Benutzerservice Benutzeroberfläche für Programme, interaktive Nutzer Dienstleistungen einheitliche Zugriffe, Verbergen der Details Aufgaben 3 Einzelbetrieb mit geringer Speichergröße, Massenspeicher: Magnetbänder Peripherie: Kartenleser, Drucker Benutzer = Programmierer = Operateur interaktives Arbeiten Nachteile Benutzerlisten (ineffektiv) Consolenbetrieb langsame Peripherie (Kartenleser, Magnetbänder,Drucker) lange Einsetz- und Zugriffszeit auf Magnetbänder Systemsoftware (Treiber, Assembler, Compiler,...) auf Bändern Problem: Zeitverluste durch manuelle Bedienung 4
Operateure übernehmen Console, Bandwechsel, Betriebsorganisation Batch-Betrieb regelt den Zugang der Benutzer, interaktiver betrieb nicht mehr möglich Kontrollbefehle für automatische Programmabfolge Anforderungen (Interrupts) Gerätetreiber Job-Sequencing Kontrollkarteninterpreter (<- Lader, <- Treiber) Problem: große Zugriffszeiten Kartenleser: 2 Karten/Sekunde Verarbeitung: 500 Karten/Sekunde Monitor 5 Alle I/O-Operationen über Magnetbänder Satellitengeräte zum Beschreiben und auslesen der Bänder Geräteunabhängigkeit der CPU, logische Geräte höhere CPU-Auslastung durch mehrfache I/O-Bänder im Parallelbetrieb Offline-Betrieb Kartenleser CPU Drucker 6
Puffer / DMA Größere Speicher erlauben das vorausschauende Laden und das Halten von nicht unmittelbar verwendeten Daten. Input wird in einen Puffer geladen, schon bevor das Programm ihn benutzt Output wird im Puffer gehalten, bis er vollständig vom Output-Gerät abgeholt ist eine 1200-baud Verbindung akzeptiert ein Byte alle 8 Sekunden, die Interrupt-Routine benötigt aber nur 20 µsec, sodaß 7980 µsec für die Weiterarbeit an Programmen bleibt. Direct Memory Acces Moderne Verbindungen können ein Byte alle 4 µsec übertragen, sodaß ein Interrupt pro Byte nicht in Frage kommt. Ein eigener Prozessor überträgt Blöcke von 128-4096 Byte direkt in den Speicher bevor der Interrupt gegeben wird. 7 Simultaneous Peripheral Operation On-Line Spooling Offline Operation wurde durch schnelle Platten überholt. Kartenleser CPU Drucker Puffern erlaubt nur Überlappung von Programm und eigenem I/O Spooling erlaubt Überlappungen bei mehreren Jobs in einem Job-Pool 8
Multiprogramming Die CPU kann aus einem Job-Pool schon einen neuen Job beginnen, wenn der bisherige Job z.b. auf Input wartet oder sonst unterbrochen ist. I/O-Operationen können im Hintergrund ausgeführt werden. Erhöhter Verwaltungsaufwand bei konkurrierenden Jobs über mehrere Warteschlangen: Job-Verwaltung: welcher Job ist an der Reihe? Speicher-Verwaltung CPU-Zeit-Verwaltung Geräte-Verwaltung Konflikt-Lösungen: z.b. Deadlocks Sicherung 9 Ausschluß Deadlocks keine zwei Prozesse können gleichzeitig dieselbe Resource zugeteilt bekommen (Warteschlange) Warten & besitzen ein wartender oder inaktiver Prozess sollte besser keine Resourcen zugeteilt haben manche Geräte (z.b. Drucker) können trotz Unterbrechung nicht an einen anderen Prozess abgegeben werden. Zirkuläre Anforderung Im Graph der Anforderungen und Zuteilungen gibt es einen Zyklus Erkennung, Vermeidung und Auflösung sind schwierig 10 R P P R
Deadlock-Vermeidung Nur ausschließende Resourcen müssen betrachtet werden Jeder Prozess fordert seine Resourcen für seine ganze Bearbeitungsdauer an Vor jeder Anforderung muß ein Prozess zunächst alle Resourcen freigeben Neue Zuteilung erfolgt erst wenn alle Resourcen freigegeben sind Priorität von Resourcen : Ein Prozess kann keine Resource von höherer Priorität anfordern als er schon besitzt. 11 Time-sharing Interaktive Nutzung der CPU durch mehrere Benutzer quasi gleichzeitig. Da Interaktion sehr langsam abläuft, kann eine CPU mehrere hundert Benutzer fast gleichzeitig bedienen. Time-Slicing : Jeder Benutzer erhält immer nur eine kurze Zeit zu seiner Verfügung, nach der er unterbrochen wird, wenn er nicht von allein unterbrochen hat. Die wartenden Benutzer werden reihum (round-robin) aus einer Warteschlange bedient. Unterbrochene Benutzer werden erst wieder in die Warteschlange eingereiht, wenn ihr Unterbrechungsgrund abgeschlossen ist. Geräte werden wie Benutzer in Warteschlangen geführt und bedient. 12
Prozessrechner Prozessrechner (z.b. Steuerung) verfolgen eine entgegengesetztes Zielsetzung, nämlich eine unverzögerte Reaktion auf Eingaben eindeutige Prioritäten von Jobs Alle Resourcenzuteilung zum Job höchster Priorität keine Unterbrechungen durch Jobs geringerer Priorität Nachteil: Jobs geringer Priorität müssen oft sehr lange auf ihre Bearbeitung warten 13 Multiprozessoren In herkömmlichen Systemen gibt es auch mehrere Prozessoren, die nach dem master-slave-prinzip von der CPU kontrolliert und geseteuert werden Multiprozessorsysteme haben mehrere gleichberechtigte Prozessoren, die voneinander unabhängig parallel arbeiten (z.b. Transputer). Für diese Situation ergeben sich folgende Abstimmungsprobleme: zeitliche Synchronisation Inter-Prozessor-Kommunikation private und gemeinsame Speicherbereiche Zugriffssynchronisation 14
Schutzmaßnahmen User-Modus und System-Modus Zum Schutz von Prozessen und Hardware vor illegalen Zugriffen anderer Prozesse kennt der Prozessor privilegierte Befehle (im PSW angezeigt), die nur vom Betriebssystem ausgeführt werden dürfen (System-, Supervisor-, Monitor-Modus) privilegiert sind z.b. alle I/O-Bbefehle das BS kann spooling, puffern, Blockübertragung machen und durch Abbildungen von logischen in physische Records für Geräteunabhängigkeit sorgen Wechsel vom System-Modus in den User-Modus (die Umkehrung ( Service-Anforderung, User-trap) ist nicht privilegiert) 15 Speicher-Schutz I/O-Schutz wäre sinnlos, könnte jeder Prozess z.b. auf die Interrupt-Vektoren oder andere Teile des BS zugreifen. Fence-Register: Speicher-Schutzmaßnahmen Alle Speicherzugriffe eines Prozesses laufen über (positive!) Offsets in Bezug auf vorgegebene Basisregister, daher ist Low Memory für ihn nicht zugreifbar. Ein negativer Offset resultiert in einer User-Trap Bound-Register: Zum Basisregister gehört noch die Information darüber, wie groß der Offset maximal sein darf Das Schreiben in diese Register ist privilegiert (Zuweisung von Speicher durch das BS) 16
CPU-Schutz Enthält ein Programm eine unendliche Schleife, so blockiert es die CPU für andere Prozesse. Schutzmaßnahmen: HALT ist privilegiert (das nicht privilegierte END übergibt die Kontrolle an das BS) Im Parallel-Betrieb: Das BS weist allen Prozessen nur Zeitscheiben zu, sodaß sie regelmäßig unterbrochen werden. Die Größe der Zeitscheiben kann nach Prioritäten variiert werden. IM Batch-Betrieb: Das BS gibt jedem Prozess je nach Priorität Zugriff auf die CPU bis zu einer maximalen Dauer, danach wird der Prozess abgebrochen 17 Prozess-Warteschlangen Zur Verteilung der CPU-Zeit an die Prozesse ist eine Vergabe von Prioritäten an die Prozesse unumgänglich (etwa Systemaufrufe genießen meist höchste Priorität). Jeder Prozess hat eine default -Priorität, erhält aber die tatsächliche Priorität vom aufrufenden Prozess (Vater), wenn diese niedriger ist. Für die Organisation ist es entscheidend, für jeden Prozess dessen Vaterprozess zu protokollieren. inaktive Prozesse (noch nicht gestartet): eine Warteschlange, die in regelmäßigen Abständen einen Prozess an die bereiten Prozesse abgibt. wartende Prozesse (auf Beendigung eines Service): eine nach Prozessnamen geordnete Liste bereite Prozesse (können sofort die Arbeit aufnehmen): für jede Prioritätsklasse eine Warteschlange 18
Prioritäten-Warteschlangen höchste Priorität (äußerst dringend : z.b. Systemaufrufe). P243 P021 P796 P174 P853 mittlere Priorität (normale Prozesse). P410 P601 P009 P107 P982 P756 P222 niedrige Priorität (Hintergrund-Aktivitäten ohne Zeitvorgaben). P453 P176 P053 Untere Priorität kann nur bedient werden, wenn die Schlangen höherer Priorität leer sind Nachteil: Bedienung der unteren Prioritäten ist zu selten Die Warteschlange mit der höchsten Gesamtpriorität (Summe) wird bedient Nachteil: absolut notwendige Systemaufrufe müssen warten Die Warteschlange mit höchster Gesamtpriorität gibt einen Prozess an die Schlange nächsthöherer Priorität ab. 19 Prozess-Verwaltung Laden, Ausführen, Unterbrechen, Abbrechen,... I/O - Operationen Gerätezuweisung, Lesen, Schreiben,... File System Dateien erzeugen, löschen, suchen,... Fehler-Behandlung Erkennen, Melden, Korrigieren,... Resourcen-Verwaltung CPU-Zeit, Speicher, I/O-Geräte Kontoführung Zeitmessung, Bedarfsermittlung, Gebührenermittlung,... Schutz/Kontrolle (Hintergrundaktivität)) BS-Services 20
Benutzer-Blickwinkel Service wird angeboten als SYSTEM-AUFRUF (SA) für elementare und hardwarenahe Service- Anforderungen SYSTEM-PROGRAMM (SP) Folge von Systemaufrufen für komplexere und hardwareunabhängige Service-Anforderungen BS-Views Betriebssystem-Blickwinkel BS ist inaktiv, reagiert nur auf Ereignisse (Interrupts): SYSTEM-AUFRUFE User-Trap GERÄTE-SIGNAL I/O-Interrupt PROGRAMMFEHLER 0-divide, Stack-Overflow,... 21 Direkte Job-Kontrolle end abort dump trace load SA: Job-Kontrolle Job-Kontrolle aus einem Prozess heraus create execute get attributes (z.b. Priorität,...) set attributes terminate wait time wait event signal event 22
create delete open (rewind) read write reset clear close get attribute set attribute SA: File Manipulation neue Datei (Name,...) lösche Datei (Name,...) Zurücksetzen zum Lesen Lesen (Name,Adresse,...) Schreiben (Name,Adresse,...) Zurücksetzen zum Schreiben Zurücksetzen und leeren Datei schließen (Puffer leeren,..) Dateiattribute lesen Dateiattribute setzen 23 request release read write reposition get attribute set attribute SA: GeräteManipulation Anforderung Freigabe Lesen (Adresse, Blockgröße,..) Schreiben (Adresse, Blockgröße,..) Zurücksetzen Geräteeigenschaften lesen Geräteeigenschaften setzen 24
get time set system time get date set system date get process attributes get divice attributes Systemzeit ablesen SA: Information Systemzeit neu setzen Systemdatum ablesen Systemdatum neu setzen Prozessattribute lesen Prozessattribute setzen 25 File-Manipulation: copy, move, rename, print, list, edit, explorer,... Geräte-Manipulation (Treiber) Information: available, users,... Programm-Unterstützung Systemprogramme Programmierumgebungen, Übersetzer, Formatierer, Linker, Lader,... Kommandointerpreter (shell) Anwender-Programme Datenbanken, Graphik-Systeme, Tabellenkalkulation, Netzbrowser,... 26
Geräte-Status-Tabelle: KEYBOARD frei # MONITOR frei # Peripherie-Verwaltung DRUCKER besetzt o Adr.: 38542 # FESTPLATTE frei # DISKETTE besetzt o File: XXX Rd File: YYY Wr # Adr. 43046 Adr. 03458 An jedem besetzten Gerät wird eine Warteschlange angehängt mit den notwendigen Angaben: Pufferadresse (und Größe) Zugriffsart (Lesen / Schreiben) Adresse im Gerät (Name, Pfad, Koordinaten,...) Sonstiges (Prozessnummer, Eigentümer,...) 27 Fehlerbehandlung Bei jedem Fehler wird ein Hard- oder Software Interrupt ausgelöst um eine Fehlerbehandlung des BS auszulösen. Fehlerererkennung Ermittlung der Ursache (Int-Nummer, Registerinhalt,...) Recovery Vermeidung eines vollständigen Systemzusammenbruchs Fehlerdiagnose Verfeinerung der Fehlererkennung, Ursachenforschung ggf Fehlerkorrektur bei eindeutiger Ursache kann diese oft beseitigt werden Fehlermeldung und ggf.abbruch 28