Betriebssysteme Folie 2 - 1 2 Grundbegriffe • Betriebsmittel: alle Komponenten eines Rechners, die zur Ausführung eines Programms erforderlich sind • − Zentraleinheit, − Speicher, − Ein- / Ausgabegeräte, − Programme, − Dateien, − Kontrollblöcke, usw. Komponenten eines Rechners Rechner Hardware Zentraleinheit Software Systemsoftware Hauptspeicher Betriebssystem Prozeßverwaltung Speicherverwaltung Geräteverwaltung ... Programmentwicklungssystem Übersetzungsprogramme Binder Lader ... Datenbanksystem ... externer Speicher Magnetplattenspeicher optischer Plattenspeicher Magnetbänder ... Peripherie Sichtgeräte Drucker Plotter Mikrofilmausgabegeräte Belegleser ... Rechnernetzanschlüsse ... Anwendungssoftware techn./wiss. Programme kommerzielle Programme Branchenprogramme ... Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme Folie 2 - 2 2.1 Komponenten des Betriebssystems • • • • Unterbrechungsbehandlung − Ablauf einer Zeiteinheit, − Ende einer Ein- / Ausgabeoperation, − Anforderung eines Systemdienstes durch das Programm, − Division durch Null, usw. Prozeßverwaltung − Zuteilung des Prozessors, − steuert und überwacht Datenaustausch zwischen Programmen Hauptspeicherverwaltung − Zuordnung des Hauptspeichers zu den Prozessen, − Speicherschutz Dateiverwaltungssystem − • • Verwaltung der externen Speichermedien Ein- /Ausgabeverwaltung (Geräteverwaltung) − Zuordnung der Geräte zu den Prozessen, − steuert Datentransfer zwischen Gerät und Prozeß Dienstprogramme − Kommandosprachen-Interpreter, − Abrechnungsverwaltung, − Benutzerverwaltung, usw. Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme Folie 2 - 3 2.2 Speicherung / Generierung des Betriebssystems • • Betriebssystem ist auf viele Dateien aufgeteilt − Quellcode i.a. in Assembler und höherer Programmiersprache, − Objektcode wird in Systembibliotheken abgelegt Generierung eines Betriebssystems − erforderlich, da es kein universelles Betriebssystem gibt, − abhängig von Hardware-Konfiguration, − u.U. abhängig von aktuellem Einsatzgebiet, − u.U. abhängig von der Organisation des Rechenzentrums ⇒ Zusammenstellung der erforderlichen Betriebssystemteile für das spezifische System ⇒ Systemgenerierung ⇒ ♦ Steuerung durch Konfigurationsdateien ♦ residenter Betriebssystemkern ⋅ ständig im Hauptspeicher, ⋅ enthält die Basisfunktionen, die ständig zur Verfügung stehen müssen (Verwaltung der Uhren, Prozeßverwaltung, Geräteverwaltung, usw.) ♦ auslagerbare (nachladbare) Betriebssystemprogramme ⋅ seltener benutzte Routinen, die bei Bedarf nachgeladen werden (z.B. Teile der Dateiverwaltung) Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme Folie 2 - 4 2.3 Laden des Betriebssystems • erfolgt beim Systemstart (Urladen) − früher: Eingabe eines kleinen Programms über Schalter, das ein Ladeprogramm einlesen konnte, das dann das Betriebssystem geladen hat − heute: automatisch, da sich der Urlader zusammen mit anderen Programmen (z.B. zum Testen der Hardware) in einem nicht-flüchtigen Speicher des Rechners befindet • der Urlader lädt ein Ladeprogramm aus dem Bootblock des Gerätes, das seinerseits das Betriebssystem lädt • Initialisierung der Hardware • Initialisierung der Systemtabellen • Aktivierung aller erforderlichen Systemprozesse ⇒ Benutzer erhält Eingabeaufforderung • Systemstart dauert zwischen einigen Sekunden und einigen Minuten (abhängig vom Betriebssystem, der Anzahl Tests, usw.) Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme Folie 2 - 5 2.3.1 Starten eines MS-DOS Rechners • Rechner einschalten ⇒ Programmausführung beginnt ab Adresse F000:FFF0 (i.a. Sprungbefehl zu einer BIOS-Routine, die die eigentliche Initialisierung vornimmt) • Initialisierungsphase − Funktionen des Prozessors, seine Register und einige Befehle testen − ROM und RAM testen − Schnittstellenbausteine, DMA-Controller usw. testen und initialisieren − Peripherie (Tastatur, Diskettenlaufwerke, usw.) testen − BIOS-Variablen und Unterbrechungsvektor-Tabelle initialisieren − ROM-Erweiterungen suchen und testen (z.B. Video-Karte) (ab dem dritten Byte befindet sich die Initialisierungsroutine des ROM-Moduls) ⇒ im Fehlerfall wird der Rechner i.a. angehalten (bis jetzt befindet sich noch kein Betriebssystem im Rechner) • Urladen eines Betriebssystems − das Laden übernimmt der Interrupt 19H (bootstrap loader), der auch beim Warmstart (Ctrl-Alt-Del) aufgerufen wird Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme − Folie 2 - 6 über Interrupt 19 wird der Boot-Block der Diskette oder Festplatte (der den Urlader enthält) gelesen und gestartet (der Boot-Block wird ab Adresse 0000:7C00H geladen) 1. Versuch: Diskettenlaufwerk (Boot-Block des Betriebssystems) 2. Versuch: aktive Partition der Festplatte (nur dann, wenn keine Diskette im Laufwerk ist) (Zuerst wird der Master-Boot-Block der Festplatte, der auch die Partitionstabelle enthält, geladen. Dieser Ur-Urlader lädt dann seinerseits den Boot-Block der aktiven Partition, der das Betriebssystem lädt) − falls keine Systemdiskette / -partition gefunden wird, wird der Benutzer aufgefordert, eine Systemdiskette einzulegen (es muß keine DOS-Diskette sein, da es dem BIOS egal ist, welches Betriebssystem es lädt) ⇒ die Aufgaben des BIOS sind abgeschlossen • Arbeitsweise des Urladers − überprüfen, ob die ersten beiden Dateien des Mediums die Systemdateien IO.SYS, MSDOS.SYS bzw. IBMBIO.COM, IBMDOS.COM sind − falls dies nicht der Fall ist, ist das Medium nicht boot-fähig und der Benutzer erhält eine entsprechende Meldung − falls die Dateien vorhanden sind, werden sie geladen (IO.SYS bzw. IBMBIO.COM besteht aus zwei Moduln. Im ersten Modul befinden sich die Gerätetreiber für Tastatur, Bildschirm, Diskettenlaufwerk, usw. und im zweiten die Initialisierungsroutinen für DOS) − der Urlader ruft die Initialisierungsroutine von IO.SYS auf Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme • Folie 2 - 7 Arbeitsweise der Initialisierungsroutine von IO.SYS − sie verschiebt sich an das Ende des Hauptspeichers − sie führt weitere Initialisierungen des Systems durch − sie verschiebt den DOS-Kern, der mit MSDOS.SYS geladen wurde, an seine endgültige Lage − • sie ruft eine Initialisierungsroutine im DOS-Kern auf Arbeitsweise der Initialisierungsroutine des DOS-Kerns − sie initialisiert den DOS-Kern (Tabellen, Datenbereiche, ...) − sie ruft die Initialisierungsroutinen der einzelnen Gerätetreiber auf, die mit IO.SYS geladen worden sind ⇒ MS-DOS ist installiert • die Datei CONFIG.SYS wird gesucht − CONFIG.SYS wird ggf. geladen − MS-DOS wird nach den Angaben in dieser Datei konfiguriert (Puffer anlegen und initialisieren, spezielle Gerätetreiber laden und initialisieren, Ein- / Ausgabegeräte festlegen und öffnen) − der Kommandoprozessor COMMAND.COM wird geladen − die Kontrolle wird an den Kommandoprozessor übergeben (die Initialisierungsroutinen bleiben als Datenmüll im Speicher bis sie von einem anderen Programm überschrieben werden) ⇒ der Boot-Vorgang ist abgeschlossen Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme • Folie 2 - 8 der Kommandoprozessor sucht nach der Datei AUTOEXEC.BAT − falls die Datei gefunden wird, werden alle in ihr enthaltenen Befehle ausgeführt (start-up file) ⇒ der Benutzer kann mit dem Rechner arbeiten Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme Folie 2 - 9 2.3.2 Aufbau eines Bootsektors Beispiel MS-DOS V5.0: • • • • • • • die ersten drei Byte enthalten einen Sprungbefehl zum Urlader es folgt ein Parameterblock danach kommt der Urlader danach Fehlermeldungen danach die Namen der Systemdateien, die geladen werden müssen danach ein unbenutzter Bereich danach das Endekennzeichen 55AA des Bootsektors F:\>debug -l 0 2 0 1 -d 0 1ff 132C:0000 EB 3C 132C:0010 02 00 132C:0020 00 00 132C:0030 4D 31 132C:0040 C0 8E 132C:0050 16 53 132C:0060 0F 8B 132C:0070 CD 13 132C:0080 89 0E 132C:0090 16 1E 132C:00A0 7C A3 132C:00B0 1E 0B 132C:00C0 00 BB 132C:00D0 B0 01 132C:00E0 A6 75 132C:00F0 E8 5F 132C:0100 58 58 132C:0110 F7 E3 132C:0120 50 52 132C:0130 72 BB 132C:0140 15 7C 132C:0150 70 00 132C:0160 3B 16 132C:0170 33 D2 132C:0180 C3 B4 132C:0190 CA 86 132C:01A0 4B 65 132C:01B0 20 4C 132C:01C0 0D 0A 132C:01D0 61 73 132C:01E0 4F 20 132C:01F0 20 20 -u 0 2 132C:0000 EB3C 132C:0002 90 90 02 00 20 D0 BF 0E 72 20 7C 49 7C 00 E8 0A 00 58 03 51 05 8A AC 18 F7 02 E9 69 61 57 74 20 53 4D 1C 00 20 BC 3E 18 79 7C 03 7C 03 05 AC 8D 33 EB 06 E8 01 16 0A 7C 36 8B 8A 6E 75 65 65 20 59 53 80 80 20 00 7C 7C 33 A0 06 89 C3 8B 00 7F C0 E8 49 3A 00 24 C0 73 1A 16 16 20 66 63 20 20 53 44 F8 00 20 7C B9 88 C0 10 0E 16 48 16 72 20 CD 8B 7C 00 83 7C 74 19 7C 4D 24 53 77 68 64 20 00 JMP NOP 4F 20 29 46 16 0B 4D 39 7C 7C 4B F7 52 16 B9 16 47 13 72 D2 8B 29 F7 88 7C 7C 79 65 73 72 20 00 53-35 00-24 D3-16 41-54 07-BB 00-FC F9-89 06-13 F7-26 83-D2 7C-B8 F3-01 7C-A1 8B-FB 0B-00 5E-1F 1A-48 16-4B D8-B0 00-03 1E-49 B4-0E 36-18 16-25 B1-06 8A-36 73-74 72-6B 65-6C 81-63 53-59 00-00 2E 00 70 31 78 F3 47 7C 16 00 20 06 50 B9 F3 8F 48 7C 01 1E 7C BB 7C 7C D2 25 65 73 6E 6B 53 00 30 0C 08 36 00 A4 02 74 7C A3 00 49 7C 0B A6 04 8A BB E8 0B A1 07 FE A3 E6 7C 6D 66 20 65 4D 00 00 00 53 20 36 06 C7 08 03 50 F7 7C E8 00 74 8F 1E 00 54 7C 4B 00 C2 4D 0A CD 20 65 75 6E 53 00 003E Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß 02 24 59 20 C5 1F 07 8B 06 7C 26 83 92 BE 18 44 0D 07 00 E2 7C CD 88 7C 36 13 6F 68 6E 0D 44 00 04 00 53 20 37 C6 3E 0E 1C 89 11 16 00 DF BE 02 7C B9 59 E2 EA 10 16 F8 4F C3 64 6C 64 0A 4F 00 01 00 54 FA 1E 45 7C 13 7C 16 7C 4B 72 7D 9E CD 32 03 5A 8A 00 EB 4F C3 7C 0D 65 65 20 00 53 55 00 00 45 33 56 FE FB 7C 13 52 8B 7C 1D F3 7D 19 FF 00 58 2E 00 F2 7C F9 8B 0A 72 72 54 49 20 AA .<.MSDOS5.0..... ...... .$...$... ......)..p.SYSTE M1 FAT16 .3 .....|...x.6.7.V .S.>|.........E. ....|.M..G...>|. ..ry3.9..|t....| .. |..|.&.|...|. ..|...|....P|..R |.I|..K|. ..&.|. ..|..H....I|..K| ......R|.P|...r. .....r........}. .u... .....t...} ._.3...^....D... XXX...G.HH...|2. ....I|..K|...... PRQ.:.r....T.YZX r..........|.... .|..$|..I|.K|... p....t)......... ;..|s..6.|....O| 3..6.|..%|.M|... .....M|.....6O|. .....$|.6%|..... Kein System oder Laufwerksfehler ..Wechseln und T aste dr.cken...I O SYSMSDOS SYS.........U. Betriebssysteme Folie 2 - 10 2.3.3 verschiedene Bootsektoren Bootsektor für PC-DOS V3.3 2298:0000 ... 2298:0170 2298:0180 2298:0190 2298:01A0 2298:01B0 2298:01C0 2298:01D0 2298:01E0 2298:01F0 EB 28 90 49 42 4D 20 20-33 2E 33 00 02 01 01 00 .(.IBM 00 4F 2D 64 6C 61 64 20 4F 44 6E 20 70 20 61 74 43 AA .IBMBIO COMIBMD OS COM......Non -System disk or disk error$..Rep lace and strike any key when rea dy..$..Disk boot failure$Copr. C OMPAQ 1983-87.U. EA 05 00 C0 07 E9 99 00-00 29 03 00 C8 E4 00 80 .........)...... 03 43 07 52 50 21 41 00 .3........Your P C is now Stoned! .....LEGALISE MA RIJUANA!........ EB 1A 90 53 59 53 56 33-38 36 20 00 02 01 01 00 ...SYSV386 ..... 8B 4F 74 65 6E 00 20 6E C8 8C 32 0D 06 8A 52 73 6D 61 00 30 65 8C EF E8 78 56 0C CD ...F.2..p.q].ERR OR reading boots trap......Base m emory < 512k, ca n't boot UNIX... .Diskette unit 0 must be quad de nsity..... ?.... ...P......!..... .......&.!....P. 2...Loading Unix ..../unix..U..WV .SQR.F..^..v..n. .N.........s.... EB 3C 90 49 42 4D 20 31-30 2E 32 00 02 01 01 00 .<.IBM 10.2..... C3 74 32 64 73 20 73 52 00 ...Lesefehler Da tentr.ger.....OS 2LDR nicht gefun den...2.Systemdi skette einlegen, das System neu starten....OS2LD R .......... ..............U. 49 53 53 69 61 6E 79 66 4D 42 20 79 73 63 79 0A 61 50 4D 20 73 6B 65 20 0D 69 41 42 43 74 20 20 6B 24 6C 51 49 4F 65 65 61 65 0A 75 20 4F 4D 6D 72 6E 79 0D 72 31 20-20 00-00 20-64 72-6F 64-20 20-77 44-69 65-24 39-38 43 00 69 72 73 68 73 43 33 4F 00 73 24 74 65 6B 6F 2D 4D 0A 6B 0A 72 6E 20 70 38 49 0D 20 0D 69 20 62 72 37 42 4E 6F 52 6B 72 6F 2E 00 4D 6F 72 65 65 65 6F 20 55 3.3..... Bootsektor einer Diskette, die den STONED-Virus enthält 2298:0000 ... 2298:0180 2298:0190 2298:01A0 2298:01B0 ... 33 20 0D 49 DB 69 0A 4A FE 73 0A 55 C1 20 00 41 CD 6E 4C 4E 13 6F 45 41 EB-C5 77-20 47-41 21-00 07 53 4C 00 59 74 49 00 6F 6F 53 00 75 6E 45 00 72 65 20 00 20 64 4D 00 Bootsektor für Microport Unix System V/386 V3.0e.1 2298:0000 ... 2298:0120 2298:0130 2298:0140 2298:0150 2298:0160 2298:0170 2298:0180 2298:0190 2298:01A0 2298:01B0 2298:01C0 2298:01D0 2298:01E0 2298:01F0 EC 52 72 6D 27 44 6D 73 8E CB 02 0A 53 4E 8B 20 61 6F 74 69 75 69 D8 8E 0D 00 51 10 46 72 70 72 20 73 73 74 50 C3 0A 00 52 B0 04 65 0D 79 62 6B 74 79 8B 8E 4C 2F 8E 01 32 61 0A 20 6F 65 20 0D EC D3 6F 75 46 B4 E4 64 00 3C 6F 74 62 0A 83 8D 61 6E 08 02 E6-70 69-6E 2E-00 20-35 74-20 74-65 65-20 00-00 C5-06 26-00 64-69 69-78 8B-5E B2-00 E4 67 00 31 55 20 71 BA BA 21 6E 00 0A CD 71 20 42 32 4E 75 75 20 21 8D 67 00 8A 13 5D 62 61 6B 49 6E 61 3F 00 06 20 55 76 73 C3 6F 73 2C 58 69 64 B0 ED D4 55 8B 0E 06 45 6F 65 20 0D 74 20 80 0C 01 6E EC 8A B4 52 74 20 63 0A 20 64 EE 01 50 69 57 6E 00 Bootsektor für OS/2 V1.3 1635:0000 ... 1635:0170 1635:0180 1635:0190 1635:01A0 1635:01B0 1635:01C0 1635:01D0 1635:01E0 1635:01F0 18 65 4C 65 6B 64 74 20 00 00 6E 44 6E 65 61 61 20 00 4C 74 52 0D 74 73 72 20 00 65 72 20 0A 74 20 74 20 00 73 84 6E 00 65 53 65 20 00 65 67 69 32 20 79 6E 00 00 66-65 65-72 63-68 00-53 65-69 73-74 2E-0D 00-00 00-00 68 0D 74 79 6E 65 0A 00 00 6C 0A 20 73 6C 6D 00 00 00 65 00 67 74 65 20 4F 00 00 Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß 72 17 65 65 67 6E 53 00 00 20 00 66 6D 65 65 32 00 00 44 4F 75 64 6E 75 4C 00 55 61 53 6E 69 2C 20 44 00 AA Betriebssysteme Folie 2 - 11 2.3.4 Master-Boot-Programm von MS-DOS 5.0 Initialisierung der Register Master-Bootblock verschieben 1. Eintrag der Partitionstabelle auswählen n j aktive Partition? restliche Einträge überprüfen Daten merken n fehlerhafter Eintrag? j n j weiterer Eintrag? A n j letzte Partition? nächsten Eintrag auswählen nächsten Eintrag auswählen Fehler n ROM-Basic starten (Partition erfragen) j korrekter Eintrag? Fehler A Fehler Urlader des BS einlesen n Fehlermeldung ausgeben j Rechner stoppen (Endlosschleife) erfolgreich? RESET Controller n j n letzter Versuch? Zähler dekrementieren Fehler Endekennzeichen des Blocks ok? Fehler Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß j Urlader starten Betriebssysteme Folie 2 - 12 2.4 Betriebsarten • Einsatzgebiete eines Rechners − Software-Entwicklung, Programmierausbildung, usw. Kennzeichen: − ♦ sehr kurze Antwortzeiten gefordert, ♦ (Quasi-)Parallel-Verarbeitung. ♦ überwiegend wird nur die CPU belastet, ♦ E / A - Geräte werden kaum genutzt. Gehaltsabrechnung inkl. Ausdruck der Abrechnungsformulare Kennzeichen: − interaktive Benutzung des Rechners, aufwendige Berechnungen (Statik einer Brücke, Animationen) Kennzeichen: − ♦ ♦ geringe Belastung der CPU, ♦ starke Belastung der Drucker. Flugbuchungen durch Reisebüros Kennzeichen: ♦ viele Sichtgeräte an entfernten Orten, ♦ alle Benutzer arbeiten mit dem gleichen Programm. − Steuerung einer industriellen Fertigungsstraße Kennzeichen: ♦ u.U. kurze Reaktionszeiten erforderlich, falls z.B. Fehler auftreten ⇒ ♦ unterschiedliche Anforderungsprofile ♦ Betriebsart: Art und Weise, in der Aufträge bearbeitet werden Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme Folie 2 - 13 2.4.1 Einprogramm- / Mehrprogrammbetrieb • Einprogrammbetrieb − der Rechner bearbeitet nur eine Aufgabe, − alle Betriebsmittel stehen diesem Programm zur Verfügung: − ♦ Prozessor, ♦ Hauptspeicher, ♦ Dateien, usw. kommt heute nur noch bei einfachen Arbeitsplatzrechnern oder Spezialrechnern vor 0 5 10 Zeit e1 idle e2 idle e3 idle Eingabegerät idle a1 idle a2 idle a3 Ausgabegerät idle r1 idle r2 idle r3 idle CPU e1 r1 P1 a1 e2 r2 a2 e3 P2 Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß r3 P3 a3 Betriebssysteme • Folie 2 - 14 Mehrprogrammbetrieb (multiprogramming) − der Rechner bearbeitet abwechselnd mehrere Aufgaben, die ineinander verzahnt (quasi-) parallel ablaufen − jede Aufgabe erhält während ihrer Laufzeit bestimmte Betriebsmittel zugeteilt − die Reihenfolge, in der die Programme gestartet werden, hängt von den Prioritäten der Programme ab − Programmwechsel z.B. nach dem Start einer E / A - Operation − Betriebssystem kann einem Programm die Kontrolle über den Rechner entziehen − rechenintensive Programme belegen den Rechner sehr lange (da sie keine E / A - Operationen ausführen, können sie nicht verdrängt werden) ⇒ u.U. große Wartezeiten für einzelne Programme 0 5 10 Zeit e1 idle e2 idle e3 idle Eingabegerät idle a1 idle a2 idle a3 Ausgabegerät idle r1 r2 r3 idle CPU e1 r1 eingesparte Zeit P1 a1 e2 r2 a2 P2 e3 r3 a3 P3 Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme • Folie 2 - 15 Beispiel für Mehrprogrammbetrieb, wenn die Ein-/Ausgabe nicht nur am Anfang und Ende des Programms stattfindet Benutzerprogramm-Priorität hoch niedrig Programm 1 Programm 3 Zeit Programm 2 Steuerprogramm E/A-Anforderung Prozeßwechsel E/A-Anforderung P-wechsel Unterbrechung Start E/A 1 Start E/A 2 Ende E/A 1 Prozeßwechsel Ende E/A 2 Unterbrechung E/A-Anforderung Start E/A 1 Prozeßwechsel E/A-Anforderung P-wechsel Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Start E/A 2 Ein/Ausgabe Betriebssysteme Folie 2 - 16 2.4.2 Zeitscheibenverfahren (time sharing) • • vermeidet den Nachteil des Mehrprogrammbetriebs ist immer mit Mehrprogrammbetrieb gekoppelt ⇒ multiprogramming und time sharing werden häufig synonym verwendet aber: der Mehrprogrammbetrieb setzt kein Zeitscheibenverfahren voraus • Betriebssystem verdrängt ein Programm automatisch, wenn es die CPU eine bestimmte Zeit genutzt hat und nicht freiwillig abgibt • • Größe einer Zeitscheibe: 50 - 500 ms Systemuhr erforderlich ⇒ Rechenzeit wird auf alle Programme gleichmäßig verteilt 0 5 10 Zeit e3 e2 e1 idle Eingabegerät idle a2 idle a3 a1 Ausgabegerät r3 r2 r3 r2 r1 r3 r1 CPU e1 e2 r1 r2 r1 eingesparte Zeit a1 P1 r2 a2 P2 e3 r3 r3 r3 a3 P3 Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß eingesparte Zeit Betriebssysteme Folie 2 - 17 2.4.3 Ein- / Mehrbenutzerbetrieb • Einbenutzerbetrieb (single user mode) − i.a. bei Arbeitsplatzrechnern − bei einfachen Betriebssystemen (z.B. MS-DOS), die keinen Mehrprogrammbetrieb unterstützen, zwingend • • Mehrbenutzerbetrieb (multi user mode) − setzt Mehrprogrammbetrieb voraus − Zeitscheibenverfahren ist notwendig (kurze Reaktionszeiten) im Ein- und Mehrbenutzerbetrieb wird interaktiv mit dem Rechner gearbeitet ⇒ Rechner muß Dialogbetrieb unterstützen Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme Folie 2 - 18 2.4.4 Stapel- / Dialogbetrieb • Stapelbetrieb (batch processing) − älteste Betriebsart − Rechner erhält vollständig definierten Auftrag − Benutzer kann den Ablauf des Auftrags dann nicht mehr beeinflussen − sehr gute Auslastung des Rechners ist möglich, da alle Betriebsmittel vorab bekannt sind − • heute i.a. als Hintergrundbetrieb Dialogbetrieb (interactive processing) − Auftrag ist nicht vorab festgelegt − Auftrag kann vom Benutzer interaktiv gesteuert werden (vergleichbar mit einem Gespräch, das mit dem Rechner geführt wird) − i.a. über ein Zeitscheibenverfahren realisiert − wird in Teilhaber- und Teilnehmerbetrieb eingeteilt Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme Folie 2 - 19 2.4.5 Teilhaber- / Teilnehmerbetrieb • Teilhaberbetrieb − alle Benutzer (Dialogstationen) benutzen dasselbe Programm (z.B. Programm für Flugbuchung, Patientenaufnahme, ...) − nur eingeschränkter Zugang zum Rechner (kein eigener Dialogprozeß) − Dialogstationen werden dem Programm als E / A - Gerät zugewiesen − − Vorteil: Ablauf: ♦ geeignet für ungeschulte Benutzer (Krankenschwester, ...) ♦ Rechner muß weniger Dialogprozesse verwalten ♦ ein Transaktionsmonitor bekommt über Kommandos einige Dialogstationen zugewiesen ♦ er startet danach z.B. ein Flugbuchungsprogramm, das sich auf allen zugewiesenen Dialogstationen meldet und mit den Benutzern einen anwendungsbezogenen Dialog führt ♦ wenn z.B. eine bestimmte Uhrzeit erreicht ist, meldet es sich bei den Dialogstationen ab, und beendet sich ♦ der Transaktionsmonitor gibt die Dialogstationen frei und beendet sich ebenfalls • Teilnehmerbetrieb − jede Dialogstation erzeugt einen eigenen Dialogprozeß − der Benutzer kann unabhängig von anderen Benutzern Aufträge an den Rechner abgeben Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme Folie 2 - 20 2.4.6 Echtzeitbetrieb (real time processing) • • Zeitschranken müssen eingehalten werden Einsatzgebiet: z.B. in der Prozeßdatenverarbeitung (Meß-, Steuer-, Regelungstechnik) 2.4.7 Mehrprozessorbetrieb (multiprocessing) • • Rechner mit mehreren Prozessoren echte Parallelverarbeitung 1) asymmetrischer Mehrprozessorbetrieb (asymmetric multiprocessing) − es gibt einen ausgezeichneten Prozessor (den sogenannten Master) − nur der Master führt privilegierte Anweisungen aus (z.B. Ein-/ Ausgaben, Verwaltung der Betriebsmittel) − das Betriebssystem kann nur auf dem Master ablaufen ⇒ Abnahme der Leistungsfähigkeit, wenn mehrere Prozessoren gleichzeitig Betriebssystemdienste benötigen 2) symmetrischer Mehrprozessorbetrieb (symmetric multiprocessing) − mehrere Prozessoren können den Betriebssystemcode ausführen − im Idealfall können alle Prozessoren gleichzeitig Code des Betriebssystemkerns ausführen Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme Folie 2 - 21 3) Architektur mit gemeinsamen Speicher (shared memory architecture) − klassisches Multiprozessorsystem − z.B. Rechner von Sun Microsystems − gemeinsames Bussystem − Bus / Speicher kann Engpaß werden − Interprozeßkommunikation wie bei einem Einprozessorsystem möglich CPU CPU CPU CPU Cache Cache gemeinsamer Speicher Cache Cache gemeinsamer Bus 4) Architektur mit verteiltem Speicher (distributed memory architecture) − z.B. Transputersystem − sehr schnelles Verbindungsnetzwerk (z.B. Kreuzschienenverteiler) − Interprozeßkommunikation über Nachrichtenaustausch (message passing) lokaler Speicher lokaler Speicher lokaler Speicher lokaler Speicher lokaler Bus CPU CPU CPU CPU Verbindungsnetzwerk Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme Folie 2 - 22 2.4.8 Multitasking • spezielle Form des Mehrprogrammbetriebs (Programme können vom Betriebssystem verdrängt werden) • Begriff wird nicht einheitlich verwendet (Task als Synonym für Prozeß bzw. Auftrag innerhalb eines Programms) • die Programmiersprache ADA besitzt entsprechende Sprachmittel − Aufträge (tasks) innerhalb eines Programms können unabhängig voneinander ablaufen ⇒ CPU-Vergabe kann auf Task-Ebene durchgeführt werden • hier: Task als spezielle Form des Mehrprogrammbetriebs Auftrag innerhalb eines Programms: Thread Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme Folie 2 - 23 2.4.9 Multithreading • Threads werden in der Literatur unterschiedlich definiert (z.B. in SunOS multi-thread architecture, Mach C Threads, POSIX Standard P1003.1c-1995, OS/2-Threads, usw.) • ein Thread ist eine zusammengehörende Folge von Anweisungen innerhalb eines Programms • jeder Thread besitzt einen eigenen Programmzähler einen eigenen Registerbelegungssatz und einen eigenen Stack für lokale Variablen ⇒ Threads können unabhängig voneinander ausgeführt werden • Threads teilen sich den Adreßraum und die Anweisungen des umfassenden Prozesses ⇒ falls ein Thread globale Daten ändert, kann die Änderung von allen anderen Threads gesehen werden • Threads teilen sich den Betriebssystemzustand des umfassenden Prozesses ⇒ sie sehen die gleichen offenen Dateien (falls ein Thread eine Datei öffnet, kann ein anderer Thread sie lesen, d.h. sie können sich in unvorhersehbarer Weise beeinflussen, wenn das Programm nicht sehr sorgfältig erstellt wurde (es gibt keinen Betriebssystemschutz auf Thread-Ebene!)) ⇒ falls ein Thread die Betriebssystemfunktion exit() aufruft, werden alle Threads beendet Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme Folie 2 - 24 • ein traditioneller UNIX-Prozeß ist ein single-threaded process • Multithreading bedeutet: Ein Prozeß besteht aus mehreren Threads, die parallel (quasi-parallel auf einem Einprozessorsystem) ausgeführt werden • Warum wurden Threads eingeführt? 1) effizientere Bearbeitung eines Programms auf Mehrprozessorsystemen (Auf Einprozessorsystemen sind diese Programme i.a. langsamer als ein traditionelles Programm, da die Verwaltung der Threads Zeit kostet. User-level Threads können auch auf Mehrprozessorsystemen weiterhin nur quasi-parallel ausgeführt werden, wenn dem Prozeß nur ein Kernel-level Thread zur Verfügung steht.) 2) Anwendungsprogramme können häufig einfacher entwickelt werden, wenn die einzelnen Aufgaben als in sich geschlossene Teile implementiert werden können (moderne Fensteroberflächen bieten z.B. viele Funktionen über sogenannte Widgets oder Icons an, die separat entwickelt werden können) 3) User-level Threads belasten den Betriebssystemkern nicht, da ihre Verwaltung durch entsprechende Bibliotheksprogramme auf Benutzerebene erfolgt und sie dem Betriebssystemkern daher unbekannt sind (Für User-level Threads werden nur Datenstrukturen im Adreßraum des Programms angelegt und verwaltet und nicht im Betriebssystemkern. Das Scheduling der Threads erfolgt bei Sun durch sogenannte Lightweight Processes (bei POSIX: Kernel-level Threads), deren Scheduling im Betriebssystemkern stattfindet. Lightweight Processes können als virtuelle Prozessoren betrachtet werden.) Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme • Folie 2 - 25 User-level Threads − Wechsel zwischen Threads ist sehr effizient − der Programmierer muß sicherstellen, daß sich Threads nicht in unerwünschter Weise beeinflußen ♦ falls ein Thread das Verzeichnis wechselt, sehen alle Threads das neue aktuelle Verzeichnis ♦ falls ein Thread eine Datei schließt, ist sie für alle Threads geschlossen ♦ falls ein Thread die Funktion exit() aufruft, wird der gesamte Prozeß mit allen Threads beendet ♦ falls mehrere User-level Threads rechenintensiv sind, dauert es eine Weile, bis das Betriebssystem ausreichend viele Kernel-level Threads für eine (quasi-) parallele Bearbeitung erzeugt (u.U. werden die Threads in diesem Fall auch sequentiell ausgeführt, falls das Betriebssystem dem Prozeß nur einen Kernel-level Thread zur Verfügung stellt und die Threads nicht von sich aus auf den Prozessor verzichten) ♦ • ... Kernel-level Threads − Thread-Wechsel effizienter als Prozeßwechsel, aber schlechter als bei user-level threads − das Betriebssystem entscheidet, welcher Thread als nächster ausgeführt wird Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme • Folie 2 - 26 Beispiel (aus: M.L. Powell, et al.: SunOS Multi-thread Architecture. Proc. USENIX Winter Conf., Dallas, TX, 1991): − Prozeß 1 ist ein traditioneller UNIX-Prozeß mit einem Thread, der einem Lightweight Process (LWP) zugeordnet ist − Prozeß 2 enthält Threads, die von einem LWP verwaltet werden − Prozeß 3 enthält Threads, die von einer geringeren Anzahl LWP's verwaltet werden − Prozeß 4 enthält Threads, die permanent an einen LWP gebunden sind − Prozeß 5 enthält eine Kombination aller erlaubten Möglichkeiten: eine Gruppe von Threads wird von einer Gruppe LWP's verwaltet und zwei Threads sind permanent an LWP's gebunden. Außerdem ist ein LWP permanent einem Prozessor zugeordnet. Alle Threads können sich untereinander und mit Threads in anderen Prozessen mit den üblichen Mechanismen synchronisieren. Thread Process 1 Lightweight Process Process 2 Process 3 Processor (CPU) Process 4 User Mode Kernel Mode Hardware Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Process 5 Betriebssysteme Betriebssystemarchitekturen 2.5 • Folie 2 - 27 traditionelle Betriebssysteme besitzen einen relativ großen monolithischen Kern (UNIX, VMS, ...) • neuere Betriebssysteme benutzen einen − dynamischen Betriebssystemkern (Solaris, Linux, ...) − sehr kleinen Mikrokern (microkernel architecture), der nur eine rudimentäre Funktionalität besitzt (Windows NT, Mach, ...) 2.5.1 Monolithischer Betriebssystemkern • der Kern enthält alle traditionellen Funktionen (Prozeßverwaltung, Hauptspeicherveraltung, Dateiverwaltung, Netzwerkdienste, ...) • der Kern enthält die Treiber für alle Geräte, die eventuell an dem Rechner betrieben werden sollen ⇒ Verschwendung von Hauptspeicher Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme Folie 2 - 28 2.5.2 Dynamischer Betriebssystemkern • der Kern enthält nur die Funktionen, die häufig benutzt werden • spezielle Gerätetreiber, Netzwerkdienste usw. sind als Moduln konzipiert und werden bei Bedarf hinzugeladen • nicht mehr benötigte Moduln werden aus dem Haupspeicher entfernt • Beispiel (Moduln unter Linux) /lib/modules/2.0.21 # dir drwxr-xr-x 2 root root drwxr-xr-x 2 root root drwxr-xr-x 2 root root drwxr-xr-x 2 root root -rw-r--r-1 root root drwxr-xr-x 2 root root /lib/modules/2.0.21 # dir block -rw-r--r-1 root root /lib/modules/2.0.21 # dir misc -rw-r--r-1 root root -rw-r--r-1 root root -rw-r--r-1 root root • 1024 1024 1024 1024 611 1024 Oct Oct Oct Oct Feb Oct 64072 Oct 128915 Oct 20529 Oct 8576 Oct 3 3 3 3 7 3 15:57 15:57 15:57 15:57 10:42 15:57 3 15:35 floppy.o 3 15:37 ftape.o 3 15:45 ipx.o 3 15:35 lp.o Beispiel (Laden und automatisches Entfernen von Moduln) / # lsmod Module: #pages: Used by: / # mount -t msdos /dev/fd0 /mnt / # lsmod Module: #pages: Used by: floppy 11 1 (autoclean) / # umount /mnt / # lsmod Module: #pages: Used by: floppy 11 0 (autoclean) / # tar vft /dev/ftape ... / # lsmod Module: ftape #pages: 43 Used by: 0 (autoclean) Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß block/ fs/ ipv4/ misc/ modules.dep net/ Betriebssysteme Folie 2 - 29 2.5.3 Mikrokern-Betriebssystem • enthält nur Basis-Mechanismen zur Prozeßerzeugung und zum Scheduling • grundlegende Mechanismen zur Nachrichtenübermittlung (message passing) • Basis-Mechanismus zur Speicherverwaltung • grundlegende Mechanismen zur Ein- / Ausgabe • eine Aufgabe wird nur dann im Mikrokern erledigt, wenn die Funktionalität des Systems nicht gewährleistet ist, wenn die Aufgabe außerhalb des Mikrokerns erbracht wird • Mikrokerne sind u.U. ineffizienter, da häufig zwischen user und kernel mode umgeschaltet werden muß und statt Prozeduraufruf eine Nachrichtenübertragung benutzt wird Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme • Folie 2 - 30 traditionelle Funktionen des Betriebssystemkerns (Prozeßverwaltung, Dateiverwaltung, Netzwerkdienste, ...) werden im normalen Adreßraum (user mode) bereitgestellt − verbesserte Modularität − Code im user mode ist einfacher zu testen als Code im kernel mode − Funktionalität kann verteilt werden (verteilte Betriebssysteme auf Basis einer Client / Server Architektur) − verschiedene Betriebssysteme können gleichzeitig auf einem Rechner einfach emuliert werden • Makrokern-Architektur Anwendung user mode Systemdienste kernel mode Dateisystem Speicher- und E/AGeräteverwaltung ↔ Mikrokern-Architektur Anwendung NetzwerkServer SpeicherServer DateiServer ProzeßServer ...Server user mode kernel mode Mikrokern Prozessorund Prozeßsteuerung Hardware Dienst- / Funktionsaufruf Hardware Antwort / Ergebnis Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme Folie 2 - 31 Aufgaben 1) Aus welchen Komponenten besteht der Kern eines Betriebssystems? 2) Welche Aufgabe hat der Boot-Block einer Platte? 3) Was ist ein Branchenprogramm? 4) Nennen Sie den Unterschied zwischen einem Teilnehmer- und einem Teilhaberbetrieb. 5) Kann ein Betriebssystem gleichzeitig folgende Betriebsarten unterstützen: Stapelbetrieb, Zeitscheibenverfahren, Teilnehmerbetrieb, Mehrprozessorbetrieb und Multitasking? Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme Folie 2 - 32 Lösungen (Seite 1) Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme Folie 2 - 33 Lösungen (Seite 2) Fachhochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß