Betriebssysteme ws2000/2001 VL Betriebssysteme I Operating Systems I Neuer Studienplan gelesen von Dr. Horst D. Clausen SS 2001 Prof. Dr. H. D. Clausen - unisal 1 Literatur • Silberschatz, Galvin „Operating System Concepts“, 5-th ed. Addison Wesley • A.S. Tanenbaum, „Operating Systems - Design and Implementation“ (Minix), Prentice-Hall • C. Crowley, Operating Systems - A Design Oriented Approach, Irwin-Times Mirror • H.-J. Siegert, U. Baumgarten, Betriebssysteme, Oldenbourg, 1998 • R. Brause, „Betriebssysteme - Grundlagen und Konzepte“, Springer-Verlag, 1998 • G. Weck, „Prinzipien und Realisierung von Betriebssystemen“, B.G.Teubner 1989 (Sicherheit –Referenzmonitor) SS 2001 Prof. H. D. Clausen Prof. Dr. H. D. Clausen - unisal 2 1 Betriebssysteme ws2000/2001 Termine & Zeiten • Di 8:15 - 10:00 (mit Pause) • Proseminar: – zwei Gruppen (@ 25) SS 2001 Prof. Dr. H. D. Clausen - unisal 3 1. Einführung 1.1 Grundlagen SS 2001 Prof. H. D. Clausen Prof. Dr. H. D. Clausen - unisal 4 2 Betriebssysteme ws2000/2001 Systemkonfiguration Massenspeicher Tape Drucker controller controller Terminal controller controller bus netw.interf. controller CPU Speicher LAN SS 2001 Prof. Dr. H. D. Clausen - unisal 5 Softwarekonfiguration Benutzer (user) Applikationssoftware Systemsoftware Betriebssystem (Kern) Hardware SS 2001 Prof. H. D. Clausen Prof. Dr. H. D. Clausen - unisal 6 3 Betriebssysteme ws2000/2001 Rechnerarchitektur - I Die einfachste Systemstruktur der ersten Rechner Memory CPU SS 2001 Periph. Gerät Periph. Gerät I/O Prof. Dr. H. D. Clausen - unisal 7 Rechnerkomponenten • Leitungen (Bus): Busbreite (8/16/32/64 bit) – control/status - Kommandos, Statusanzeigen – address - Adressen – data - Datenleitungen • Speicher (memory): Zellengröße(8/16/32/64 bit) – access control unit - Zugriffskontrolle – organization (segments, pages) -Speicherorganisation – (register file - Registersatz) • Zentralprozessor (CPU) – ALU - arithmet. - logische Funktionseinheit – PSW, IR and control unit - Programmstatuswort, Befehlszähler Ablaufsteuerung, – accumulators, registers - Register, (Registersatz) – interrupts, SW and HW - Unterbrechungen SS 2001 Prof. H. D. Clausen Prof. Dr. H. D. Clausen - unisal 8 4 Betriebssysteme ws2000/2001 Rechnerarchitektur - II Systemstruktur mit getrennter Ein-/Ausgabeeinheit (Kanal) memory Direkter Speicherzugriff CPU SS 2001 access ctrl Periph. Gerät Periph. Gerät DMA interrupt I/O I/O-bus Prof. Dr. H. D. Clausen - unisal 9 Rechnerarchitektur - III Memory Zentraler Bus CPU SS 2001 Prof. H. D. Clausen Periph. Gerät Periph. Gerät access ctrl I/O ctrl Prof. Dr. H. D. Clausen - unisal 10 5 Betriebssysteme ws2000/2001 Rechnerarchitektur ENIAC Memory Data - Instr. Daten Rechnen ALU Befehle ControlU. I/O SS 2001 Ein gemeinsamer physischer Speicher mit logischer Unterscheidung von Daten und Befehlen. Steuern Ein-/Ausgabe Prof. Dr. H. D. Clausen - unisal 11 1. Einführung 1.2 Geschichte und Geschichten SS 2001 Prof. H. D. Clausen Prof. Dr. H. D. Clausen - unisal 12 6 Betriebssysteme ws2000/2001 ENIAC und EDVAC Wurden von John Mauchley und J. Presper Eckert erfunden und auch gebaut ! SS 2001 Prof. Dr. H. D. Clausen - unisal 13 ENIAC Architektur und ihre Abstraktion „von Neumann* Maschine“ Speicherwerk Eingabewerk Steuerwerk Ausgabewerk Rechenwerk * John von Neumann veröffentlichte eine Beschreibung dieses Systems aber ohne die eigentlichen Erfinder zu benennen – Dieses Konzept wurde erstmals von Eckert und Mauchley in Form der ENIAC gebaut – lange vor von-Neumann ! SS 2001 Prof. H. D. Clausen Prof. Dr. H. D. Clausen - unisal 14 7 Betriebssysteme ws2000/2001 „von Neumann Architektur“ Speicher enthält: Adresse (nächste r Befehl) • Daten und • Programme Daten (Ergebnis) Instruktion (Befehl) Steuerwerk Daten Rechenwerk Kontrollsignale NICHT von Herrn von Neumann erfunden sondern nur beschrieben und als abstraktes Konzept vorgestellt! SS 2001 Prof. Dr. H. D. Clausen - unisal 15 von Neumann Architektur (SISD) Adresse (nächster Befehl) Speicher Mp enthält: D Daten • Daten und • Programme I Programmzähler PC Befehle/ Instruktionen Befehlsregister IR FC Funktionscode SS 2001 Prof. H. D. Clausen Rechenwerk ALU Prof. Dr. H. D. Clausen - unisal Mod Operand Modifier Adresse, direkter Operand 16 8 Betriebssysteme ws2000/2001 Fetch-Execute Zyklus REPEAT IR := Mp[PC]; PC := PC+1 Execute (IR); Behandlung von Sprungbefehlen IF (FC == JpClass) THEN PC := Operand END_IF; UNTIL cpu_HALT; SS 2001 Prof. Dr. H. D. Clausen - unisal 17 Interrupt Mechanismus IR := Mp[PC] IF (FC == JpClass): yes no PC := Operand Execute (IR); PC := PC+1 Interrupt save PC; PC := i-Loc SS 2001 Prof. H. D. Clausen Prof. Dr. H. D. Clausen - unisal 18 9 Betriebssysteme ws2000/2001 Unterbrechungen • Interrupts werden durch externe Signale ausgelöst • Traps (Software Interrupts) werden hingegen intern durch Instruktionen ausgelöst um z.B. einen Prozesswechsel einzuleiten • beide Arten der Unterbrechung bewirken die Fortsetzung der Programmausführung an einer von der Hardware festgelegten Adresse (Interrupt Vektor) - IRQ • eine wesentliche Komponente des Betriebssystems ist die Behandlung von Unterbrechungen SS 2001 Prof. Dr. H. D. Clausen - unisal 19 Frühe Entwicklung - Elektron. Computer • USA – – – – ENIAC EDVAC BINAC • UK J.v.Neumann veröffentlicht den „First Draft“ für EDVAC ohne die Erfinder zu nennen ! UNIVAC • D – (COLOSSUS) – Zuse – EDSAC – Manchester – Z3 – PERM » IBM Entstehen einer neuen Industrie: UNIVAC, IBM, Honeywell, Control Data, Burroughs, Digital Equipment, ..... SS 2001 Prof. H. D. Clausen ICT, Elliot, Marconi ..... Prof. Dr. H. D. Clausen - unisal Zuse, Siemens, Telefunken, ..... 20 10 Betriebssysteme ws2000/2001 Frühe Programmierung • Benutzung der „nackten Maschine“ (bare machine) • häufig verwendete Befehlssequenzen werden als „Unterprogramme“ (subroutines) zusammengefasst • Häufig verwendete Unterprogramme werden in einer Bibliothek zusammengefasst • Anwendungsprogramme werden zunehmend in einer symbolischen Notation geschrieben -> Assembler • die Verwaltung des Adressraums wird durch symbolische Namen bei der Übersetzung erleichtert SS 2001 Prof. Dr. H. D. Clausen - unisal 21 Frühe Programmierung • Binden (linkage edit) und Laden werden durch eigene Programme erledigt. (linkage editor, loader) • Ablauf wird von einem „Monitor“ Programm (Exec) überwacht und notfalls beendet. • Weitere Dienstprogramme (utilities) werden bereitgestellt: Editor, Compiler, Sortierprogramm • mittels Steuerkarten und „Job Control Language“ (JCL) kann der Ablauf des Jobs gesteuert werden • alle Systemprogramme zusammen ergeben die Betriebssoftware und die unteren, maschinen-nahen Schichten das Betriebssystem SS 2001 Prof. H. D. Clausen Prof. Dr. H. D. Clausen - unisal 22 11 Betriebssysteme ws2000/2001 Colossus SS 2001 Prof. Dr. H. D. Clausen - unisal 23 Manchester „baby machine“ 1948/49 SS 2001 Prof. H. D. Clausen Prof. Dr. H. D. Clausen - unisal 24 12 Betriebssysteme ws2000/2001 Manchester „Mark I“ 1951 (A. Turing and 2 Ferranti engineers) SS 2001 Prof. Dr. H. D. Clausen - unisal 25 SS 2001 Prof. Dr. H. D. Clausen - unisal 26 Prof. H. D. Clausen 13 Betriebssysteme ws2000/2001 CDC 6638 disk drive upper positioner motor motor lower positioner SS 2001 Prof. Dr. H. D. Clausen - unisal 27 1. Einführung 1.3 Hardware, Software, Bootstrap SS 2001 Prof. H. D. Clausen Prof. Dr. H. D. Clausen - unisal 28 14 Betriebssysteme ws2000/2001 Softwarestruktur Software 32 k Daten Adressraum Programm 0 Systemprogramme/Treiber Software/ HardwareSchnittstelle Hardware SS 2001 Prof. Dr. H. D. Clausen - unisal 29 Grobstruktur eines Computer Systems Nutzer Schnittstelle user interface Anwenderprogramme - applications POSIX Betriebssystem-Schnittstelle (API) - system calls Betriebssystem - operating system Hardware Schnittstelle - machine interface hardware SS 2001 Prof. H. D. Clausen Prof. Dr. H. D. Clausen - unisal 30 15 Betriebssysteme ws2000/2001 Aufgaben eines Betriebssystems • Bereitstellung und Handhabung des Zugriffs auf die System Hardware • Isolation des Anwenderprogramms von der speziellen Hardware • Organisation des Systems • Verwaltung der Betriebsmittel (Ressourcen resources) • Bereitstellung von abstrahierten Funktionen (logische oder „virtuelle“ Funktionen) SS 2001 Prof. Dr. H. D. Clausen - unisal 31 Funktionen des Betriebssystems • Zwei unterschiedliche Betrachtungsweisen • „top down“ - Bereitstellung einer „virtuellen Maschine“ für den Anwender/Programmierer – Systemschnittstelle = „system calls“ (Systemaufrufe) Ø Prozessverwaltung, Dateiverwaltung, Signale, Directory and Filesystem, Schutz und Sicherheit, Zeitüberwachung – POSIX Standard (IEEE Systemschnittstelle für Unix +) • „bottom up“ Verwaltung, Betrieb und Koordination der einzelnen Ressourcen (Betriebsmittel) des Systems – Hardware Einrichtungen Ø CPU, Speicher, I/O Kanäle, Periphere Geräte – Software Einrichtungen Ø SS 2001 Prof. H. D. Clausen Prozesse, Dateien (files) Prof. Dr. H. D. Clausen - unisal 32 16 Betriebssysteme ws2000/2001 Frage: • Wie kommt die Software in den Speicher • Wie wird die Ausführung eines Programms gestartet • Dieser Vorgang wird bezeichnet als: – Urstart – Coldstart – Deadstart – Bootstrap • Dieser Vorgang muss durch die Hardware des Rechners unterstütz werden. SS 2001 Prof. Dr. H. D. Clausen - unisal 33 Urlader - Bootstrap Loader Aufgabe: ein Monitor Programm in den Arbeitsspeicher laden und dann starten. Dieser Prozess wird auch als „deadstart“, „coldstart“, „bootstrap“ bezeichnet. Er muss von der Hardware durch einen fest verdrahteten Urlader unterstützt werden. Press_Load: for (i = 0; i<80; i++) DO { Read(Mp[i]); } goto (M[0]); SS 2001 Prof. H. D. Clausen Prof. Dr. H. D. Clausen - unisal 34 17 Betriebssysteme ws2000/2001 SS 2001 Prof. Dr. H. D. Clausen - unisal 1 1 35 Schalter 0 25: 4 68 1 1 0 68 1 1 Oktaler Wert 1 0 0 0 1 48 JMP 7 1 0 1 0 58 28 & 25 Oktaler Wert Befehl Springe nach Adr.25 68 JMP SS 2001 Prof. H. D. Clausen W( 25) Prof. Dr. H. D. Clausen - unisal Springe nach Inhalt von Adr.25 (4711) 36 18 Betriebssysteme ws2000/2001 SS 2001 Prof. Dr. H. D. Clausen - unisal 37 Bootstrap In der zweiten Phase kann dieses Minimalprogramm jetzt einen grösseres Programm einlesen - z.B. einen mächtigeren Lader oder bereits den Kern des Monitors 0 1 LA n 79 Absoluter Code (Programm/Daten) Ladeadresse LOOP: for (i = 0; i<80; i++) DO Read(Mp[r+i]); ; LA = Mp[r]; n = Mp[r+1]; if (n==0) goto (LA); for (i = 0; i<n; i++) DO Mp[LA+i] = Mp[r+2+i]; SS 2001 Prof. H. D. Clausen Prof. Dr. H. D. Clausen - unisal 38 19 Betriebssysteme ws2000/2001 Bootstrap 0 1 79 LA1 n1 Absoluter Code (Programm/Daten) LA2 n2 Absoluter Code (Programm/Daten) LA3 n3 Absoluter Code (Programm/Daten) .. .. E_A 0 ...... Entry Adresse = Einsprungpunkt SS 2001 Prof. Dr. H. D. Clausen - unisal 39 Bootstrap Loader I Aufgabe: ein Monitor Programm bzw. Betriebssystem in den Arbeitsspeicher laden und dann starten. Beim Start wird von einem HW Programm (ROM) der erste Sektor der Boot Disk gelesen und in den Speicher geschrieben. Dann wird diese Programm gestartet. Es liest das eigentliche Boot-Programm ein und legt es im Speicher ab. Anschliessend wird das BootProgramm gestartet. Es liest dann das Betriebssystem ein, legt es im Speicher ab und ihm wird zuletzt die Kontrolle übergeben. SS 2001 Prof. H. D. Clausen Prof. Dr. H. D. Clausen - unisal 40 20 Betriebssysteme ws2000/2001 Bootstrap Loader II 3-stufiger Ablauf Betriebssystem SS 2001 Speicher Prof. Dr. H. D. Clausen - unisal 41 Bootstrap Loader III 1 2 Beim Start wird von einem HW Programm (ROM) der erste Sektor der Boot Disk gelesen in dem die Partition Table steht und dann der Bootblock der aktiven Partition. 3 Die weiteren Schritte laufen dann ab wie beim Booten von einer nicht partitionierten Disk. SS 2001 Prof. H. D. Clausen Prof. Dr. H. D. Clausen - unisal 42 21 Betriebssysteme ws2000/2001 1. Einführung 1.4 System-Software SS 2001 Prof. Dr. H. D. Clausen - unisal 43 Speicheraufteilung - 1. Generation User Space Übersetzer, Binder, Lader, Programme (temporär geladen) Monitor (permanent geladen) SS 2001 Prof. H. D. Clausen Prof. Dr. H. D. Clausen - unisal 44 22 Betriebssysteme ws2000/2001 Einfache Batch Systeme Speicheraufteilung Freier Speicher Benutzerprogramm Executive System SS 2001 Programmcode und Datenbereiche Rudimentäres Betriebs- system (Monitor, Exec) Prof. Dr. H. D. Clausen - unisal 45 Arbeitsablauf eines „Auftrags“ (job) • Anwendungsprogramm liegt in symbolischer Maschinensprache (assembler) vor; die Lage des Programms und aller Standardprozeduren im Arbeitsspeicher sind festgelegt. • Das Programm und die benötigten Daten liegen auf Datenträger (Lochkarte, Lochstreifen) vor. • Zur festgelegten Blockzeit übernimmt der Benutzer die Rechenanlage und lädt den Assembler von einem externen Datenträger (Lochstreifen, Magnetband) ab einer festgelegten Adresse in den Arbeitsspeicher; SS 2001 Prof. H. D. Clausen Prof. Dr. H. D. Clausen - unisal 46 23 Betriebssysteme ws2000/2001 Job Abwicklung - 1 Quellcode (source) Übersetzer, z.B. cpp (temporär geladen) Objektcode (object) Monitor (permanent geladen) SS 2001 Prof. Dr. H. D. Clausen - unisal 47 Job Abwicklung - 2 Objektcode (.obj) Binder z.B. make (temporär geladen) Ausführbarer Code (.exe) Monitor (permanent geladen) SS 2001 Prof. H. D. Clausen Prof. Dr. H. D. Clausen - unisal 48 24 Betriebssysteme ws2000/2001 Arbeitsablauf eines „Auftrags“ (job) • Anschliessend wird das zu übersetzende Programm in den Leser gelegt und der Assembler an einer wohlbekannten, festgelegten Adresse gestartet. • das (hoffentlich fehlerfreie) Programm wird in Maschinencode (object code) übersetzt, der auf Lochstreifen oder Magnetband ausgegeben wird. • der Datenträger mit den benötigten Standardprozeduren wird aus der Programmbibliothek entnommen und die einzelnen Prozeduren werden an die vorher festgelegten Adressen geladen; SS 2001 Prof. Dr. H. D. Clausen - unisal 49 Job Abwicklung - 3 Lader [loader] Ausführbarer Code (.exe) Programm Monitor (permanent geladen) SS 2001 Prof. H. D. Clausen Prof. Dr. H. D. Clausen - unisal 50 25 Betriebssysteme ws2000/2001 Job Abwicklung - 4 Lader [loader] Daten (.dat, .txt) Programm Ergebnisse (.txt) Monitor (permanent geladen) SS 2001 Drucker Prof. Dr. H. D. Clausen - unisal 51 Arbeitsablauf für einen „Auftrag“ (job) -2 • anschliessend wird der Objektcode des Programms dazugeladen. Damit ist der Binde- und Ladeprozess beendet. • Jetzt werden die Daten für das Programm in den Leser gelegt und anschliessend das Programm am vorher festgelegten Einsprungpunkt (entry point) gestartet. • *** jetzt beginn der eigentliche Lauf *** SS 2001 Prof. H. D. Clausen Prof. Dr. H. D. Clausen - unisal 52 26 Betriebssysteme ws2000/2001 „Stacked Job“ - Stapelverarbeitung Daten (Loader) Programm Systemaufrufe (systems calls) „Monitor“, Exec, Bibliotheksprogramme Hardware SS 2001 Prof. Dr. H. D. Clausen - unisal 53 Ausführung eines Auftrags Formulierung des Auftrags in einer Art Programmiersprache (Job Control Language - JCL, Kommandosprache) REPEAT Read_Card_Deck(); Compile(); Link(); JCL Interpreter (Shell) Load() Execute(); Print_Results(); UNITL cpu_HALT; SS 2001 Prof. H. D. Clausen Prof. Dr. H. D. Clausen - unisal Betriebssystem (Monitor, Exec) 54 27 Betriebssysteme ws2000/2001 Beispiel für die JCL (Job Control Language) $JOB user_spec ; identify the user for accounting purposes $FORTRAN ; load the FORTRAN compiler source program cards $LOAD ; load the compiled program $RUN ; run the program data cards $EOJ ; end of job $JOB user_spec $LOAD application $RUN data $EOJ SS 2001 ; identify a new user Prof. Dr. H. D. Clausen - unisal 55 Kartendeck für einen Job (Auftrag) SS 2001 Prof. H. D. Clausen Prof. Dr. H. D. Clausen - unisal 56 28 Betriebssysteme ws2000/2001 „Spooling“ Plattenspeicher Kopie des Kartendecks Kopie der Ausgabe Kartendeck Eingabe Rechner Ausgabe Ausgabe (printout) SS 2001 Prof. Dr. H. D. Clausen - unisal 57 Speicheraufteilung - 1. Generation User Space Übersetzer, Binder, Lader, Programme (temporär geladen) Monitor (permanent geladen) SS 2001 Prof. H. D. Clausen Prof. Dr. H. D. Clausen - unisal 58 29 Betriebssysteme ws2000/2001 Softwarestruktur 3. Generation „partition“ Benutzer_n „partition“ User Space aufgeteilt in einzelne Bereiche Benutzer_2 „partition“ Benutzer_1 Betriebssystem (permanent geladen) SS 2001 Prof. Dr. H. D. Clausen - unisal 59 Typen von Betriebssystemen • • • • • • • • • • SS 2001 Prof. H. D. Clausen Einfache Batch Systeme (Stapelverarbeitung) Multiprogramming Systeme Timesharing Systeme Workstation / PC Systeme Mehrprozessor-/Parallelsysteme Echtzeitsysteme (Real Time) Prozessrechner (Process Control) Embedded Systems Signalverarbeitungssysteme Verteilte Systeme Prof. Dr. H. D. Clausen - unisal 60 30 Betriebssysteme ws2000/2001 Betriebssysteme • „stacked batch jobs“ -Mitte 50-er bis Mitte 60-er – einzelne Aufträge werden in einem Stapel angeordnet und der Reihe nach abgearbeitet • „spooling batch systems“-Mitte 60-er bis Ende 70-er – einzelne Aufträge werden in einem Stapel angeordnet und der Reihe nach eingelesen und auf dem Massenspeicher abgelegt; der „scheduler“ wählt die einzelnen Aufträge zur Verarbeitung aus • Multiprogramming Systeme - seit Mitte 60-er bis ... – mehrere Aufträge werden quasi-simultan verarbeitet. – Spezielle Form: Multitasking/Multiprocessing • Timesharing Systeme - seit Mitte der 70-er bis ... – mehrere Aufträge werden quasi-simultan verarbeitet wobei Aufträge unterbrochen, ausgelagert und nach Prioritäten gereiht werden können SS 2001 Prof. Dr. H. D. Clausen - unisal 61 Ende Klassifizierung SS 2001 Prof. H. D. Clausen Prof. Dr. H. D. Clausen - unisal 62 31