Betriebssystemarchitekturen und Betriebsarten (im Fokus: Universalbetriebssysteme) Sommersemester 2014 Prof. Dr. Peter Mandl Prof. Dr. Peter Mandl Seite 1
Gesamtüberblick 1. Einführung in 2. Betriebssystemarchitekturen und Betriebsarten 3. Interruptverarbeitung in n 4. Prozesse und Threads 5. CPU-Scheduling 6. Synchronisation und Kommunikation 7. Speicherverwaltung 8. Geräte- und Dateiverwaltung 9. Betriebssystemvirtualisierung Anwendung 1 Anwendung 2... Anwendung n Systemdienste- Schnittstelle Dienstverteiler Kernel Modul Hardware- Schnittstelle Hardware Prof. Dr. Peter Mandl Seite 2
Zielsetzung Die verschiedenen Architekturen von n kennenlernen Spezielle Betriebsarten wie Teilnehmer- und Teilhaberbetrieb, Application-Server-Betrieb und Terminalserver-Betrieb kennenlernen Verteilungsaspekte diskutieren Sinn und Möglichkeiten der Virtualisierung von n und von Cloud Computing kennenlernen Prof. Dr. Peter Mandl Seite 3
Überblick 1. Zugriffsschutz in n 2. Betriebssystemarchitekturen 3. Klassische Großrechnerbetriebsarten 4. Verteilte Verarbeitung 5. Terminalserver-Betrieb 6. Virtualisierung von Betriebs- und Laufzeitsystemen 7. Cloud Computing Prof. Dr. Peter Mandl Seite 4
Usermodus und Kernelmodus Usermodus (Benutzermodus) - Ablaufmodus für Anwendungsprogramme - Kein Zugriff auf Kernel-spezifische Code- und Datenbereiche Kernelmodus - Privilegierter Modus - Dient der Ausführung der Programmteile des Kernels - Schutz von Datenstrukturen des Kernels Umschaltung über spezielle Maschinenbefehle Aktueller Modus steht in einem Statusregister Prof. Dr. Peter Mandl Seite 5
Hardware-Grundlagen am Beispiel der Intel-Architektur (1) Beispiel: x86-architektur - Schutzkonzept über vier Privilegierungsstufen (Ring 0-3) - Prozess läuft zu einer Zeit in einem Ring - Meist werden aus Kompatibilitätsgründen zu anderen CPUs nur zwei Ringe unterstützt: Ring 0: Kernelmodus (privilegiert, Zugriff auf Hardware möglich) Ring 3: Usermodus (nicht privilegiert) Übergang von Ring 3 nach Ring 0 über privilegierte Operation (int-befehl) Anmerkung: Ab x64/ia64 werden nur noch zwei Ringe unterstützt Prof. Dr. Peter Mandl Seite 6
Hardware-Grundlagen am Beispiel der Intel-Architektur (2) Wechsel von Ring 3 nach Ring 0 über Kontextwechsel (Trap, Unterbrechung) mehr dazu in Kapitel 3 Anwendung unbenutzt unbenutzt Kernelmodus Ring 0 Ring 1 Systemcall Usermodus Kernelmodus Aufruf eines privilegierten Befehls Ring 2 Ring 3 (Usermodus) Im Ring 0 ist nicht der komplette Befehlssatz vorhanden Prof. Dr. Peter Mandl Seite 7
Überblick 1. Zugriffsschutz in n 2. Betriebssystemarchitekturen 3. Klassische Großrechnerbetriebsarten 4. Verteilte Verarbeitung 5. Terminalserver-Betrieb 6. Virtualisierung von Betriebs- und Laufzeitsystemen 7. Cloud Computing Prof. Dr. Peter Mandl Seite 8
Der Betriebssystemkern Der Betriebssystemkern (Kernel, Kern) umfasst wesentliche Dienste des Betriebssystems, die möglichst immer im Hauptspeicher geladen sein sollen Hierzu gehört u.a.: - Prozess- und Prozessorverwaltung - Speicherverwaltung - Dateiverwaltung - Geräteverwaltung (Treibersoftware) - Netzwerkverwaltung Prof. Dr. Peter Mandl Seite 9
Monolithischer Kern Alle Module haben Zugriff auf einen Adressraum und teilen sich diesen (in einem Prozess, Definition später) Anwendung 1 Anwendung 2... Anwendung n Dienstverteiler Systemdienste- Schnittstelle Kernel Modul Hardware- Schnittstelle Hardware Prof. Dr. Peter Mandl Seite 10
Schichtenmodell Verbesserung des monolithischen Kernels: Flexibler und übersichtlicher Anwendung 1 Anwendung 2... Anwendung n Systemdienste- Schnittstelle Schicht 3 Schicht 2 Schicht 1 Hardware Prof. Dr. Peter Mandl Seite 11
Mikrokern (1) Ein moderner Trend in der ntwicklung: - Kernel leichter machen - Entlastung durch Übernahme von Funktionalität in Anwendungsprozesse (Serverprozesse), eigene Adressräume - Serverprozesse können sein: Fileserver Memory Server (?)... - Was bleibt ist ein minimaler Mikrokern - Der Mikrokern übernimmt die Abwicklung der Kommunikation zwischen Anwendungsprozessen (Clientprozessen) und Serverprozessen Prof. Dr. Peter Mandl Seite 12
Mikrokern (2) Clientprozesse fordern Dienste über Nachrichten an die Serverprozesse an Mikrokern-Konzept wurde u.a. bei den n Amoeba (Tanenbaum), Mach und Chorus entwickelt Elementarer Kern ermöglicht verschiedene, darauf aufsetzende Performance-Verschlechterung Clientprozess Clientprozess Server- Prozess... Usermodus Service Request Mikrokern Kernelmodus Hardware Prof. Dr. Peter Mandl Seite 13
Unix-Schichtenmodell (klassisch monolithisch) Anwendungsprogramme (vi, sh, sed, ) Weitere Libraries Usermodus C-Library (fopen, exec, socket, calloc, ) System Call Interface Speicherverwaltung Geräteverwaltung Dateiverwaltung Prozessverwaltung Kernelmodus Hardware Prof. Dr. Peter Mandl Seite 14
Linux-Architektur (monolithisch) Anwendungsprogramme (vi, bash, openoffice,.) Weitere Libraries Usermodus C-Library (fopen, exec, socket, calloc, ) System Call Interface (TRAP, CALL, BRK, INT,, je nach Hardware) Kernel (Geräteverwaltung, Dateisystem, Speicherverwaltung, Prozessverwaltung, Netzwerkverwaltung, ) Kernelmodus Hardware Prof. Dr. Peter Mandl Seite 15
Windows-Schichtenarchitektur NT-Dienste: smss, lsass, services, winlogon Usermodus GUI (shell32.dll, ) Dynamische Libraries (ole32dll, ) Subsystem-API (kernel32.dll, ).NET setzt hier auf Prozess der Subsysteme (csrss.exe) Native NT-API (C/C++-Routinen ntll.dl (vgl. libc unter Unix)) CreateProcess, DeleteFile, Wrapper für NT-API-Aufrufe = Win32-API (WinAPI) NTCreateProcess NTCreateFile, Kernelmodus NTOS-Kernschicht (ntoskrnl.exe) in C Systemdienste, Kern, NTOS = ntoskrnl.exe Gerätetreiber NTOS-Ausführungsschicht (ntoskrnl.exe) in C GUI-Treiber Win32k.sys HAL (hal.dll) x64: 1 % Assembler, x86: 2 % Assembler, Rest in C Hardware Geräte, CPU, MMU, Interrupt-Controller, BIOS, Speicher Kernobjekte verwaltet der Object Manager CPU-Scheduler: 75 Kloc Virt. Speicher: 175 Kloc Quelle: Tanenbaum, A. S.: Moderne,, 3. aktualisierte Auflage, Pearson Studium, 2009 Prof. Dr. Peter Mandl Seite 16
Architektur von Apple Mac OS X Mac OS X hat einen Hybrid-Kernel Mischung aus MACH und FreeBSD MACH ist ein Microkernel und NeXTStep nutzte MACH-Kernel Entwicklung: - Unix BSD NeXTStep Darwin Mac OS X OS X Kernel heißt XNU (X is not Unix) Abgewandelt auch in ios für Apple iphone, ipad,... Aqua (Grafische Oberfläche) Grafik- Subsystem Carbon Cocoa Java Quartz OpenGL QuickTime Darwin Hardware Programmierschnittstellen Prof. Dr. Peter Mandl Seite 17
Überblick 1. Zugriffsschutz in n 2. Betriebssystemarchitekturen 3. Klassische Großrechnerbetriebsarten 4. Terminalserver-Betrieb 5. Verteilte Verarbeitung 6. Virtualisierung von Betriebs- und Laufzeitsystemen 7. Cloud Computing Prof. Dr. Peter Mandl Seite 18
Mehrprozessorsysteme Mehrprozessorsysteme sind die Basis für echte Parallelverarbeitung - Heute sind Mehrkernsysteme schon in PCs Standard Für wird die Verarbeitung komplexer Synchronisation der Zugriffe auf Ressourcen erforderlich - Hauptspeicherzugriff - Kernel-interne Datenstrukturen - Ein-/Ausgabesystem - Prof. Dr. Peter Mandl Seite 19
Singletasking und Multitasking Einprogrammbetrieb (singletasking) - Nur ein (Teil-)Programm ist aktiv, das bearbeitete Programm erhält sämtliche Betriebsmittel zugeteilt Mehrprogrammbetrieb (multitasking) - Mehrere Programme sind aktiv, für Dialogverarbeitung - Für die Ausführung benötigten Betriebsmittel werden abwechselnd zugeteilt nach Prioritäten oder Zeitscheibenverfahren Zuordnung des Prozessors zu verschiedenen Programmen nach Zeitintervallen time sharing Mehrprogrammbetrieb erfordert nicht unbedingt Mehrprozessorsysteme Prof. Dr. Peter Mandl Seite 20
Stapelverarbeitung versus interaktive Verarbeitung Stapelverarbeitung (Batchprocessing) - Zu bearbeitender Auftrag (Job) muss für die Bearbeitung vollständig sein - Aufträge werden in einer Warteschlange verwaltet und nach definierter Strategie abgearbeitet Interaktive Verarbeitung - Auftrag muss vor der Bearbeitung nicht vollständig definiert sein - Permanente Kommunikation des Nutzers mit dem Betriebssystem über User Interface Prof. Dr. Peter Mandl Seite 21
Betriebsarten nach der Programmnutzung Teilhaberbetrieb - Mehrere Anwender arbeiten mit einem Transaktionsmonitor (IBM CICS, BS2000 openutm), d.h. mehrere Anwender arbeiten gleichzeitig an demselben Rechner mit demselben Programm - Das System führt die Anforderungen der Anwender in sog. Transaktionen aus - Transaktionen werden komplett oder gar nicht bearbeitet - Beispiel: Zentrale Buchungssysteme Teilnehmerbetrieb - Mehrere Anwender arbeiten mit einem zentralen Rechner, aber mit unterschiedlichen, von einander unabhängigen Programmen und Daten - Rechner sieht für jeden Anwender wie eigener Rechner aus Prof. Dr. Peter Mandl Seite 22
Teilnehmerbetrieb Im Teilnehmerbetrieb erhält jeder Anwender einen eigenen Prozess und sonstige Betriebsmittel vom Betriebssystem zugeteilt U1 U2 U3... Un Onlinezugang P1 P2 P3... Pn Betriebssystem Datenbankverbindung Ux Anwender mit Dialog Datenbank Px Benutzerprozess mit geladenem Programm Prof. Dr. Peter Mandl Seite 23
Teilhaberbetrieb Teilhaberbetrieb mit Transaktionsmonitor (CICS, UTM,...), auch DB/DC-Systeme genannt Prozesse und sonstige Betriebsmittel werden vom Transaktionsmonitor zugeteilt U1 U2 U3... Un Onlinezugang über Transaktionsmonitor gesteuert P1 P2 P3... Pn Betriebssystem Transaktionsmonitor Datenbankverbindung über Transaktionsmonitor verwaltet Datenbank Ux Px Anwender mit Dialog im Teilhaberbetrieb Prozess durch Transaktionsmonitor verwaltet Prof. Dr. Peter Mandl Seite 24
Teilhaberbetrieb: Ablauf Typischer Ablauf beim Aufruf eines Transaktionsprogramms Terminal Verteiler (Dispatcher) Transaktionsprogramm Datenbank 1: Request (TAC, Daten) Ressourcenzuteilung 2: Adressierung des Transaktionsprogramms 3: Datenbankzugriffe 4: Datenbankinhalte 5: Ausgabe aufbereitet für Terminalsausgabe Weitere Verarbeitung... Umgebung des Transaktionsmonitors Prof. Dr. Peter Mandl Seite 25
Überblick 1. Zugriffsschutz in n 2. Betriebssystemarchitekturen 3. Klassische Großrechnerbetriebsarten 4. Verteilte Verarbeitung 5. Terminalserver-Betrieb 6. Virtualisierung von Betriebs- und Laufzeitsystemen 7. Cloud Computing Prof. Dr. Peter Mandl Seite 26
Verteilte Systeme Verteilte : - Die Mikrokern-Architektur vereinfacht auch eine Verteilung der Serverprozesse auf mehrere Rechner in einem Netzwerk - Das Client-/Server-Modell lässt sich also zu einem verteilten Betriebssystem ausbauen - Ein echt verteiltes Betriebssystem macht die Verteilung der Services im Netz für den Clientprozess transparent - Heute keine Praxisrelevanz Heutige verteilte Systeme basieren in der Regel auf einer Kommunikations-Middleware wie CORBA, RMI oder EJB (im User Modus realisiert) Meist Nutzung des Client-/Server-Prinzips Aber auch -to- möglich Prof. Dr. Peter Mandl Seite 27
Client-/Server Dedizierte Rollen: Client und Server Client und Serverkomponenten sind üblicherweise über ein Netzwerk verteilt Client und Server kommunizieren über Requests Softwarekonzept! Client Server Server Server... Kernel1 Kernel2 Kernel3 Kernel4 Netzwerk Service Request Prof. Dr. Peter Mandl Seite 28
-to- Eigenes Betriebssystem auf jedem Keine Rollenaufteilung wie im Client-/Server-Modell Varianten: pur, hybrid, Superpeer (Weiterentwicklung von hybrid) Zentraler Server Dienstverzeichnis... Superpeer Verzeichnis Superpeer Information Dienst im Dienstverzeichnis anfragen nutzt Dienst eines anderen s Dienst im Dienstverzeichnis anfragen nutzt Dienst eines anderen s Superpeer Verzeichnis... Pur Beispiel: Gnutella Hybrid Beispiele: Napster Dienst im Dienstverzeichnis anfragen nutzt Dienst eines anderen s Superpeer: BitTorrent, Skype Prof. Dr. Peter Mandl Seite 29
Middleware Die Kommunikations-Middleware übernimmt die Aufgaben der Client-/Server-Kommunikation (verteilte Anwendung) Verteilt werden Anwendungs-Clients und -Server Jeder Rechnerknoten verfügt über ein komplettes Betriebssystem Client-Prozess Anwendungs- Server 1 Anwendungs- Server 2 Anwendungs- Server 3 Middleware Middleware Middleware Middleware... Kernel 1 Kernel 2 Kernel 3 Kernel 4 Service- Request Service- Request Netzwerk Prof. Dr. Peter Mandl Seite 30
Beispiel: WWW-Anwendung Web-Anwendungen sind auch verteilte Anwendungen und benötigen mehrere Serversysteme - Web-Server - Application Server - Datenbanksystem Web-Client (Browser) erzeugt den Request über HTTP WebClient Kernel Web- Server Middleware Kernel Appl. Server Middleware Kernel Datenbank Kernel 1: HTTP-Request... 2: Service Request Netzwerk 3: DB Request Prof. Dr. Peter Mandl Seite 31
Application-Server-Betrieb (1) In heutigen verteilten Systemen werden statt Transaktionsmonitoren oft auch sog. Application- Server verwendet (auch Middleware) - Derzeit aktuell: EJB Application Server (Enterprise Java Beans) und.net - Stellen auch Plattformen für verteilte Komponentensysteme bereit - Beispiele: Oracle Weblogic AS, JBoss AS, IBM Websphere AS Verteilte Transaktionsverarbeitung ist aber wesentlich komplexer als lokale Transaktionsverarbeitung Prof. Dr. Peter Mandl Seite 32
Application-Server-Betrieb (2) C1 C2 C3... Cn Mit eigenen n Netzwerk Aufruf Datenbankserver- Betriebssystem K1 K2 K3... Km Anwendungsserver-Betriebssystem Application- Server Datenbanksystem... P1 P2 P3... Pl Prozessbzw. Thread- Pool Datenbankverbindung über das Netzwerk durch Application-Server verwaltet Kx Py Softwarekomponente Prozess/Thread Cx Anwender mit Clientprogramm auf einem Arbeitsplatzrechner Prof. Dr. Peter Mandl Seite 33
Überblick 1. Zugriffsschutz in n 2. Betriebssystemarchitekturen 3. Klassische Großrechnerbetriebsarten 4. Verteilte Verarbeitung 5. Terminalserver-Betrieb 6. Virtualisierung von Betriebs- und Laufzeitsystemen 7. Cloud Computing Prof. Dr. Peter Mandl Seite 34
Terminalserver-Betrieb Üblicherweise PCs, sog. Thin-Clients Client- Rechner Client- Rechner Client- Rechner Client- Rechner... TS-Client TS-Client TS-Client TS-Client Netzwerk TS-Server TS-Server TS-Server A1 A2... A2 A1 A2 A3 Server-Rechner Server-Rechner Server-Rechner Serverfarm Ax: Anwendung TS-Client: Clientsoftware des Terminalservers TS-Server: Serversoftware des Terminalservers Prof. Dr. Peter Mandl Seite 35
Überblick 1. Zugriffsschutz in n 2. Betriebssystemarchitekturen 3. Klassische Großrechnerbetriebsarten 4. Terminalserver-Betrieb 5. Verteilte Verarbeitung 6. Virtualisierung von Betriebs- und Laufzeitsystemen 7. Cloud Computing Prof. Dr. Peter Mandl Seite 36
Was ist Virtualisierung? Allgemeine Definition: - Unter Virtualisierung versteht man Methoden zur Abstraktion von Ressourcen mit Hilfe von Software Virtuelle Maschine verhält sich wie die reale Maschine Diverse Varianten: - Virtuelle Computer: Server- und Desktopvirtualisierung (= Betriebssystem- bzw. Plattformvirtualisierung) - Storage Virtualisierung - Anwendungsvirtualisierung - Virtuelle Prozessumgebungen (Prozessmodell und virtueller Speicher) - Virtuelle Prozessoren: Java Virtual Machine (JVM) - Netzwerkvirtualisierung (vlan) Prof. Dr. Peter Mandl Seite 37
Betriebssystemvirtualisierung Grobes Virtualisierungsmodell mit unterschiedlichen Ausprägungen (Hypervisor Typ 1, Typ2 ) Mehr dazu in später Anwendungsprozesse......... Betriebssystem 1 (Windows Vista) Betriebssystem 2 (Windows 2008)... Betriebssystem n (Linux) Virtuelle Basismaschine = VM-Monitor Hardware Prof. Dr. Peter Mandl Seite 38
Laufzeitsysteme virtualisieren Wird heute immer mehr eingesetzt! Beispiele: - Java Virtual Machine -.NET Common Language Runtime Bytecode wird meist interpretiert Vorteil - Programme werden unabhängig von der Systemplattform Prof. Dr. Peter Mandl Seite 39
Überblick 1. Zugriffsschutz in n 2. Betriebssystemarchitekturen 3. Klassische Großrechnerbetriebsarten 4. Terminalserver-Betrieb 5. Verteilte Verarbeitung 6. Virtualisierung von Betriebs- und Laufzeitsystemen 7. Cloud Computing Prof. Dr. Peter Mandl Seite 40
Cloud Computing: Grundlegendes Cloud = Rechnerwolke Cloud-Computing-Ansatz: IT-Infrastruktur wird über ein Netzwerk (z.b. Internet) von einem Cloud- Anbieter zur Verfügung gestellt: - Rechenkapazität,, Datenspeicher, Software Man unterscheidet aus Betreibersicht: - Private Cloud - Public Cloud - Hybrid Cloud Prof. Dr. Peter Mandl Seite 41
Cloud Computing: Cloud-Dienstmodelle IaaS = Infrastructure as a Service Cloud-Provider bietet Zugang zu virtualisierten Rechnern (inkl. BS) und Speichersystemen Basis ist Betriebssystemvirtualisierung Beispiele: Amazon Elastic Compute Cloud (EC2) PaaS = Platform as a Service - Cloud-Provider bietet Zugang zu Programmierungsumgebungen - Beispiele: Google App Engine, Windows Azure SaaS = Software as a Service - Cloud-Provider bietet Zugang zu Anwendungsprogrammen - Beispiele: Google Docs, Microsoft Cloud Services, Salesforce.com (CRM-System) Prof. Dr. Peter Mandl Seite 42
Überblick Einführung in Betriebssystemarchitekturen und Betriebsarten 3. Interruptverarbeitung in n 4. Prozesse und Threads 5. CPU-Scheduling 6. Synchronisation und Kommunikation 7. Speicherverwaltung 8. Geräte- und Dateiverwaltung 9. Betriebssystemvirtualisierung Prof. Dr. Peter Mandl Seite 43