Leitfaden und Monographien der Informatik Brauer: Automatentheorle 493 Seiten. Geb. OM 56,- Becker: Priifen und Testen von Schaltkrelsen In Vorbereitung Oal Cin: Grundlagen der systemnahen Programmierung 221 Seiten. Kart. OM 34,- Ehrich/Gogolla/Lipeck: Aigebraische Spezifikation abstrakter Datentypen In Vorbereitung Engeler/Liiuchli: Berechnungstheorie fiir Informatlker 120 Seiten. Kart. OM 24,- Hentschke: Grundziige der Digitaltechnlk 247 Seiten. Kart. OM 36,- Loeckx/Mehlhorn/Wilhelm: Grundlagen der Programmlersprachen 446 Seiten. Kart. OM 44,- Mehlhorn: Datenstrukturen und efflziente Algorlthmen Band 1: Sortieren und Suchen 2. Aufl. 317 Seiten. Geb. OM 46,- Band 2: Graphenalgorithmen und NP-Vollstiindigkeit In Vorbereitung Messerschmidt: Linguistische Datenverarbeltung mit Comskee 207 Seiten. Kart. OM 36,- Niemann/Bunke: Kiinstliche Intelligenz In Blld-und Sprachanalyse 256 Seiten. Kart. OM 36,- Pflug: Stocl1astlscl1e Modelle In der Informatlk 272 Seiten. Kart. OM 36,- Post: Entwurf und Technologle hochlntegrierter Schaltungen 247 Seiten. Kart. OM 36,- Rammig: Systematlscher Entwurf dlgitaler Systeme 353 Seiten. Kart. OM 46,- Richter: Betrlebssysteme 2. Aufl. 303 Seiten. Kart. OM 36,- Richter: Prinziplen der Kiinstllchen Intelllgenz 359 Seiten. Kart. OM 46,- Weck: Prinzlpien und Reallslerung von Betrlebssystemen 3. Aufl. 306 Seiten. Kart. OM 42,- Wi rth: Algorithmen und Datenstrukturen Pascal-Version 3. Aufl. 320 Seiten. Kart. OM 39,- Wirth: Algorithmen und Datenstrukturen mit MOdula -2 4. Aufl. 299 Seiten. Kart. OM 39,- Wojtkowiak: Test und Testbarkelt dlgltaler Schaltungen 226 Seiten. Kart. OM 36,- Preisiinderungen vorbehalten B. G. Teubner Stuttgart Leitfiiden und Monographien der Informatik Gerhard Week Prinzipien und Realisierung yon Betriebssystemen Leitfideo ood Mooographieo der Ioformatik Unter beratender Mitwirkung von Prof. Dr. Hans-Jurgen Appelrath, Oldenburg Dr. Hans-Werner Hein, St. Augustin Prof. Dr. Rolf Pfeifer, Zurich Dr. Johannes Retti, Wien Prof. Dr. Michael M. Richter, Kaiserslautern Herausgegeben von Prof. Dr. Volker Claus, Oldenburg Prof. Dr. Gunter Hotz, Saarbrucken Prof. Dr. Klaus Waldschmidt, Frankfurt Die Leitfaden und Monographien behandeln Themen aus der Theoreti schen, Praktischen und Technischen Informatik entsprechend dem aktuel len Stand der Wissenschaft. Besonderer Wert wird auf eine systematische und fundierte Darstellung des jeweiligen Gebietes gelegt. Die Bucher die ser Reihe sind einerseits als Grundlage und Erganzung zu Vorlesungen der Informatik und andererseits als Standardwerke fUr die selbstandige Einar beitung in umfassende Themenbereiche der Informatik konzipiert. Sie sprechen vorwiegend Studierende und Lehrende in Informatik-Studien gangen an Hochschulen an, dienen aber auch in Wirtschaft, Industrie und Verwaltung tatigen Informatikern zur Fortbildung im Zuge der fortschrei tenden Wissenschaft. Prinzipien und Realisierung von Betriebssystemen Von Dr. rer. nat. Gerhard Week Infodas GmbH, Koln 3., iiberarbeitete und erweiterte Auflage Mit 150 Abbildungen und zahlreiehen Beispielen B. G. Teubner Stuttgart 1989 Dr. rer. nat. Gerhard Weck 1947 geboren in Trier. Von 1966 bis 1971 Studium der Physik an der Uni versitat des Saarlandes. 1971 Diplom in experimenteller Festkorperphy sik. 1971 bis 1972 wiss. Mitarbeiter im Institut fUr Experimentalphysik der Universitat des Saarlandes. 1972 bis 1975 wiss. Mitarbeiter im Digi talelektronischen Praktikum der Universitat des Saarlandes. 1975 Promo tion tiber abstrakte Modelle von Datenstrukturen. 1975 bis 1976 wiss. Mitarbeiter in der Forschungsgruppe Graphische Datenverarbeitung der Technischen Hochschule Darmstadt. 1976 bis 1977 Assistant Teacher am Departamento de Engenharia Eletrica der UNICAMP (Universidade Estadual de Campinas) in Campinas, Sao Paulo, Brasilien. 1977 bis 1980 wiss. Mitarbeiter am Rechenzentrum der Universitat des Saarlandes. Seit 1980 wiss. Mitarbeiter der Infodas GmbH, Koln, ftir die Entwicklung von Datenbank-Software und von Systemkonzepten fUr sichere Systeme. 1m Winter-Semester 1984/85 Lehrauftrag tiber Betriebssysteme am Fach bereich Informatik der Universitat Dortmund. CIP-Titelaufnahme der Deutschen Bibliothek Week, Gerhard: Prinzipien und Realisierung von Betriebssystemen / von Gerhard Weck. - 3., iiberarb. u. erw. Aufl. - Stuttgart : Teubner, 1989 (Leitfliden und Monographien der Informatik) ISBN 978-3-519-02271-8 ISBN 978-3-322-96666-7 (eBook) DOI 10.1007/978-3-322-96666-7 Das Werk einschlieBlich aller seiner Teile ist urheberrechtlich geschiitzt. Jede Verwertung auBer halb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlages unzulassig und strafbar. Das gilt besonders fiir Vervielfaltigungen, Obersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen. © B. G. Teubner Stuttgart 1989 Gesamtherstellung: Zechnersche Buchdruckerei GmbH, Speyer Umschlaggestaltung: M. Koch, ReutJingen vorwort Dieses Buch entstand aus den Skripten zweier Vorlesungen, die ich im Wintersemester 1979/80 und im Sommersemester 1980 im Fachbereich Angewandte Mathematik und Informatik der Universit~t des Saarlandes gehalten habe. Die zun~chst sehr knappe und an vielen Ste1len eher skizzenhafte Darstellungsform dieser Skripten wurde fur dieses Buch vollig uberarbeitet und besser 1esbar gemacht. Um jedoch die Ubersicht1ichkeit der ursprunglichen Skripten zu bewahren, wurde uberall dort, wo es dem Verst~ndnis forderlich erschien, eine tabellarische oder graphische Darstellung solcher Sachverhalte gew~hlt, die sich anders nur durch lange und umst~ndliche verbale Beschreibungen h~tte realisieren lassen. Das Buch wendet sich vornehmlich an Informatik-Studenten des mittleren Studienabschnitts, etwa vom 3. bis zum 7. Semester. An Kenntnissen wird Erfahr~n~ mit einer beliebigen hoheren Programmiersprache und elnlge Gewohnung an algorithmische Denk weise vorausgesetzt. Kenntnisse uber Rechner-Architektur sind zwar fUr das Verst~ndnis nutzlich, aber nicht unbedingt erforderlich, dagegen ist ein gewisses Grundwissen uber Analysis und Statistik sehr von Vorteil. Algorithmen sind in informeller Art in einer ALGOL-~hnlichen Schreibweise dargestellt; auf die Verwendung von System-Programmiersprachen wurde bewuBt verzichtet, da heute noch keine dieser Sprachen so weit verbreitet ist, daB man sie als allgemein bekannt voraussetzen konnte. Ebenso erschien es nicht zweckm~Big, hier eine eigene umfangreiche Beschreibungsmethode zu entwickeln oder erst eine EinfUhrung in eine der bekannteren System-Programmiersprachen (etwa BCPL, Ada oder BLISS) zu geben, da dies zu weit vom eigentlichen Inhalt des Buches weggefuhrt h~tte. Ziel dieses Buches ist es, den Aufbau von Betriebssystemen und die zugrundeliegenden prinzipien vest~ndlich zu machen sowie einen Einstieg in die Literatur dieses Gebietes zu ermoglichen. Aus diesem Grund habe ich versucht, sowohl die theoretischen Grundlagen und prinzipien von Betriebssystemen als auch deren Umsetzung in die Praxis darzustellen. Der dabei eingeschlagene Weg liegt zwischen dem einer reinen Beschreibung der zugrunde liegenden Theorien, bei der leicht der Bezug zur Praxis verloren geht, und dem einer reinen Fallstudie, die gerne in die Gefahr ger~t, die verwendeten Konzepte hinter unwesentlichen Details der Realisierung zu verbergen. Diese Wahl der vorgehensweise hatte zur Folge, daB die Angabe umfangreicher Beweise unterbleiben muBte, da sie den Umfang des Buches zu stark erhoht und den Zusammenhang zwischen theoretischem Prinzip und Realisierung oder Auswirkung in der Praxis zerrissen h~tte. Stattdessen wurde versucht, den theoretischen Ergebnissen anhand von Fallstudien aus realisierten bzw. zur Realisierung vorgeschlagenen Betriebssytemen gegenuberzustellen, welchen EinfluB diese Ergebnisse auf die Praxis haben. Viele dieser Beispiele wurden einem neueren Betriebssystem entnommen, uber das relativ leicht ausfuhrliche Dokumentation zur Vertiefung erh~ltlich ist. Die Gultigkeit der in diesen Beispielen angestellten Betrachtungen ist jedoch nicht - 6 - auf dieses System beschrankt, sondern erstreckt sich auf die meisten modernen Betriebssyteme, wenn auch zum Teil mit Abwei- chungen in einzelnen Details. An dieser Stelle ist auch eine Bemerkung uber die reichlich freizugige Verwendung englischer Begriffe in diesem Buch gemacht: Es schien mir in vie len Fallen wenig sinnvoll, deutsche Obersetzungen dieser Begriffe zu verwenden, da die Terminologie auf dem Gebiet der Betriebssysteme sich im Deutschen noch weniger stabilisiert und vereinheitlicht hat als im Englischen; zu vielen der englischen Begriffe existiert sogar noch keine allgemein akzeptierte deutsche Obersetzung. Um den Leser nicht unnotig mit einer eigenen Terminologie zu belasten, die den Einstieg in die uberwiegend amerikanische - original-Literatur erschweren wtirde, habe ich daher die Begriffe von dort in vielen Fallen ungeandert ubernommen. Auch die Beispiele und Skizzen zur Verdeutlichung theoretischer Grundlagen oder praktischer Ergebnisse wurden nur dort inhaltlich geandert, wo eine Anpassung der Terminologie unbedingt erforderlich war; ansonsten wurden die Darstellungen der original-Literatur moglichst ungeandert ubernommen, um dem Leser die Einarbeitung in diese Literatur zu erleichtern. Dies gilt insbesondere fur die Kapitel 3 bis 5, die sich sehr stark auf die ausgezeichneten Darstellungen in (7) und (18) stutzen. Zur Vertiefung des hier gebotenen Stoffes empfehlen sich insbesondere diese beiden Werke sowie die Beschaftigung mit dem Aufbau eines modernen Timesharing-Systems, am besten anhand praktischer Erfahrung. Herrn Prof. Dr. G. Hotz danke ich fur die Anregung, das ursprungliche Manuskript zu einem Buch umzuarbeiten, und fur die kritische Durchsicht des Manuskripts. Zu dank en habe ich insbesondere Frau Dr. B. Wiesner, die den vorliegenden Text durch gearbeitet und mit zahlreichen Anmerkungen und Verbesserungsvor schlagen erheblich zut Lesbarkeit und Korrektheit beigetragen hat. SchlieBlich danke ich der Infodas GmbH, die mir in groBzugiger Weise die technischen Mittel zur Erstellung der druckfertigen Vorlage zur Verfugung gestellt hat. Koln, im Marz 1982 G. Weck Vorwort zur 2. Auflage Die vorliegende zweite Auflage ist gegenuber der ersten Auflage inhaltlich ungeandert; es erfolgte lediglich eine Korrektur der Druckfehler, die inzwischen bekannt geworden waren. Koln, im Marz 1985 G. Weck Vorwort zur 3. Auflage Das Buch wurde fur die vorliegende dritte Auflage grundlich uberarbeitet und aktualisiert, ohne jedoch yom ursprunglichen Konzept der Gegenuberstellung theoretischer Grundlagen und deren Realisierung in der Praxis abzuweichen. Schwerpunkt der inhaltli chen Anderungen war dabei die Behandlung von Systemen mit mehreren Prozessoren und von verteilten Systemen. So habe ich die Kapitel 2 und 3 um Abschnitte erganzt, die die Verwaltung und Synchronisation von Systemen mit einer nicht zu hohen (bis etwa 30) Anzahl von Prozessoren behandeln. Zu den im 3. Kapitel beschriebenen Synchronisations-Verfahren kamen auBerdem noch mehrstufige Synchronisationen mit abgestufter Concurrency Control hinzu. Die Beispiele in den Kapiteln 4 und 5 wurden um die Behand lung einiger Sekundar-Effekte beim Scheduling und in der Haupt speicherverwaltung erweitert. Davon abgesehen, wurden diese bei den Kapitel inhaltlich nicht wesentlich geandert. Das Kapitel 6 wurde um die Darstellung gerateunabhangiger E/A-Schnittstellen, insbesondere bei Einsatz intelligenter Controller und bei Anbindung an Netze, erweitert. Hinzu kam eine Beschreibung des Konzeptes generischer Treiber fur Klassen aqui valenter Gerate sowie eine kurze Einfuhrung in die Architektur verteilter Systeme und Netze. Bei der Behandlung des Zugriffsschutzes in den Kapiteln 7 und 8 wurden Zugriffsmatrizen und deren Auswertung durch einen Refe renz-Monitor kurz dargestellt. Weiterhin habe ich durch die Verwendung eines anderen Druck bildes fur Text und Gleichungen versucht, die Lesbarkeit des Bu ches zu verbessern. KeIn, im Januar 1989 G. Weck Inhalt VORWORT 5 INHALT • 9 ABBILDUNGEN 13 ABBILDUNGS-NACHWEIS 16 KAPITEL 1 EINFUHRENDE DISKUSSIONEN 1.1 AUFGABEN EINES BETRIEBSSYSTEMS . . . • 17 1.1.1 Allgemeine Einfuhrung . . . . 17 1.1. 2 Hardware-Grundlagen und Termino1ogie 18 1.2 AUFBAU EINES EINFACHEN BETRIEBSSYSTEMS 21 1. 2.1 Konstruktion . • . . . . . 21 1.2.2 Leistungsabschatzung • . • 23 1.3 INTERRUPTS UND PROZESSE 25 1. 3.1 Umschalten des Prozessors 25 1. 3.2 Prozesse . . . • . . • . 27 1.4 TYPEN VON BETRIEBSSYSTEMEN 28 KAPITEL 2 DAS PROZESS-KONZEPT 2.1 ZERLEGUNG EINES BETRIEBSSYSTEMS IN PROZESSE 32 2.2 AUFBAU UND DARSTELLUNG VON PROZESSEN 34 2.2.1 Aufbau ....•..• 34 2.2.2 Darstellung . • . . • 38 2.3 VERWALTUNG DER PROZESSE 40 2.3.1 ProzeB-zustande 40 2.3.2 ProzeBwechsel . . . • . • . . . • . . . . . 43 2.3.3 Verwaltung und zuordnung mehrerer Prozessoren 45 KAPITEL 3 PROZESS-STEUERUNG 3.1 KRITISCHE ABSCHNITTE . . • • • • . • . 49 3.1.1 Gegensei tige AusschlieBung . • . • • 49 3.1. 2 probleme der Koordination kritischer Abschnitte 51 3.1. 3 Synchronisation . . • . • • . . 52 3.2 SYNCHRONISATIONSVERFAHREN . • . . 55 3.2.1 Aktives Warten ("busy waiting") 55 3.2.2 Blockierung der Interrupts • . 56 3.2.3 Spezielle zugriffsoperationen 56 3.2.4 Semaphore .. • . . . • 58 3.2.5 Ereignisse ("events") 59 3.2.6 ProzeB-Teilung ("fork") 60 3.2.7 Monitore ..•.. 61 3.2.8 Verteilte Prozesse ••. 63 - 10 - 3.2.9 Nachrichten-Systeme . . . • . . . • . 64 3.2.10 pfad-AusdrUcke ("path expressions") 64 3.2.11 Software-gesteuerte Interrupts (ASTs) 65 3.2.12 Komp1exe Synchronisationsverfahren . 66 3.2.13 Spezie11e Hardware-Mechanismen . • . 68 3.2.14 Synchronisation von Mu1tiprozessoren 70 3.3 DEADLOCKS . . . . . 72 3.3.1 Charakterisierung 72 3.3.2 verhinderung . . . 74 3.3.3 Entdeckung . . . . 75 3.3.4 Behebung • . . . • 77 3.3.5 vermeidung . . . . . . • . 78 3.3.6 Verg1eich und Alternativen 82 3.4 INTERPROZESS-KOMMUNIKATION . 84 3.4.1 Techniken • . • • . . • . . . • . • . • 84 3.4.2 E/A-Systeme und InterprozeB-Kommunikation 85 KAPITEL 4 SCHEDULING 4.1 ZIELE, STRATEGIEN, ALGORITHMEN UND REALISIERUNG 87 4.2 DETERMINISTISCHE MODELLE . . . . . . . • . . 88 4.2.1 EinfUhrung . • . . . . . . . . . . . . . . 89 4.2.2 Optimales Scheduling von Doppelprozessoren 91 4.2.3 Optimales Scheduling von Prazedenz-Baumen 95 4.2.4 Scheduling unabhangiger Tasks • . • . • . 97 4.2.5 Scheduling nach Prioritatslisten .•••... 99 4.2.6 Scheduling mit Preemption und prozessor-Sharing 101 4.2.7 Systeme verschiedener Prozessoren 106 4.2.8 Minimisierung der Verweilzeit 107 4.3 WAHRSCHEINLICHKEITS-MODELLE 109 4.3.1 warteschlangen • . . . . 109 4.3.2 Das M/M/1-System . . . . . . . 113 4.3.3 Scheduling-Verfahren . . . • • 115 4.3.3.1 First-Come-First-Serve (FCFS) 116 4.3.3.2 Shortest-Job-First (SJF) ... 117 4.3.3.3 Shortest-Remaining-Time (SRT) 118 4.3.3.4 Externe Prioritaten .•••• 118 4.3.3.5 Dynamische Prioritaten •.•••.•... 119 4.3.3.6 Round-Robin (RR) und processor-Sharing (PS) 119 4.3.3.7 Highest-Response-Ratio-Next (HRN) 122 4.3.3.8 Shortest-Elapsed-Time (SET) ••... 123 4.3.3.9 Shortest-Attained-Service-First (SASF) 124 4.3.3.10 Strategie-Kurven . . . . . . . . • . . 125 4.3.4 Scheduling von Timesharing-Systemen 127 4.4 SCHEDULING VON PERIPHERIE-SPEICHER-ZUGRIFFEN 131 4.4.1 Latenz durch Rotation 131 4.4.2 Latenz durch Positionierung 132 4.5 BEISPIEL EINES SCHEDULERS 134 KAPITEL 5 HAUPTSPEICHER-VERWALTUNG 5.1 PROBLEMSTELLUNG .• . • . • . . . 138 5.2 GRUND LAG EN DER SPEICHERVERWALTUNG 141 5.2.1 Speicher-Hierarchie 141 5.2.2 Virtueller Speicher 143 5.2.3 Segmentierung •• . 146 5.2.4 Paging . . • . . • . 148