C. Betriebssystem-Strukturen C.1 Monolithische Betriebssysteme Sammlung von Routinen, ohne Hierarchie, Kapselung und Schichtung. Jede Prozedur kann beliebige andere Prozeduren aufrufen und Datenstrukturen ändern. Die Folgen von Änderungen und Erweiterungen sind schwer abzuschätzen. Zum Beispiel: klassische Unix-Systeme, Batch-Betriebssysteme, IBM OS/360... Anwendungen Dispatcher O S - R o u t i n e n H a r d w a r e C-1 Betriebssysteme, Sommer 2008, P. Schulthess, VS Universität Ulm
C.2 Gewachsene Modul-Struktur C.2.1 Traditioneller Unix-Kern: Trennung User-/Kernel Space, im Prinzip monolithischer Aufbau, zusätzlich dyn. ladbare Module, Hardwareabstraktion. user-mode kernel-mode Dateisystem B e n u t z e r p r o g r a m m e Systemschnittstelle Prozesskontrollsubsystem Bibliotheken IPC Scheduler Puffer-Cache MemMgmt. Zeichen Block Gerätetreiber Hardwaresteuerung Hardware C-2 Betriebssysteme, Sommer 2008, P. Schulthess, VS Universität Ulm
C.2.2 Treppenmodelle: Rein hierarchische Schichtenmodelle oft mit Effizienzverlust, da oft Zwischenschichten durchlaufen werden müssen. Schichten können hier übersprungen worden, aber dadurch ergibt sich ein Verlust der Kontroll- & Schutzfunktion. Spezifische Anwendungen, u.a. Grafik- und Echtzeitlösungen, erfordern oft schnelle Systemaufrufe. Programme COMMAND MSDOS.SYS Beispiel: MS-DOS => IO.SYS ROM-BIOS Hardware C-3 Betriebssysteme, Sommer 2008, P. Schulthess, VS Universität Ulm
C.3 Geschichtete Architekturen C.3.1 API-Modell Schnittstellen zu geschichteten Abstraktionsebenen: Programmierschnittstelle für die Anwendungsprogramme, Systemdienste im algorithmischen Sinne, Schnittstelle zu den Gerätetreibern, Hardwareschnittstellen. Anwendungen Dispatcher Schnittstellenaufrufe: über Software-Interrupt, über Aufrufe einer RT-Bibliothek, Module dynamisch oder statisch gebunden. O S - R o u t i n e n T r e i b e r H a r d w a r e C-4 Betriebssysteme, Sommer 2008, P. Schulthess, VS Universität Ulm
C.3.2 Schalenmodelle: Anordnung der Funktionen in einer Folge konzentrischer Ringe. Innere Ringe sind privilegierter als Äußere. Aufrufe über Ringgrenzen hinweg mithilfe eines Software-Interrupts: kontrollierter Übergang zw. Privilegstufen. Überprüfung der Parameter Unterstützung durch HW. x86 CPUs: 4 Ringe. Äussere Ringe stellen einen Zugriffsschutz für die inneren Ringe dar. Gegenseitige Isolierung der Ringe durch Hardware-Mechanismen. Befehle System-Call Steuerung Benutzer Programme Kern HW Unix-Signale Interrupts Ergebnisse C-5 Betriebssysteme, Sommer 2008, P. Schulthess, VS Universität Ulm
C.3.3 Package Modell Green OS: Geschachtelte Packages für die Klassen, Zugriffschutz über Modifiers zu Variablen und Klassen, Programmierung in einer typsicheren Sprache, z.b. Java, (Mikrokern, <20 Kbytes). Packages: Applications: Abgeschirmte Programme, Dienste und Werkzeuge ohne Privilegien. System: Systemdienste mit Systemverantwortung, aber ohne MAGIC -Privilegien, Devices: Gerätetreiber mit punktuellen Zugriffsprivilegien auf die Hardware, Kernel: kleine Anzahl Klassen mit MAGIC -Privilegien (HW-Zugriff). Applications Kernel System Devices Interfaces C-6 Betriebssysteme, Sommer 2008, P. Schulthess, VS Universität Ulm
C.4 Mikrokern Systeme Zuverlässiger (kleiner) Mikrokern, etwa für: Nachrichtenvermittlung & Prozessumschaltung, Speicherverwaltung & Sicherheit... Treiber: weniger privilegiert als Kern. OS-Dienste im Adressraum der Anwendung: Dateisystem, GUI, & Beispiel: Mach, L4. Robust, aber erheblich mehr Aufwand durch häufige Interprozesskommunikation. Anwendungen O S - D i e n s t e Mikrokern T r e i b e r H a r d w a r e C-7 Betriebssysteme, Sommer 2008, P. Schulthess, VS Universität Ulm
C.4.1 Beispiel: Plurix Verteiltes Betriebssystem mit kleinem Kern (Uni Ulm). Schutz durch typsichere Sprache (Java) an Stelle von Prozessadressräumen. Schlanker Systementwurf: einfaches Prozessmodell, nur ein Adressraum, Vorbild Oberon. Objektorientierung: Abbildung realer Ressourcen, hierarchische Vererbung, Persistenz der Objekte... CPU Input Network... Devices StationVector[ ] Station Root Naming Heap Memory Interrupts Kernel TransactionVector[ Transactions[ ] ] Transaction EventLoop Public Users Config Devices C-8 Betriebssysteme, Sommer 2008, P. Schulthess, VS Universität Ulm
Mehrere Betriebssysteme können auf einer Maschine betrieben werden. Virtuelle Maschinen sind Kopien der nachgebildeten Hardware: Unterbrechungen, E/A, Kern- & Benutzermodus,... Nachteil: großer Effizienzverlust. Monitor (Wirtsbetriebssystem): simuliert Hardware, fängt Systemaufrufe ab, übernimmt Ausführen auf realer HW. C.5 Virtuelle Maschinen v i r t u e l l e M a s c h i n e n AW AW AW AW B S B S B S B S Monitor H a r d w a r e Beispiele: PC Simulatoren: Qemu, VMWare, Xen, und Bochs. Virtualization Technology für Itanium-2 (ab 2005). JVM (Java Virtual Machine) interpretiert plattformunabhängigen Bytecode. C-9 Betriebssysteme, Sommer 2008, P. Schulthess, VS Universität Ulm
C.6 Client / Server Architekturen Aufteilung in Client- und Server-Prozesse in einer Maschine. Zwanglose Erweiterung auf verteiltes System möglich. Keine Privilegien für Dienste im User-Mode. Validierung der Parameter zum Dienstaufruf in den Executive: gültige Handles, Zugriffsrechte,... Aber dieser Aufruf von Diensten ist aufwendig. Anw. Executive Kern T r e i b e r Services HAL H a r d w a r e C-10 Betriebssysteme, Sommer 2008, P. Schulthess, VS Universität Ulm
C.6.1 Fallbeispiel: Executive in Windows XP BS-Funktionen im sicheren Teil des Systems (Kern). Security Monitor kooperiert mit Security-Subsystem. Object Manager verwaltet Betriebssystem-Ressourcen. "Local Procedure Calls" für Aufrufe zw. Adressräumen. Security Monitor Wechsel zum Kernel-Modus via INT 0x2e. Objekt Manager E/A-Manager: verwaltet und ruft Treiber: async. Kommunikation & Umkopieren von Daten. zusätzl. direct I/O: schneller, da ohne Umkopieren. Process Manager Kern LPC Virtual memory Hardware Abstraktion Kernel Mode E/A - Dateien - Cache - Drivers - Network C-11 Betriebssysteme, Sommer 2008, P. Schulthess, VS Universität Ulm
C.6.2 Subsysteme in Windows XP... Kommunikation mit Subsystemen über den LPC Manager (Local Procedure Call) in der Executive. Kommunikation zw. Subsystemen ebenfalls per LPC. Win32-Subsystem: DLLs beim Klienten: User32, Kernel32, GDI32, LPCs zum Win32-Subsystem (CSRSS.exe), weiter verteilen auf einzelne Subsysteme. User Mode M S - D O S K l i e n t O S / 2 Win32 K l i e n t W o W Klient K l i e n t W i n 3 2 K l i e n t W i n 3 2 K l i e n t Win32 Subsystem P o s i x K l i e n t LPCs Posix Subsystem OS/2 Subsystem K e r n e l M o d e Virtuelle DOS Masch. User Mode C-12 Betriebssysteme, Sommer 2008, P. Schulthess, VS Universität Ulm