Grundlagen der Informatik III Wintersemester 2010/2011 – 23. Vorlesung Dr.-Ing. Wolfgang Heenes msg: main: int main() { printf("Hello, world!"); return 0; } 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 1 .data .asciiz "Hello, world!" .text .globl main la $a0,msg li $v0,4 syscall jr $ra Inhalt 1. Literatur 2. Betriebssysteme I 3. Aufgaben eines Betriebssystems 4. Strukturierungs-/Beschreibungsmethoden 5. Anforderungen an die Systemsoftware 6. Konzept der Unterbrechungen 7. Betriebsarten 8. Zusammenfassung und Ausblick 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 2 Literatur [Tan09] Tanenbaum, Andrew S.: Moderne Betriebssysteme. Pearson, 2009. 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 3 Betriebssysteme I Einführung I I Was ist ein Betriebssystem? Was ist ein Elefant? I I Eine Maus mit einem Betriebssystem! Vorstellung und Realität?! I I Hardware: klein, schnell und leistungsfähig Hardware mit Betriebssystem: groß und langsam 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 4 Betriebssysteme I Historische Entwicklung I Anfänge der Informationsverarbeitung um 1940 I I I I I I diese Entwicklung bewirkte I I I Rechner werden von Ingenieuren und Wissenschaftlern programmiert, die sie auch konstruiert haben Probleme lagen mehr an der Hardware denn an der Programmierung hohe Hardwarekosten, geringe Softwarekosten Benutzer schreiben eigenständig Programme für viele Bereiche Kosten für Programmerstellung stiegen stark an ⇒ teure Hardware soll gut ausgenutzt werden Entwicklung von Standardprogrammen für die Steuerung von Rechnerkomponenten Entwicklung von Standardprogrammen für die Auftragsabarbeitung Ausgangspunkt für die Erstellung von Systemsoftware I I monitor system, supervisory system, executive system, operating system ⇒ Betriebssystem (BS) 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 5 Betriebssysteme I Definitionen I Definition eines Betriebssystems nach DIN 44300 Die Programme eines digitalen Rechensystems, die zusammen mit den Eigenschaften der Rechenanlage die Grundlage der möglichen Betriebsarten des digitalen Rechensystems bilden und insbesondere die Abwicklung von Programmen steuern und überwachen. I Definition eines Betriebssystems nach ANSI Software, which controls the execution of computer programs and which may provide scheduling, debugging, input/output control, accounting, compilation, storage assignment, data management and related services. 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 6 Aufgaben eines Betriebssystems I I „Veredelung“ der Hardware I I I I I Organisation und Steuerung des Ablaufs I I I I I Geräteüberwachung und -steuerung einfache, einheitliche E/A-Schnittstelle inkl. Fehlerbehandlung Unterbrechungsbehandlung Benutzerschnittstelle Programmabläufe E/A parallel zu Programmabläufen Betriebsmittelverwaltung: Speicher, Prozessoren, Geräte Protokollierung, Accounting Langfristige Datenhaltung I I I I Hintergrundspeicherverwaltung Dateiverwaltung, Dateien Schutz von Dateien Dateisicherung, Archivierung 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 7 Aufgaben eines Betriebssystems II I Einhaltung von Qualitätsanforderungen, z. B. I I I I I Warum wird also die Maus zum Elefant? zunehmende Anforderungen an das Rechensystem, z. B. I I I I Leistung (kurze Antwortzeiten, hoher Durchsatz) Verfügbarkeit Sicherheit durch Benutzer: will vieles gleichzeitig, bequem und möglichst schnell durch Eigentümer: will hohe Auslastung und Verfügbarkeit u.a. dadurch ⇒ zunehmende Komplexität des Betriebssystems Somit ermöglicht ein BS den Benutzern einer Rechenanlage eine I I I ggf. gemeinsame Nutzung bei einfacher Handhabung und es verwaltet und steuert die verschiedenen Komponenten eines Rechensystems mit dem Ziel optimaler Nutzung 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 8 Betriebssysteme I Eine andere Sicht Abbildung: Quelle: [Tan09, S. 35] 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 9 Strukturierungs-/Beschreibungsmethoden I I Problem I I I I I I Komplexität muss reduziert werden Lösung I I BS ist ein umfangreiches Software-System es besteht aus zahlreichen Komponenten es existieren zahlreiche Wechselwirkungen zwischen den Komponenten damit ist es i. d. R. schwer zu verstehen Verwendung von Strukturierungs- und Beschreibungsmethoden Strukturierungsmethoden I I I schichtenweise gegliedertes Betriebssystem Operationen sind die an jeder Schicht sichtbaren Dienste ⇒ Schichtenmodell optimaler Nutzung 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 10 Strukturierungs-/Beschreibungsmethoden II I Beschreibungsmethoden, nötig sind Methoden mit denen I I I I I gegenwärtig existiert keine geschlossene, universell einsetzbare Beschreibungsmethodik für BS verwendet werden daher je nach Bedarf u. a. I I I I I strukturelle Zusammenhänge übersichtlich dargestellt werden können Entwurfs- und Konstruktionskonzepte von BS beschrieben werden können Algorithmen von BS-Komponenten formuliert werden können graphische Darstellungen von Objektbeziehungen und Ablaufstrukturen Spezifikationen von Operationen programmsprachliche Darstellungen von BS-Software-Fragmenten ⇒ Systemprogrammiersprache „Eigene“ Systemprogrammiersprache I I orientiert sich an höheren Programmiersprachen wie Pascal, Modula-2 einfache Objekte lassen sich zu komplexeren zusammensetzen 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 11 Schichtenmodell Systemumgebung Anwendungs-Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Systemgrenze . . . . . . Dienstleistungs-Software Rechensystem . . . . . . . . . Software-Schnittstelle . . . . . . . . . ? Betriebssystem Software . . . . . . . . . Software/Hardware-Schnittstelle . . . . . . . . . Hardware ? ? Zentraleinheit . . . . . . . . . Hardware-Schnittstelle . . . . . . . . . ? Peripheriegeräte 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 12 SystemSoftware Anforderungen an die Systemsoftware I I I Anforderungsliste I ⇒ unterstützt werden soll u. a. I Entwicklung und Anwendung von Programmen durch Benutzer: I I I I I I I Entwerfen Implementieren Integrieren Ausführen Warten zudem soll dies möglichst schnell, billig, einfach durchzuführen sein Benutzer soll nicht mit irrelevanten Routinearbeiten überlastet werden ⇒ Benutzer benötigt daher u. a. I I I I I I I Assembler, Makros Übersetzer für problemorientierte Programmiersprachen Binder, Lader Editoren, Testhilfen Dateiverwaltung E/A-Operationen Bibliotheken mit Standardunterprogrammen 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 13 Anforderungen an die Systemsoftware II I Anforderungsliste II I wenn mehrere Benutzer das Rechensystem gemeinsam nutzen oder wenn auch nur ein Benutzer an mehreren Aufgaben arbeitet, dann müssen I I I Betriebsmittel adäquat verwaltet werden Betriebsmittelnutzung muss überwacht, gesteuert, ggf. begrenzt, abgerechnet werden I Dienstleistungssoftware oder BS? I Anforderungsliste I ⇒ i. d. R. durch Dienstleistungssoftware I Anforderungsliste II ⇒ vor allem durch das Betriebssystem I Anforderungen an die Sytemsoftware 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 14 Anforderungen an die Systemsoftware III Designkriterien I Zuverlässigkeit I I I dependability die Systemsoftware soll die an sie gestellten Aufgaben auch tatsächlich erfüllen können folgende Aspekte sind dabei wesentlich: I I I I I I Korrektheit (correctness) Sicherheit (security) Verfügbarkeit (availability) Fehlertoleranz (fault tolerance) Robustheit (robustness) Benutzerfreundlichkeit I I I user-friendliness die Systemsoftware sollte für „Otto-Normal-Benutzer“ vernünftig handhabbar sein Aspekte sind dabei I I Verständlichkeit (understandability) vernünftiges Fehlerverhalten 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 15 Anforderungen an die Systemsoftware IV Designkriterien I Wartbarkeit und Flexibilität I I I I maintainability, flexibility das Warten von Programmsystemen soll gut unterstützt werden Anpassen an neue Gegebenheiten soll mit geringem Aufwand durchführbar sein wichtige Aspekte sind hierbei I I I I I Testbarkeit (testability) Erweiterbarkeit (extensibility) Adaptierbarkeit (adaptability) Übertragbarkeit (portability) Leistungsfähigkeit I I I performance das System soll seine Funktion in quantifizierbaren Leistungsgrößen möglichst gut erfüllen dabei sind wichtig I I I I Produktivität (productivity) Reaktionsfähigkeit (responsiveness) Auslastung (utilization) Verwaltungsaufwand (management overhead) 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 16 Anforderungen an die Systemsoftware V Designkriterien I Kosten I I costs das Preis/Leistungsverhältnis soll möglichst günstig sein I Anforderungen sind nicht unabhängig voneinander I um Zielanforderungen gerecht werden zu können, muss Systemsoftware systematisch entworfen und gut strukturiert werden I Korrektheit wichtigste Anforderung ⇒ Leistung ist oft überbewertet Beispiel: Betriebssystem Multics (um 1970) I I I I mehrere 100 Arbeitsjahre Entwicklungsaufwand 0.5 Arbeitsjahre für Optimierung (tuning) ⇒ Leistungssteigerung um Faktor 200 Fazit: erst richtig, dann schnell 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 17 Eigenschaften der Zentraleinheit I I I I Rechnersystem klassische Zentralstrukturen nach John von Neumann Zentraleinheit I I I I ein oder mehrere Prozessoren Hauptspeicher, speichert Befehle und Daten Peripheriegeräte Klassische Zentralstruktur Zentraleinheit eines Rechners Prozessor 1 6 ? Prozessor 2 6 ? Hauptspeicher 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 18 Prozessor 3 6 ? ...... Eigenschaften der Zentraleinheit II I Eng gekoppeltes symmetrisches Mehrprozessorsystem I tightly coupled symmetric multiprocessor system I mehrere Prozessoren können parallel tätig sein I alle Prozessoren sind funktionsäquivalent ⇒ symmetrisch I alle Prozessoren besitzen als einziges einen gemeinsamen Hauptspeicher ⇒ eng gekoppelt, shared memory I ist der Standardfall aller nachfolgenden Betrachtungen I einfacher Sonderfall: ⇒ Einprozessorsystem Hauptspeicher I I besteht aus Menge gleichartiger Zellen 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 19 Arbeitsweise eines Prozessors I I Prozessor arbeitet Befehle ab, die im Hauptspeicher stehen: 1. Prozessor holt nächsten Befehl aus Hauptspeicher (nach aufsteigenden Adressen) 2. führt Befehl aus I dafür benötigt er zwei Steuerregister: I Befehlsregister IR I I I enthält den jeweils auszuführenden Befehl Befehlsregister ist für Software transparent Befehlszähler IC I enthält Adresse des nächsten auszuführenden Befehls Bezeichner IR LOAD . . . Adresse i-1 - i IC i Steuerregister des Prozessors 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 20 i+1 .. . LOAD . . . ADD . . . STORE . . . .. . Hauptspeicher M Arbeitsweise eines Prozessors II I einfacher Befehlszyklus WHILE ‘Maschinenzustand‘ = ‘tätig‘ LOOP IR := M[IC]; IC += 1; IR ‘ausführen‘; REPEAT; I sequentielles Abarbeiten 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 21 Arbeitsweise eines Prozessors III Unterbrechungsmöglichkeiten des sequentiellen Abarbeitens I Sprungbefehle I I I I Unterprogrammaufrufe I I I Modifikation des Befehlszählers „Absprungstelle“ wird vergessen wichtig sind bedingte Sprünge ⇒ Sprung nur bei bestimmten Prozessorzuständen wie Sprungbefehl, jedoch wird „Absprungstelle“ gerettet nach Abarbeitung des Unterprogramms wird „hinter der geretteten Absprungstelle weitergearbeitet“ Unterbrechungen I I I I spezielle Signale an den Prozessor ändern Kontrollfluss haben i. d. R. nicht vorhersehbare Ursachen können aber auch programmgesteuert erzeugt werden 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 22 Arbeitsweise eines Prozessors IV Betriebszustände eines Prozessors I I Prozessor kann sich in verschiedenen Betriebszuständen befinden Betriebszustand teilweise definiert durch I I I Maschinenzustand Privilegierungszustand Maschinenzustand I I I Prozessor kann aus- oder angeschaltet sein Prozessor kann gerade im Urladevorgang sein Zustände: stop, laden, tätig 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 23 Arbeitsweise eines Prozessors V Betriebszustände eines Prozessors I Privilegierungszustand I I Zustände definieren die Menge der jeweils erlaubten, ausführbaren Maschinenbefehle oft existieren I I I Anwenderzustand: nicht privilegiert; nur eingeschränkter Befehlsvorrat gültig Systemzustand: privilegiert; voller Befehlsvorrat gültig Befehl heißt privilegiert, wenn ausschließlich im Systemzustand ausführbar I Hardware muss gestatten, Zustandswechsel per Software herbeizuführen I Befehlsvorrat z. B. 100-300 Befehle, 10% privilegiert1 1 Intel ⇒ anderes Konzept 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 24 Uhren Uhren I Prozessoren besitzen i. d. R. Uhren I benutzen spezielle Register, z. T. mit Eigenaktivität I I I I I I Betrieb im Einmal- und Mehrfachmodus möglich wird u. a. als Zeitgeber (timer) verwendet I I I I I Festwertregister frei einstellbar; Wert wird „initial“ ins Zählerregister kopiert Zählerregister in konstanten Zeiteinheiten wird Zählerregisterwert erniedrigt Auflösung im Mikrosekundenbereich „Eieruhr“ Festwertregister wird auf speziellen Wert gesetzt Festwertregisterwert wird ins Zählerregister kopiert und „läuft dann ab“ Erreichen des Wertes 0 erzeugt Unterbrechungsanforderung im Mehrfachmodus wird bei Erreichen des Nullwertes erneut Festwertregisterwert ins Zählerregister kopiert 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 25 Konzept der Unterbrechungen I I Entwicklung des Unterbrechungskonzeptes auf Wunsch der NASA 1956 mit UNIVAC 1103 von Remington Rand I IBM folgte 1958 mit IBM 709 ohne Unterbrechungen I I mögliche Arbeitsweise 1. Prozessor stösst Tätigkeit eines Gerätes an 2. Gerät arbeitet relativ selbständig während Prozessor auf Beendigung wartet 3. Prozessor arbeitet weiter I zeitlich parallele Tätigkeit von Komponenten nicht oder nicht effizient realisierbar I aufgrund relativ geringer Verarbeitungsgeschwindigkeit der Peripheriegeräte ist Prozessor schlecht ausgelastet 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 26 Konzept der Unterbrechungen II I mit Unterbrechungen I Arbeitsweise 1. Prozessor stösst Tätigkeit eines Gerätes an 2. Gerät arbeitet relativ selbständig und parallel zum Prozessor, der andere Arbeiten wahrnimmt 3. am Ende der Tätigkeit meldet sich das Gerät beim Prozessor mit einer Unterbrechung I besseres Leistungsverhalten I Prozessor und Peripheriegeräte können zeitlich überlappend arbeiten I Unterbrechungskonzept verbessert Synchronisation zwischen Prozessor und Gerät 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 27 Konzept der Unterbrechungen III Unterbrechung I I interrupt Signal, das I I Befehlszyklus des Prozessors abändert bzw. unterbricht und Befehlszyklus an spezifizierter Stelle fortführt I Unterbrechung wird durch Eintreten eines speziellen Ereignisses ausgelöst I Ereignisursache in Software oder Hardware grobe Unterbrechungsklassifikation nach Ereignisursache I I I I Programmbezogene Unterbrechungen Systembezogene Unterbrechungen Maschinenfehler 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 28 Konzept der Unterbrechungen IV Programmbezogene Unterbrechungen I der in Ausführung befindliche Befehl löst Unterbrechung aus I I I I Unterbrechung trifft Verursacher synchrone oder interne Unterbrechungen exceptions Unterbrechungsursachen sind u. a. I I I I arithmetische Fehler (bspw. Division durch Null, Überlauf) Adressenfehler (bspw. Zugriff auf nicht installierten Speicher, fehlende Rechte) falsche Befehle (bspw. privilegierter Befehl im Anwenderzustand) Spezialbefehle zum Einleiten von Systemaufrufen 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 29 Konzept der Unterbrechungen V Systembezogene Unterbrechungen I Unterbrechungsursache liegt außerhalb der Prozessoraktivität I Unterbrechungsquelle ist ein relativ selbständig arbeitendes Gerät I Unterbrechung trifft das zufällig laufende Programm ⇒ asynchrone oder externe Unterbrechung Beispiele: I I I I Zeitgeberunterbrechungen E/A-Unterbrechungen Prozessoranrufe 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 30 Konzept der Unterbrechungen VI Laden Zeitgeber Prozessor Starten Prozessor Gerät Anrufen Prozessor 1 Prozessor 2 Anrufen 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 31 Konzept der Unterbrechungen VII Maschinenfehler I Beispiel: I I I Abarbeitung von Unterbrechungen unterschieden wird zwischen I I I I Ausfälle einzelner Hardware-Komponenten Anforderung (request) einer Unterbrechung Annahme einer Unterbrechung mit Eintreten des Unterbrechungsereignises wird Unterbrechung angefordert abhängig vom Prozessorzustand kann Unterbrechung I I erlaubt (enabled) oder verboten (disabled) sein 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 32 Konzept der Unterbrechungen VIII Abarbeitung von Unterbrechungen I I I ist Unterbrechung angefordert und erlaubt, dann kann sie angenommen werden ist Unterbrechung angefordert und verboten, dann bleibt sie anstehend (pending) bis Erlaubnis erteilt wird I ⇒ Maskieren von Unterbrechungen I ⇒ Unterbrechungssperren Unterbrechungsannahme kann erfolgen, wenn 1. eine erlaubte Unterbrechung angefordert wird 2. eine anstehende Unterbrechung erlaubt wird I es können zu einem Zeitpunkt mehrere Unterbrechungen anstehen I es kann jedoch zu einem Zeitpukt nur eine erlaubte, anstehende Unterbrechung angenommen werden 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 33 Konzept der Unterbrechungen IX Abarbeitung von Unterbrechungen I Reihenfolge der Annahme ist exakt festgelegt (i. d. R. durch Prioritäten) I nach Unterbrechungsannahme wird Unterbrechungsbehandlung (interrupt handling) durchgeführt I u. a. durch Unterbrechungsbehandlungsprozeduren (interrupt service routines); sind Teil des Betriebssystems I nach Unterbrechungsbehandlung soll i. d. R. an oder nach der Unterbrechungsstelle fortgefahren werden Unterbrechung führt zu erzwungenem Unterprogrammaufruf I I I nicht immer explizit programmiert nicht immer vorausgeplant 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 34 Konzept der Unterbrechungen X Unterbrechungsanforderung gesetzt ? ja nein Unterbrechung erlaubt ? Unterbrechung anstehend nein ja Unterbrechung angenommen IC und ggf. andere Register retten Unterbrechungsinformation laden IC und ggf. andere Register laden neuen Befehlszyklus beginnen nächsten Befehl ausführen 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 35 Konzept der Unterbrechungen XI Ablauf bei Unterbrechungsannahme I IC, PSW (Prozessorstatuswort) und andere ggf. verwendete Register retten I Unterbrechungsinformation laden I I I I I I bei Unterbrechungsanalyse muss genaue Ursache/Art der Unterbrechung festgestellt werden können mit Hilfe der Unterbrechungsinformation wird dann entschieden, welche Unterroutine aufgerufen wird mögliche Unterbrechungsinformationsquellen: Unterbrechungsnummer aus Befehlskodierung ableitbar (z. B. immediater Operand des Systemaufruf-Befehls) Unterbrechungsnummer implizit bekannt (welche Unterbrechung wird gerade angenommen?) Gerätenummer liegt am Bus an (liefert Unterbrechungsquelle bei externer Unterbrechung) 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 36 Konzept der Unterbrechungen XII Ablauf bei Unterbrechungsannahme (Fortsetzung) I Unterbrechungsinformationen laden I I I I I I Information über Ursache ist Index in Sprungtabelle ⇒ sog. Tabelle von Unterbrechungsvektoren liegt oft an fester, bekannter Adresse im Hauptspeicher besitzt eine Tabellenzeile pro Unterbrechung liefert Information, wo sich zugehörige Unterbrechungsbehandlungsroutine im Hautspeicher befindet IC mit neuer Adresse aus Unterbrechungsvektor und andere ggf. benötigte Register laden (z.B. verändertes PSW) (anschließend Einmündung in „normalen Befehlszyklus“) spezieller Befehl für Rückkehr an die Unterbrechungsstelle inkl. Reinstallation alter Werte des IC, PSW und anderer ggf. verwendeter Register I RETURN_FROM_INTERRUPT, RTI I Effekt etwa invers zum Ablauf der Unterbrechungsannahme 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 37 Konzept der Unterbrechungen XIII Ablauf bei Unterbrechungsannahme (Fortsetzung) I wird Unterbrechung angenommen, dann müssen i. d. R. alle weiteren Unterbrechungen ausgeschlossen werden ⇒ Modifikation des PSW bzw. UER (Unterbrechungserlaubnisregister) I u. U. können höher priorisierte Unterbrechungen weiter zugelassen werden ⇒ keller-artige Unterbrechungsbehandlung I Unterbrechungsbehandlung muss schnell sein I besonders wichtig bei Echtzeitbetrieb I Unterbrechungsannahme i. d. R. nur am Ende eines Befehlszyklus möglich I der der Annahme vorausgehende Befehl kann I abgeschlossen sein (mit definiertem Effekt) ⇒ häufig bei systembezogenen I I Unterbrechungen abgebrochen sein (mit undefiniertem Effekt) unterdrückt sein (ohne Effekt) ⇒ Befehl muss wiederholt werden 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 38 Konzept der Unterbrechungen XIV Beispielimplementierung des Unterbrechungsmechanismus I Unterbrechungsanforderungsregister IRR I I zeigt an, welche Unterbrechungen angefordert sind jedem Unterbrechungsereignis ist ein Bit im IRR zugeordnet I I I I I 1 ↔ TRUE : Unterbrechung angefordert 0 ↔ FALSE : Unterbrechung nicht angefordert Bits im IRR werden von Hardware gesetzt Bits können von Software zurückgesetzt werden Unterbrechungserlaubnisregister IER I I zeigt an, welche Unterbrechungen erlaubt sind jedem Unterbrechungsereignis ist Bit im IER zugeordnet I I I 1 ↔ TRUE : Unterbrechung erlaubt 0 ↔ FALSE : Unterbrechung nicht erlaubt Bits im IER werden software-mäßig mit privilegiertem Befehl gesetzt 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 39 Konzept der Unterbrechungen XV Beispielimplementierung des Unterbrechungsmechanismus I bei Prüfung, ob Unterbrechung angenommen werden soll, werden Inhalte der Register verglichen Inhalte der Register verglichen I IRR ... 1 ... 1 ... 0 ... 0 ... IER ... 0 ... 1 ... 1 ... 0 ... Beispielcode: IF SOME itr IN register_bitsize WHICH IRR[itr] AND IER[itr] THEN Unterbrechung itr angenommen; weitere Aktionen ...; END; 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 40 Konzept der Unterbrechungen XVI Besondere Anwendung von Unterbrechungen I Spezialbefehle ⇒ Systemaufrufe (system calls) I ermöglichen einen Wechsel von nieder- in höherprivilegierten Zustand I dadurch wird u. a. ermöglicht, Benutzern Dienste des Betriebssystems verfügbar zu machen Befehle dieser Art I TRAP bei Motorola 680x0 I INT bei Intel 80x86 I SUPERVISOR_CALL (SVC) bei IBM- und Siemens-Systemen I 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 41 Betriebsarten I Welche sog. Betriebsarten (processing modes) kann ein Betriebssystem unterstützen? Klassifizierungskriterien für Betriebsarten I Systemumgebung und ihrer Aufgabenstellung I I I I Benutzeranzahl I I I Stapelbetrieb interaktiver Betrieb Echtzeitbetrieb Einbenutzerbetrieb Mehrbenutzerbetrieb (Teilnehmerbetrieb) Eingriffsmöglichkeiten des Benutzers I I Off-Line-Betrieb On-Line-Betrieb 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 42 Betriebsarten II Klassifizierungskriterien für Betriebsarten I Programmierbarkeit des Systems durch den Benutzer I I I Programm-/Speicherorganisation I I I frei programmierbar nicht programmierbar Einprogrammbetrieb Mehrprogrammbetrieb Programm-/Prozessororganisation I Time-Sharing-Betrieb 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 43 Betriebsarten III Stapelbetrieb I batch processing I traditionelle Betriebsart I gut bei verarbeitungs- und datenintensiven Aufgaben I I Ablauf: I I I Anforderungen an das System werden zusammenhängend als Auftrag (task) eingegeben Abarbeitung „am Stück“ ohne weitere Einflussnahme von außen mögliche Bestandteile eines Auftrags: I I I I Stapelbetrieb soll hohe Auslastung der Komponenten und großen Durchsatz erreichen Programme Daten Steueranweisungen Eingaben bei Stapelbetrieb I I früher: Lochkartenstapel heute: Kommandodatei 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 44 Betriebsarten IV Interaktiver Betrieb I interactive processing I oder: Dialogbetrieb I Interaktiver Betrieb soll kurze Antwortzeiten (response time) und hohe Verfügbarkeit gewährleisten. I Ausführung einer Aufgabe besteht aus Folge von Interaktionszyklen I Definition einer Teilaufgabe durch den Benutzer, Antwort des Systems Folge: Benutzer kann auf Ablauf der Auftragsbearbeitung Einfluss nehmen Echtzeitbetrieb I real time processing I Anwendung I I I I I Steuerung technischer Prozesse Anforderung auf asynchron anfallende Daten muss innerhalb eines vorgegebenen Zeitintervalls reagiert werden Verspätungen können katastrophale Folgen haben 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 45 Betriebsarten V Einbenutzerbetrieb I single user mode I nur ein Benutzer arbeitet mit dem Betriebssystem I Beispiele: DOS-Betriebssysteme, (Windows) Mehrbenutzerbetrieb I multi-user mode I auch: Teilnehmerbetrieb I mehrere Benutzer teilen sich die Betriebsmittel (z. B. Speicher, Festplatte) I Beispiele: BS für Großrechner, Unix Off-Line-Betrieb I keine Eingriffsmöglichkeit für Benutzer während der Auftragsbearbeitung I Beispiel: Stapelverarbeitung 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 46 Betriebsarten VI On-Line-Betrieb I System ist interaktionsfähig I Beispiele: WINDOWS-Betriebssysteme, MAC-OS, Unix freie Programmierbarkeit I user programmable I Benutzer darf eigene Programme schreiben und anwenden I Beispiel: PC-Betriebssysteme keine Programmierbarkeit I non-programmable I Benutzer darf nur bestehende Programme anwenden I Beispiele: KFZ-Bereich 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 47 Betriebsarten VII Einprogrammbetrieb I I I uniprogramming es befindet sich maximal ein Benutzerprogramm zur Ausführung im Hauptspeicher Beispiel: MS-DOS Mehrprogrammbetrieb I I I multiprogramming es können mehrere ausführbare Benutzerprogramme im Hauptspeicher sein Beispiele: WINDOWS-Betriebssysteme, Unix, MAC-OS Time-Sharing-Betrieb I I I Prozessor arbeitet im Multiplexbetrieb mehrere Programme werden abwechselnd stückweise ausgeführt Beispiele: Großrechnerbetriebssysteme, Unix, Windows 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 48 Beispiel I Entwurf/Eingabe der Architektur mit SOPC2 Builder I Vereinfacht den Entwurfsprozess eines Systems stark I Steuerung eines Roboterarms, BS notwendig? 2 system-on-a-programmable-chip 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 49 Zusammenfassung und Ausblick I Betriebssysteme I I Einführung I Unterbrechungen Nächste Vorlesung behandelt I Betriebssysteme II I Prozesskonzept, Semaphore 25. Januar 2011 | Technische Universität Darmstadt | Dr.-Ing. Wolfgang Heenes | 50