Modul: B-BS Betriebssysteme WS 2015 Betriebssysteme - Übersicht Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Organisation Vorlesung Dozent Prof. Dr. Rüdiger Brause, Raum 104a Email: R.Brause@Informatik.Uni-Frankfurt.de Vorlesung Mo 10.15-11.45 Magnus HS Mi 10.15-11.45 Magnus HS Leistungsschein Bachelor: rechtzeitig anmelden! Möchten mehr als 3 Teilnehmer die Modulprüfung (Schein) absolvieren, so findet eine Klausur (100% = 120 Pkt.) statt; andernfalls eine mündliche Prüfung. Die Übungspunkte (normiert zu max.10% der Klausurpunkte) werden zu den Klausurpunkten addiert Mindestens 50% der 100% Klausurpunkte müssen erreicht werden. Folie 2 Organisation Übungen Tutoren: Eric Hutter, Marcel Mauri, Tung Le Trong Übungszeiten: Mittwochs nachmittag. Anmeldung im LSF bis heute 14 Uhr! Abgaben Ausgabe Mittwochs, Abgabe 6 Tage später bei der Übung Abgabe Lösungen (Dokumentation+Code) per email Abgabe Lösungen ausgedruckt an Tutor Bei Recherchen sind Quellen zu nennen (URL, Screenshot, ). Es dürfen Aufgaben in der Gruppe besprochen werden. Die Abgabe zur Übung muss aber für jede (Teil-)Aufgabe eine erkennbare Eigenleistung (mit eigenen Worten aufgeschrieben bzw. selbstständig programmiert) enthalten Das mehrfache Abgeben der gleichen Lösung bzw. des gleichen Quellcodes wird durch die Vergabe von 0 Punkten für alle betreffenden Abgaben gewertet! Für die Anrechnung der Bonuspunkte zur Klausur: Zweimal an der Tafel vorrechnen. Folie 3 1
Einführung Motivation Wozu diese Vorlesung? Der Windows-PC ist eine fremdbestimmte Maschine. Was sich auf dem Desktop und in allen nur denkbaren Ecken des Betriebssystems tummelt, hat sich größtenteils selbst installiert. Die lästigen Parasiten zehren an Prozessorleistung und Speicher, und sie nehmen gegen unseren Willen Kontakt mit den Herstellern auf. Welche Daten sie sammeln und übertragen, weiß man nicht. Die verschiedenen Dienste sind so verzahnt, dass kein Laie hier seine eigene Ordnung schaffen und aufräumen könnte. Obwohl wir unsere Hardware und unsere Software selbst bezahlen, haben wir die Kontrolle verloren. FAZ, 10.2.2004 Folie 4 Einführung Wozu diese Vorlesung? Verständnis für interne Rechnervorgänge Was geht da vor? Wie kann ich eingreifen? Welche Fehler können passieren? Womit muss ich in kleinen Systemen (eingebettete Systeme) rechnen? Verbesserung + Ergänzung eines Betriebssystems Eigene Treiber für Spezialhardware Datenbankanbindungen, neue Linux-Module Entwurf eines eigenen Betriebssystems Design von neuen Mikrosystemen, etwa auf Scheckkartenchips Design von Forschungssystemen, etwa mobile Schwärme Folie 5 Welches Betriebssystem? Welches Betriebssystem haben Sie? Welches Betriebssystem ist wichtig? Unix / Linux Windows /OS X /Android Verkauf 2013/14 Desktop+Notebooks 90,0% 9% Tablet computer 7,5% 92% Smartphones 3,3% 94% Folie 6 2
Das Schichtenmodell SYSTEMAUFRUFE SCHNITTSTELLEN VIRTUELLE MASCHINEN Folie 7 Einführung Was ist ein Betriebssystem?? Die Software (Programmteile), die für den Betrieb eines Rechners anwendungsunabhängig notwendig ist.? Die Gesamtheit der Programmteile, die die Benutzung von Betriebsmitteln steuern und verwalten.? Diejenigen Programme eines digitalen Rechnersystems, die zusammen mit den Eigenschaften der Rechenanlage die Basis der möglichen Betriebsarten des digitalen Rechnersystems bilden und insbesondere die Abwicklung von Programmen steuern und überwachen (DIN 44300).? Zusammenfassende Bezeichnung für alle Programme, die die Ausführung der Benutzerprogramme, die Verteilung der Betriebsmittel auf die einzelnen Benutzerprogramme und die Aufrechterhaltung der Betriebsart steuern und überwachen (DUDEN). Folie 8 Betriebssystemgliederung Benutzerschnittstelle textuelle und graphische Interaktion mit dem Benutzer Dienstprogramme, Werkzeuge oft benutzte Programme wie Editor, Linker,... Übersetzungsprogramme Interpreter, Compiler, Translator,.. Systemprogramme Speicher-, Prozessor-, Geräte-, Netzverwaltung Folie 9 3
UNIX Systemsoftware Systemprogramme Einheiten, Bausteine. ar build & maintain archives cat concatenate files standard out cc compile C program chmod change protection mode cp copy file echo print argument grep file search including a pattern kill send a signal to a process ln link a file lp printe a file ls list files and directories mv move a file sh start a user shell tee copy standard in to standard out and to a file wc word count Folie 10 Benutzungsrelationen Benutzer benutzt Benutzerprogramm benutzt Betriebssystem benutzt Maschinenhardware Folie 11 Betriebssystemschichten Schichtenmodell Zwiebelschalenmodell User 1 User 2 User 3 Compiler Editor... Spiele Betriebssystemdienste Hardware HW Folie 12 4
Typischer Betriebssystemaufbau Benutzer 1 Benutzer N Benutzeroberfläche User Interface Management System Anwendung 1 Betriebssystemkern Operating System Kernel Hardware Systemaufruf Maschinencode Folie 13 UNIX-Betriebssystemkern Multi- User Dienstprogramm Werkzeug Benutzer- Programm 1 Benutzer- Shell 1 Benutzer- Shell 2 System- Programm 1 Folie 14 System- Programm 2 Überprüfbare Schnittstelle und Funktionsverteilung Speicherverwaltung Prozess- Serielle Ein/Ausgabe Dateisystem Display Floppy Netz manage- Platte TTY Drucker Maus ment Hardware Multiprogramming user mode kernel mode Benutzungsoberfläche Implementierungsunabhängige Schnittstellen: POSIX = Portable Operating System Interface based on UniX MACH- Betriebssystemkern Mach-Kern Benutzerprogramm user mode kernel mode File Manager Speicher Manager Terminal I/O Scheduler, Nachrichtenübermittlung, Basic I/O, Speicherobjekte Hardware Mikrokern Vorteile: minimaler Kern, alle Funktionen modularisiert austauschbar Nachteile: Kommunikationsdauer zwischen Managern Folie 15 5
Android-Betriebssystemkern Single User Multiprogramming user mode kernel mode Linux Samsung UI Benutzer- Programm 1 Java VM Speicherverwaltung HTC UI System- Programm 1 Benutzungsoberfläche System- Programm 2 Überprüfbare Schnittstelle und Funktionsverteilung Serielle Ein/Ausgabe Dateisystem Prozess- Display GPS Maus SD card Netz management Hardware Folie 16 Windows NT - Anforderungen kompatibel zu vorhandenen Systemen Unix, DOS,.. zuverlässig und robust leicht übertragbar auf andere CPUs (Portierbarkeit) leicht veränderbar und anpassungsfähig leistungsstark Geht das überhaupt? Folie 17 Windows NT - Betriebssystemkern Idee: Zwischenschichten (Subsysteme) einführen Single User Logon Security Subsystem Win/DOS Client Win32 Subsystem POSIX Subsystem POSIX Client OS/2 OS/2 Subsystem Client user mode kernel mode Object Manager Systemdienste Process Local Memory Security Manager Proc. Calls Manager Monitor Kernel Hardware Abstraction Layer HAL Hardware I/O System Win NT 3.1, Win NT4.0, Windows 2000, Windows XP, Vista, Win7, Win8, Version 3.1 4.0 5.0 5.1 6.0 6.1 6.2 Codezeilen: 8 Mio. 40 Mio.?? Folie 18 6
Windows NT - Lösungen Kompatibilität pro emuliertes BS ein extra Subsystem (Server), von Kunden (Clients) durch Nachrichten (local procedure calls LPC) angefordert. Sie setzen auf Dienstleistungen der NT Executive (Syscalls) auf. Robustheit Trennung der Programmablaufumgebungen (virt. Maschinen), kein direkter Hardwarezugriff fehlertolerantes Dateisystem, Netzdienste. Portierbarkeit In C geschriebene Module, auf Hardwaremodell HAL aufsetzend Folie 19 Frage Was sind die wesentlichen Unterschiede zwischen den Betriebssystemkernen von Mach, Unix (Linux) und Windows NT? Unix: Multi User-System, schwerer Kern Windows NT: Single User-System, schwerer Kern Mach: leichter Kern Folie 20 BS und Rechnerarchitekturen Einprozessorsystem PCs, kleine Server Auch Mehrkernbetrieb BS- Kern Nutzer 1 Programm... Nutzer n Programm Massenspeicher Programme Daten Prozessor Hauptspeicher Bis max 16 CPU erweiterbar. Problem: Speicherzugriff (Systembus) Folie 21 7
BS und Rechnerarchitekturen Multiprozessorsystem größere Server P 1 P2 P n Verbindungsnetzwerk Tanzsaal BS- Kern Nutzer 1 Programm... Nutzer n Programm Problem: hot spots im BS Folie 22 BS und Rechnerarchitekturen Mehrrechnersystem größere Server BS- Kern Nutzer 1 Programm BS- Kern Nutzer n Programm P 1 P n Verbindungsnetzwerk Vorzimmer Folie 23 BS und Rechnerarchitekturen Rechnernetz multiple Rechner, PCs, Server BS- Kern Nutzer 1 Programm BS- Kern Nutzer n Programm P 1 P n Verbindungsnetzwerk LAN, WAN Folie 24 8
SCHICHTENMODELL SYSTEMAUFRUFE SCHNITTSTELLEN VIRTUELLE MASCHINEN Folie 25 Typischer Betriebssystemaufbau Benutzer 1 Benutzer N Benutzeroberfläche User Interface Management System Anwendung 1 Dienstprogramm Werkzeug Betriebssystemkern Operating System Kernel Hardware Systemaufruf Maschinencode Folie 26 Systemaufrufe Systemaufrufe nötig für Dateioperationen, Prozessmanagement, Speicheranforderungen, Netzwerkoperationen,... Systemaufrufe wie? Problem der unbekannten Referenz Adr 1 BS-Code 1 Adr 1 BS-Code 1 ~ ~ Adr 2 Programm 1 Adr 3 Programm 2 Hauptspeicher Relative Adresse des Programms wechselt je nach Ausführung Absolute Adresse des BS wechselt je nach Version Lösung: Aufruf mittels Traps (Falltüren) R.Brause, J.W.G-Universität Frankfurt a.m. Folie 27 Betriebssysteme: Übersicht 9
Aufruf des Betriebssystemkerns Interrupt {PC+1, PS=user mode} stack Register laden BS-Pnt PC Kernel mode PS Programminstruktionen Programminstruktionen Betriebssystemkerndienste stack {PC, PS=user mode} return from interrupt Folie 28 Systemaufrufe: Traps und Interrupts Synchrone, indirekte Methodenaufrufe (Traps)... Move A,R1 Tabelle von Interruptvektoren Trap 7 RAM-Adresse Move R1, A 0017 PS für ISR 8... 0016 Adresse der ISR 8 0015 PS für ISR 7 Laden von PS und PC 0014 Adresse der ISR 7 Asynchrones HW- 0013 PS für ISR 6 Interrupt-Signal 6 0012 Adresse der ISR 6 ISR = Interrupt Service Routines = Treiber PS = Processor Status Word (prio, mode,..) Folie 29 Der Betriebssystemkern Was passiert im Kern? Eingang Ausgang Folie 30 10
Fragen Wozu gibt es System calls? Um ohne Kenntnis der Einsprungadresse des BS die Anwendung zu binden. Wann braucht man sie nicht? Wenn man alles zu einer einzigen festen Anwendung (Eingebettetes System) binden kann. Folie 31 SCHICHTENMODELL SYSTEMAUFRUFE SCHNITTSTELLEN VIRTUELLE MASCHINEN Folie 32 Schnittstelle : Beispiel Rechteck zeichnen, Länge dx, Breite dy DrawRectangle(float dx,dy) Methode: DrawRectangle Daten: float dx,dy Protokoll: zuerst Modul Grafik initialisieren dann Skalierung setzen dann Bezugspunkt setzen schließlich Rechteck zeichnen. benutzt die Methode drawline mit den Daten x0,y0,x1,y1 Folie 33 11
Schnittstellen : Verallgemeinerung Eine Schnittstelle besteht aus Daten sowie Funktionen bzw. Methoden dafür (Objekte) Protokolle für die Benutzung der Funktionen und Daten, mit denen das Objekt Dienstleistungen erbringt (Exportschnittstelle) Die Implementierung benötigt dazu Daten, Funktionen und Protokolle für die Dienstleistungen, die sie zur Erfüllung benötigt (Importschnittstelle). Folie 34 Schnittstellen & Abstrakte Datentypen Abstrakter Datentyp = Zugriff auf Daten nur über definierte Funktionen (Kapselung) Methode1(.) Methode2(.) Attribut A code Kapselung Daten information hiding Objekt Schnittstelle des ADT = Zugriff + Reihenfolge des Zugriffs = Funktionen + Protokoll Folie 35 Schnittstellen: Export & Import Beachte: Export / Import ist relativ bzgl. einer Sicht! Export Modul 1 Import Import Export Modul 2 Folie 36 12
Virtuelle und abstrakte Maschinen Beispiel (x0,y0) (x1,y1) DrawRectangle(x0,y0,x1,y1) Graphic Processor Unit (GPU) Display(RAM) Zeichne ein Rechteck DrawRectangle(x0,y0,x1,y1) Virtuelle Maschine Abstrakte Maschine DrawRectangle(x0,y0,x1,y1) V1 DrawLine(x0,y0,x1,y0) DrawLine(x1,y0,x1,y1) DrawLine(x1,y1,x0,y1) DrawLine(x0,y1,x0,y0) SetPoint(x0,y0,black) SetPoint(x0+dx,y0,black) Display(RAM) Maschine 1 Maschine 2 Folie 37 V2 V3 V4 Abstrakte und Virtuelle Maschinen Beispiel Waschmaschine Schichtenmodell: Benutzungsoberfläche Abstrakte Maschine: Schnittstellen, nur Zugang geregelt Controller virtuelle Maschine Implementation ist verborgen Maschine Motor, Druckventile, Temperatursensoren, Heizungen, Pumpen Folie 38 Virtuelle Maschinen Schichtenabstraktion bei Zeitablauf Schicht 3 Zeit Schicht 2 Schicht 1 Folie 39 13
Beispiel: virtuelle CPU Software-Hardware-Migration bei virt. CPU Konfiguration 1 Konfiguration 2 Programm in Java-Code Java-Code Maschinencode CPU- Hardware Programm in Java-Code Microcodeund CPU-Hardware Vorteile Programm muss bei HW-Wechsel nicht geändert werden Unabh. HW-Entwicklung je nach Kundenwunsch Folie 40 Virtuelle, logische, physikalische Geräte Beispiel: virtueller Festplattenspeicher (Zwiebelmodell) logisches Gerät = HW-Treiber, benutzt physikalisches Gerät virtuelles Gerät = Verwaltungstreiber für multiple Geräte, storage management benutzt einzelne logische Geräte Kontrolle Treiber für log. Geräte Virtuelles Gerät Daten log. Gerät 1 log. Gerät 2 Treiber 1 phys. Gerät 1 Treiber 2 phys. Gerät 2 Folie 41 Frage Was ist der Unterschied zwischen abstrakten, virtuellen und logischen Maschinen? abstrakte Maschine: durch Schnittstelle beschriebene Maschinenfunktionen virtuelle Maschine: Zwischenschicht mit zwei Schnittstellen logische Maschine: wie abstrakte Maschine, benutzt direkt physikalisches Gerät Folie 42 14
Beispiel: Abstrakter backup-speicher Disk-to-Disk Storage Backup-Programm Tape driver Tape interface Disk driver Disk tape backup functions Sinnvoll für Kurze Backup-Zeiten Kurze Recovery-Zeiten Multiple Bandformate Hoher Datendurchsatz Folie 43 Beispiel: Virtueller Massenspeicher Storage Area Network SAN nutzt lokalen Massenspeicher LAN asym. Pooling Ortsinfo metadata server Lun 2 file server NAS Network Attached Storage Folie 44 Beispiel: Virtuelle Funktionen im Auto Probleme Sehr viele Funktionen und Geräte Zusammenspiel Kommunikation/Unterhaltung/Steuerung nicht genormt Lösung: Autosar (AUTomotive Open System ARchitecture ) Vorteil: genormte Entwicklungs- und Testumgebung Telefon Video Diagnose Navigation Spielkonsole Abstandssystem Virtuelle Funktionen (Softwarebus + Module) RTE Motorelektronik GSM GPS Hardware-Busse Aktoren Sensoren Folie 45 15
Beispiel: Virtualisierung von Servern Einziehen einer Virtualisierungsschicht Wo? Paravirtualisierung Virtualisierung mit OS-container OS-Container HW-Virtualisierung App1 AppN App1 AppN App1 AppN BS-Kern BS-Kern BS-Kern Laufzeit Virtual Machine Monitor VMM HyperVisor Typ2 Virtual Machine Virtual Machine Monitor Monitor VMM HyperVisor Typ2 HyperVisor Typ1 BS-Kern Hardware Hardware Hardware R.Brause, J.W.G-Universität Frankfurt a.m. Folie 46 Betriebssysteme: Übersicht Beispiel: Virtualisierung von Servern Trends: Data-as-a-Service (DaaS) (data warehouse, big data analysis) Software-as-a-service (SaaS) (cloud services) Process-as-a-Service (PaaS) (outsourcing) Infrastructure-as-a-Service (IaaS) (Nutzung fremder Rechenkapazität) IaaS Anwendung Deutsche Börse AG Standardisiert Produkte, Dienstleistungen, Abrechnungen, Güteklassen (Benchmarks) um mit ihnen zu handeln, z.b. Energiebörse. Produkt = Virt. Maschine (CPU-Leistung + RAM-Größe + Massenspeicher) Kontext = Vertragslänge, Rechtsrahmen (Staatsgebiet), Leistungsklasse, Wartungsart Benchmarks: VM(Programm+BS)-Messung im Ring1-Mode, I/o-Adr. werden abgefangen. Vorteile Kunden: nur projektbezogenen IT-Kosten fallen an Anbieter: bessere Auslastung ihrer Ressourcen durch dyn. Preisgestaltung, Werbung für ihre Firma für Großaufträge R.Brause, J.W.G-Universität Frankfurt a.m. Folie 47 Betriebssysteme: Übersicht 16