Betriebssysteme Folie 1 - 1 1 Übersicht • die meisten Rechner haben ein Betriebssystem (operating system) (Sehr kleine Systeme im Bereich der „Embedded Systems“ und einige Spezialrechner haben kein Betriebssystem. In diesen Fällen wird die Hardware direkt von den Anwendungsprogrammen verwaltet. Die ersten Rechner hatten ebenfalls kein Betriebssystem.) • welche Aufgaben hat ein Betriebssystem? − es verwaltet die Hardware des Rechners − es verwaltet die Programme, die ausgeführt werden − es steuert und protokolliert den Betriebsablauf − grundlegende Aufgaben ♦ Ablaufsteuerung für alle Prozesse ⋅ Festlegung der Priorität ⋅ Zuteilung und Entzug von Betriebsmitteln, z. B. Prozessor, Hauptspeicher, usw. ⋅ Bereitstellung und Steuerung der Kommunikationskanäle zwischen Prozessen ⋅ Schutz der Prozesse vor anderen Prozessen ♦ Hauptspeicherverwaltung ♦ Dateiverwaltung ♦ Verwaltung der Ein-/Ausgabegeräte ♦ Unterstützung beim Zugriff auf Netzwerke Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme Folie 1 - 2 ♦ Unterbrechungsbehandlung • ⋅ Ablauf einer Zeiteinheit ⋅ Ende einer Ein-/Ausgabeoperation ⋅ Anforderung eines Systemdienstes durch ein Programm ⋅ Division durch Null ⋅ usw. Vorteile eines Betriebssystems − viele Programme können (quasi) gleichzeitig ausgeführt werden − Programmerstellung wird vereinfacht, da ♦ es den Entwicklern eine Schnittstelle zur Benutzung der Hardware zur Verfügung stellt, sodass die Hardware nicht mehr direkt programmiert werden muss ♦ es die Kommunikation zwischen Programmen vereinfacht − • Aufträge können im Hintergrund abgewickelt werden Betriebssystemkern (operating system kernel) ist die unterste Ebene und wird beim Starten des Rechners geladen und ausgeführt (Betriebssystemkern läuft immer parallel zu allen anderen Programmen) • jedes Betriebssystem wird mit Systemprogrammen ausgeliefert Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme • Folie 1 - 3 Systemprogramme unterstützen die − Kommunikation mit dem System (Kommandointerpreter, Shell) − Benutzerverwaltung − Authentifizierung der Benutzer − Erfassung und Abrechnung von Leistungen (accounting) − Sicherung und Wiederherstellung von Daten − und vieles mehr (z. B. Dateimanipulationen: erzeugen, löschen, umbenennen, Rechte oder Eigentümer ändern, ...) • die meisten Betriebssysteme werden heute mit einer grafischen Benutzeroberfläche (Graphical User Interface) ausgeliefert (Die GUI ist im Allgemeinen kein Bestandteil des Betriebssystems, sondern ein separates Programm (GNOME-Desktop, KDE-Desktop, Common Desktop Environment, usw.)) Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme • Folie 1 - 4 wo befindet sich das Betriebssystem auf einem Rechner? /bin/ls /bin/cat library user programs open (...), close (...), read (...), ... system call entry scheduling disk disk controller filesystem management terminal serial line controller memory management device drivers null memory operating system kernel CPU hardware terminal disk • Betriebssystem muss für alle Hardware-Komponenten sogenannte Treiberprogramme zur Verfügung stellen • alle Dienste können über Systemfunktionen benutzt werden Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme • Folie 1 - 5 wie sieht die Hardware eines Arbeitsplatzrechners (PCs) aus? CPU 1 CPU n core 1 processing units core n processing units ... 1st level cache core n processing units core 1 processing units ... 1st level cache ... 1st level cache 1st level cache 2nd level cache 2nd level cache 3rd level cache 3rd level cache Front Side Bus / System Bus Main Memory Graphics Controller GigabitEthernet PCI-X Slots PCI-X ... Hub System Management Bus IEEE1394 Firewire Channel A Memory Controller RDRAM, DDR-SDRAM, SDRAM, ... Channel B Memory Controller RDRAM, DDR-SDRAM, SDRAM, ... North Bridge (Memory Controller Hub) WLAN Bluetooth South Bridge (I/O Controller Hub) 10/100 Mbit/s Ethernet USB AC'97 link Audio Codec Modem Codec SCSI Controller PCI-Slots ... 1-4 IDE drives Serial ATA Low Pin Count Interface (LPC) Realtime Clock, Interrupt Controller, Power Management, DMA Controller, Timer, ... Firmware Hub Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Super I/O Controller Serial Ports Parallel Ports Infrared Port Game Port Midi Port ... Betriebssysteme Folie 1 - 6 • von besonderer Bedeutung ist die Architektur der CPU (Anzahl und Art der Register, Maschinensprache), da sie einen direkten Einfluss auf die Effizienz und Struktur des Betriebssystems hat • Prozessoren haben u. U. mehrere „Registersätze“ (hyperthreading) oder mehrere „Kerne“ (multi-core), sodass verschiedene „Threads“ gleichzeitig ausgeführt werden können • prinzipieller Aufbau eines einfachen Prozessors Speicher Befehlsregister Operationsteil Adressteil Decodierer Ein/AusgabeSteuerung Mikroprogrammeinheit Steuerwerk (Leitwerk) Befehlszählregister +1 Adressberechnung Speicher Rechenwerk Speicher Speicher Kontroll- und Steuerschaltung Registerblock arithmetischlogische Einheit (ALU) • Befehle der Maschinensprache werden über ein Mikroprogramm realisiert, das im Allgemeinen fest verdrahtet ist • Rechenwerk erhält seine Anweisungen (welche Operanden wie verknüpft werden sollen) vom Steuerwerk • Prozessoren haben u. U. mehrere Verarbeitungseinheiten für Gleitkommazahlen und ganze Zahlen Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme • Folie 1 - 7 heutige Prozessortypen auf einem Chip (Chip Multiprocessor, CMP) conventional microprocessor microprocessor with hyperthreading CPU core CPU core Execution Unit SIMD FP FPU Int Unit ... Execution Unit SIMD FP FPU Int Unit ... registers registers registers L1 i-cache L1 i-cache L1 d-cache registers registers L1 d-cache L2 cache L2 cache main memory main memory multi-core microprocessor with shared L2 cache CPU core1 CPU core n Execution Unit SIMD FP FPU Int Unit ... Execution Unit SIMD FP FPU Int Unit ... registers registers L1 i-cache registers registers registers registers ... L1 d-cache L1 i-cache registers registers L1 d-cache L2 cache main memory multi-core microprocessor with separate L2 caches CPU core1 CPU core n Execution Unit SIMD FP FPU Int Unit ... Execution Unit SIMD FP FPU Int Unit ... registers registers L1 i-cache registers registers ... L1 d-cache registers registers L1 i-cache L2 cache registers registers L1 d-cache L2 cache L3 cache main memory (Das Betriebssystem muss die entsprechende Architektur kennen und unterstützen, wenn die Anwendungsprogramme von der verbesserten Architektur profitieren sollen. Eine CPU mit n Registersätzen (HT-Technologie, hyperthreading) kann wie ein System mit n virtuellen CPUs behandelt werden. Jeder logische Prozessor hat auch seine eigene Unterbrechungssteuerung usw. Da sich alle logischen Prozessoren den L1-Cache, den Bus, die Ausführungseinheit (execution unit), Sprungvorhersage (branch prediction) usw. teilen, ist ein Prozessor mit HT-Technologie nicht so leistungsfähig wie ein Prozessor mit mehreren Kernen. Die obigen Chip-Prozessoren können dann noch zu echten Mehrprozessorsystemen zusammengeschaltet werden.) Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme Folie 1 - 8 1.1 Betriebssystemarchitekturen • 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 (L4, Fiasco, QNX, ...) 1.1.1 Monolithischer Betriebssystemkern (Makrokern) • alle Funktionen werden im selben Adressraum (kernel space) erbracht ⇒ sehr hohe Systemleistung • Kern enthält alle traditionellen Funktionen (Prozessverwaltung, Hauptspeicherverwaltung, Dateiverwaltung, Netzwerkdienste, ...) ⇒ u. U. sehr unübersichtlich, da jede Funktion alle Datenstrukturen im Kern ändern und jede andere Funktion aufrufen darf (Die Pflege des Betriebssystems ist im Allgemeinen sehr schwer, da die Abhängigkeiten der Komponenten leicht dazu führen können, dass bei der Weiterentwicklung des Systems ein kleiner Fehler das gesamte Betriebssystem zum „Absturz“ bringt.) • Kern enthält die Treiber für alle Geräte, die eventuell an dem Rechner betrieben werden sollen ⇒ Verschwendung von Hauptspeicher Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme Folie 1 - 9 1.1.2 Dynamischer Betriebssystemkern (Modulkonzept) • im Prinzip ein besser strukturierter monolithischer Kern − der „eigentliche“ Kern, der sich immer im Hauptspeicher befindet, enthält nur die Funktionen, die häufig benutzt werden (u. a. muss dieser Teil das Dateisystem „kennen“, in dem die Module gespeichert sind, sodass er sie bei Bedarf nachladen kann) − spezielle Gerätetreiber, verschiedene Dateisysteme, Netzwerkdienste usw. sind als Module konzipiert und werden bei Bedarf hinzugeladen • nicht mehr benötigte Module werden nach einiger Zeit aus dem Hauptspeicher entfernt • Beispiel (Module unter Linux) /lib/modules/2.0.21 # dir drwxr-xr-x 2 root root drwxr-xr-x 2 root root -rw-r--r-1 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 Oct 1024 Oct 611 Feb 64072 Oct 128915 Oct 20529 Oct 8576 Oct 3 15:57 block/ 3 15:57 misc/ 7 10:42 modules.dep 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 der Module) / # mount -t msdos /dev/fd0 /mnt / # lsmod Module: #pages: floppy 11 / # umount /mnt / # lsmod Module: #pages: floppy 11 / # tar vft /dev/ftape ... / # lsmod Module: #pages: ftape 43 Used by: 1 (autoclean) Used by: 0 (autoclean) Used by: 0 (autoclean) Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme Folie 1 - 10 1.1.3 Mikrokern-Betriebssystem • nur die Basis-Funktionen werden im Adressraum des Betriebssystemkerns (kernel space) erbracht • alle anderen Funktionen werden im Benutzer-Adressraum (user space) erbracht ⇒ ggf. Leistungseinbußen, da häufiger Wechsel zwischen „kernel mode“ und „user mode“ ⇒ ggf. Leistungseinbußen, weil eine Nachrichtenübertragung anstelle von Prozeduraufrufen benutzt wird ⇒ Betriebssystemcode kann u. U. modular entwickelt werden ⇒ Code kann im Benutzer-Adressraum einfacher getestet werden („normale“ Entwicklungsumgebung; ein Fehler bringt nicht das ganze Betriebssystem zum „Absturz“) • • Basis-Funktionen im Mikrokern − Basis-Mechanismen zur Prozesserzeugung 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 Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme • • Folie 1 - 11 traditionelle Funktionen des Betriebssystemkerns (Prozessverwaltung, Dateiverwaltung, Netzwerkdienste, ...) werden im normalen Adressraum (user space) bereitgestellt − Funktionalität kann verteilt werden (verteilte Betriebssysteme auf Basis einer Client/Server-Architektur) − einfachere Pflege des Systems − verschiedene Betriebssysteme können gleichzeitig auf einem Rechner einfach emuliert werden Makrokern-Architektur ↔ Mikrokern-Architektur Anwendung user mode Systemdienste kernel mode Dateisystem Speicher- und E/AGeräteverwaltung Anwendung NetzwerkServer SpeicherServer DateiServer ProzessServer ...Server user mode kernel mode Prozessorund Prozesssteuerung Mikrokern Hardware Dienst- / Funktionsaufruf Hardware Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Antwort / Ergebnis Betriebssysteme Folie 1 - 12 1.1.4 Hybrider Betriebssystemkern • Kompromiss zwischen monolithischem Kern und Mikrokern • nutzt möglichst viele Vorteile beider Architekturen • Beispiele: Windows NT/2000/XP/..., Plan 9 (verteiltes Betriebssystem) 1.1.5 Virtuelle Maschinen • „virtuelle Maschine“ ist eine spezielle Software, die zwischen dem Rechner und dem sogenannten Gast-Betriebssystem angesiedelt ist und dem Gast-Betriebssystem eine virtuelle Ablaufumgebung zur Verfügung stellt • IBM VM/CP-67 war eines der ersten Betriebssysteme, das virtuelle Maschinen zur Verfügung stellte (1966) • verschiedene Arten virtueller Maschinen − CPU-Emulatoren − Betriebssystem-Emulatoren − virtuelle Ablaufumgebung für verschiedene Betriebssysteme − virtuelle Ablaufumgebungen innerhalb eines Betriebssystems Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme Folie 1 - 13 • virtuelle Maschinen können seit einigen Jahren auch auf Arbeitsplatzrechnern eingesetzt werden, da die Hardware dafür jetzt ausreichend leistungsfähig ist • Realisierungsmöglichkeiten app 1 native applications ... app 1 ... guest operating system 1 ... guest operating system n virtual hardware ... virtual hardware virtual machine monitor host operating system hardware app 1 ... app 1 ... guest operating system 1 ... guest operating system n virtual hardware ... virtual hardware virtual machine monitor hardware 1) Verwaltungs-Software der virtuellen Maschinen (Virtual Machine Monitor, VMM, Hypervisor) kann auf einem sogenannten Wirt-Betriebssystem installiert werden (wird im Allgemeinen als „hosted architecture“ bezeichnet) − Rechner kann „normal“ benutzt werden, da die Anwendungsprogramme des Wirt-Betriebssystems direkt auf dem Betriebssystem ausgeführt werden können − die virtuellen Maschinen der verschiedenen Gast-Betriebssysteme können bei Bedarf gestartet und gestoppt werden (sie laufen als „normale“ Anwendungsprogramme auf dem Wirt-Betriebssystem) − VMM kann auf jeder Hardware installiert werden, auf der das Wirt-Betriebssystem läuft − ggf. Leistungsminderung, da sich zwischen Anwendungsprogramm und Hardware zwei Betriebssysteme und der VMM befinden Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme Folie 1 - 14 2) Verwaltungs-Software der virtuellen Maschinen wird direkt auf der Hardware des Rechners installiert (wird im Allgemeinen als „stand-alone architecture“, „native architecture“ oder „baremetall architecture“ bezeichnet) − im Allgemeinen leistungsfähiger, da eine Verwaltungsebene fehlt − benötigt im Allgemeinen „spezielle“ Hardware (es werden z. B. nicht alle für einen PC verfügbaren Netzwerk- oder Grafikkarten unterstützt) 3) vollständige Virtualisierung − die Hardware wird simuliert und das Gast-Betriebssystem läuft auf einem „Interpreter“ (ist z. B. immer erforderlich bei CPU-Emulatoren) − transparent für Gast-Betriebssystem (das Gast-Betriebssystem weiß nichts vom VMM und muss auch nicht modifiziert werden) − im Allgemeinen relativ langsam 4) Paravirtualisierung − stellt dem Gast-Betriebssystem eine Schnittstelle zur Verfügung (hypervisor calls), über die es quasi direkt auf die Hardware zugreifen kann − Gast-Betriebssystem muss modifiziert werden − im Allgemeinen sehr schnell Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme • • Folie 1 - 15 virtuelle Maschine eines Gast-Betriebssystems inklusiv aller Anwendungsprogramme ist nur eine große Datei, solange die virtuelle Maschine nicht gestartet wurde − Datei kann einfach auf neuen Rechner kopiert werden − Installation und Konfiguration von Betriebssystem und Programmen entfällt, wenn der neue Rechner eine entsprechende virtuelle Umgebung bereit stellt Einsatzgebiete − Isolierung Application 1 ... Application n Operating System Hardware Application 1 Operating System 1 Application n ... Operating System n Virtual Machine Monitor Hardware (Kann die Sicherheit und Zuverlässigkeit erhöhen, da Viren, Programmfehler oder ähnliches auf die jeweilige virtuelle Maschine begrenzt bleiben und damit keine Auswirkungen auf die anderen virtuellen Maschinen haben.) − Konsolidierung Application 1 Operating System 1 Hardware 1 ... Application n Application 1 Operating System n Operating System 1 Hardware 2 Application n ... Operating System n Virtual Machine Monitor Hardware (Inzwischen gibt es in vielen Firmen sehr viele Server, die erhebliche Kosten (Strom, Wartung, …) verursachen. Da die Leistungsfähigkeit der Rechner immer größer wird, werden viele Server nicht mehr ausgelastet. Die Konsolidierung der Server auf eine Hardware-Plattform, kann erhebliche Kosten einsparen.) Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme − Folie 1 - 16 Migration Application Application Operating System Operating System Virtual Machine Monitor Virtual Machine Monitor Virtual Machine Monitor Virtual Machine Monitor Hardware 1 Hardware 2 Hardware 1 Hardware 2 (Die Virtualisierung entkoppelt das Gast-Betriebssystem mit seinen Anwendungsprogrammen von der Hardware, sodass auf einfache Weise ein Lastausgleich zwischen verschiedenen Rechnern durchgeführt werden kann, wenn einzelne virtuelle Maschinen zur Laufzeit auf eine andere weniger stark belastete Plattform verschoben werden.) Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme Folie 1 - 17 1.1.5.1 CPU-Emulatoren • stellen die Maschinensprache eines anderen Prozessors zur Verfügung • Einsatzgebiete: − Entwicklung der System-Software für Rechner, deren Hardware parallel entwickelt wird, sodass Hardware und Software gleichzeitig fertig werden − Ablaufumgebung für Software alter Prozessoren, z. B. ♦ Zilog Z80-Prozessor ♦ Motorola 6800 − Emulation historischer Rechner, z. B. ♦ Zuse Z3 ♦ DEC PDP 1 ♦ MITS Altair 8800 ♦ Commodore C64 • Java Virtual Maschine − emuliert Hardware, die es zurzeit nur als Spezifikation gibt − kann in Hardware realisiert werden, wenn der Prozessor ByteCode als Maschinensprache benutzt (Java-Prozessor) Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme Folie 1 - 18 1.1.5.2 Betriebssystem-Emulatoren • emulieren ein komplettes Betriebssystem, sodass Anwendungsprogramme für dieses System ausgeführt und entwickelt werden können (Ggf. müssen diese virtuellen Maschinen auf CPU-Emulatoren ausgeführt werden.) • u. a. gibt es Emulatoren für − CP/M, CP/M-86 oder CP/M-68K von Digital Research − GEM (Graphical Environment Manager) von Digital Research − TOS (The Operating System) von Atari 1.1.5.3 Virtuelle Ablaufumgebungen • virtuelle Ablaufumgebung für verschiedene Betriebssysteme − dies ist das klassische Einsatzgebiet für virtuelle Maschinen − es werden mehrere identische Umgebungen auf einem Rechner gestartet, in denen jeweils ein Betriebssystem installiert wird (Die Umgebungen können dasselbe Betriebssystem oder verschiedene Betriebssysteme enthalten. In der Microsoft Windows-Welt sind identische Betriebssysteme z. B. sinnvoll, wenn man verschiedene funktionsfähige Versionen von Microsoft Office benötigt (andernfalls ist nur die neueste Version richtig nutzbar). In der Ausbildung können damit z. B. Ablaufumgebungen geschaffen werden, in denen Studierende Administratorrechte haben und ein Betriebssystem installieren und konfigurieren können, ohne sich gegenseitig zu stören oder das Wirt-System kompromittieren zu können, sofern eines benötigt wird.) − zuerst Software für virtuelle Maschinen installieren (Im PC-Bereich gibt es Software für Linux und Microsoft Windows. Sie wird entweder auf einem Wirt-Betriebssystem (host system) installiert (z. B. Microsoft Virtual PC, VMware Server) oder direkt auf der Hardware (z. B. VMware ESX-Server).) Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme Folie 1 - 19 − Software emuliert einen virtuellen PC, dessen virtuelle Hardware-Konfiguration fest vorgegeben ist − virtuelle Hardware des virtuellen PCs wird auf die reale Hardware (des Wirt-Systems) abgebildet − auf den virtuellen PCs können verschiedene Gast-Betriebssysteme (guest system) installiert werden, zwischen denen per „Mausklick“ gewechselt werden kann (Die Gast-Betriebssysteme müssen auf derselben Hardware lauffähig sein, da keine CPU-Emulation stattfindet. Auf diese Weise können auf einem Rechner z. B. verschiedene Linux-Distributionen, verschiedene Versionen von Linux und/oder verschiedene Microsoft Windows-Systeme installiert werden (z. B. Windows 95, Windows XP und Windows Vista).) • virtuelle Ablaufumgebungen innerhalb eines Betriebssystems − Wirt- und Gast-Betriebssystem sind identisch − Einsatzgebiete: ♦ Virtualisierung der Umgebung, sodass z. B. verschiedene Benutzer Web-Server aufsetzen können, die dieselben virtuellen Port-Nummern benutzen (Da jeder Benutzer alle Betriebsmittel mehr oder weniger uneingeschränkt benutzen kann, hat er im Prinzip den Rechner für sich alleine. Er kann auch wieder Administratorrechte in der virtuellen Umgebung erhalten, ohne die Stabilität des Gesamtsystems beeinflussen zu können.) ♦ Kapselung der Umgebung, sodass ein Programm keine Änderungen außerhalb der Umgebung vornehmen kann (Dies wird oft auch als „sandbox“ oder „jail“ bezeichnet. Auf diese Weise wird eine bessere Isolation der Prozesse erreicht, als wenn sie auf derselben Instanz eines Betriebssystems ausgeführt werden.) − wird z. B. mit „Container“/„Zone“ ab „Solaris 10“ realisiert Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme Folie 1 - 20 1.2 Klassifizierung • Betriebssysteme können auf verschiedene Weise klassifiziert werden • mögliche Klassifizierungen nach − unterstützten Betriebsarten (Dialogbetrieb, Echtzeitbetrieb, ...) − Einsatzgebieten („normaler“ Rechner, Rechnernetz, ...) − Größe des Rechners (PC, Mini-Computer, Großrechner, ...) 1.2.1 Betriebsarten • wo werden Rechner benutzt? − Software-Entwicklung, Programmierausbildung, usw. Kennzeichen: ♦ interaktive Benutzung des Rechners ♦ sehr kurze Antwortzeiten gefordert ♦ (Quasi-)Parallel-Verarbeitung − aufwendige Berechnungen (Statik einer Brücke, Animationen) Kennzeichen: ♦ überwiegend wird nur die CPU belastet ♦ E/A - Geräte werden kaum genutzt Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme − Folie 1 - 21 Gehaltsabrechnung inkl. Ausdruck der Abrechnungsformulare Kennzeichen: ♦ geringe Belastung der CPU ♦ starke Belastung der Drucker − Flugbuchungen durch Reisebüros Kennzeichen: ♦ viele Sichtgeräte/PCs 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 ♦ hohe Ausfallsicherheit muss gewährleistet sein • unterschiedliche Anforderungsprofile stellen unterschiedliche Forderungen an das Betriebssystem ⇒ Betriebsart: Art und Weise, in der Aufträge bearbeitet werden Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme Folie 1 - 22 1.2.1.1 Stapel-, Dialog-, Echtzeitbetrieb • Stapelbetrieb (batch processing) − älteste Betriebsart − Rechner erhält vollständig definierten Auftrag über eine Warteschlange (Früher z. B. über Lochkarten oder ein Magnetband und heute über eine spezielle Datei. Mit Hilfe einer sogenannten „Job Control Language“ wird u. a. festgelegt, welche Ressourcen der Auftrag benötigt und auf welchen Systemen er ausgeführt werden soll.) − Benutzer kann den Ablauf des Programms während der Ausführung nicht beeinflussen − Ergebnisse des Programms werden in Dateien (heute) oder auf Magnetbänder (früher) geschrieben (früher auch auf Lochstreifen oder Lochkarten gestanzt) oder gedruckt (Papier) − sehr gute Auslastung des Rechners ist möglich, da alle Betriebsmittel vorab bekannt sind − heute im Allgemeinen als Hintergrundbetrieb bei TimesharingSystemen (werden in einem späteren Kapitel vorgestellt) − die Haupt-Betriebsart bei Hochleistungsrechnern (Es werden spezielle Produkte zur Verteilung der Aufträge eingesetzt, die auch Vorabreservierungen und ähnliches unterstützen. Bekannte Produkte sind z. B. der „Load Leveler“ von IBM, die „Load Sharing Facility“ von „Platform Computing“ oder „PBS pro“ (Portable Batch System) von Altair. Im „Open Source“-Bereich gibt es z. B. „Open PBS“ oder den „TORQUE Resource Manager“ sowie den „MAUI Cluster Scheduler“). Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme • Folie 1 - 23 Dialogbetrieb (interactive processing) − Benutzer kommuniziert direkt mit dem Rechner, z. B. über Tastatur, Maus und/oder (berührungssensitiven) Bildschirm − ein Auftrag ist vorab nicht festgelegt − er kann vom Benutzer interaktiv gesteuert werden (vergleichbar mit einem Gespräch, das mit dem Rechner geführt wird) − • im Allgemeinen über ein Zeitscheibenverfahren realisiert Echtzeitbetrieb (real time processing) − Steuerung von Maschinen/Robotern/... − Zeitschranken müssen eingehalten werden − Einsatzgebiet z. B. in der Prozessdatenverarbeitung (Mess-, Steuer-, Regelungstechnik) oder Unterhaltungselektronik (SetTop Boxen, DVD-Spieler, ...) Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme Folie 1 - 24 1.2.1.2 Ein-/Mehrprogrammbetrieb • Einprogrammbetrieb (single program processing) − Rechner bearbeitet eine Aufgabe nach der anderen − alle Betriebsmittel stehen diesem Programm zur Verfügung ♦ Prozessor ♦ Hauptspeicher ♦ Dateien, usw. − kommt heute nur noch bei einfachen Arbeitsplatzrechnern oder Spezialrechnern vor − Beispiel 0 5 10 Zeit e1 idle e2 idle e3 idle Eingabegerät idle a1 idle a2 a3 idle Ausgabegerät idle r1 idle r2 idle r3 idle CPU e1 r1 P1 a1 e2 r2 a2 P2 Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß e3 r3 P3 a3 Betriebssysteme • Folie 1 - 25 Mehrprogrammbetrieb (multiprogramming) − Rechner bearbeitet abwechselnd mehrere Aufgaben, die ineinander verzahnt (quasi-) parallel ablaufen − jede Aufgabe erhält während ihrer Laufzeit bestimmte Betriebsmittel zugeteilt − 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 − Beispiel 0 5 10 Zeit e1 e2 idle e3 Eingabegerät idle idle r1 e1 r1 idle a1 a2 idle r2 r3 a3 Ausgabegerät idle CPU eingesparte Zeit a1 P1 e2 r2 a2 P2 e3 r3 a3 P3 Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme • Folie 1 - 26 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 Prozesswechsel E/A-Anforderung Start E/A 1 Start E/A 2 P-wechsel Unterbrechung Ende E/A 1 Prozesswechsel Ende E/A 2 Unterbrechung E/A-Anforderung Start E/A 1 Prozesswechsel E/A-Anforderung Start E/A 2 P-wechsel Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Ein/Ausgabe Betriebssysteme Folie 1 - 27 1.2.1.3 Timesharing/Multitasking • vermeidet den Nachteil des Mehrprogrammbetriebs • ist immer mit Mehrprogrammbetrieb gekoppelt ⇒ multiprogramming und timesharing werden häufig synonym verwendet aber: Mehrprogrammbetrieb setzt kein Zeitscheibenverfahren voraus • Betriebssystem verdrängt ein Programm automatisch, wenn es die CPU eine bestimmte Zeit genutzt hat und nicht freiwillig abgibt • typische Größe einer Zeitscheibe: 10 - 200 ms • Systemuhr erforderlich ⇒ Rechenzeit wird auf alle Programme gleichmäßig verteilt 0 5 10 Zeit e1 e2 e3 idle Eingabegerät idle idle a2 a3 a1 Ausgabegerät idle r1 r2 r1 r3 r1 r3 r1 idle r1 CPU e1 r1 r1 r1 r1 a1 r1 eingesparte Zeit P1 e2 r2 a2 P2 e3 r3 r3 a3 P3 Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß eingesparte Zeit Betriebssysteme Folie 1 - 28 1.2.1.4 Ein-/Mehrbenutzerbetrieb • • • Einbenutzerbetrieb (single user mode) − im Allgemeinen bei Arbeitsplatzrechnern − zwingend bei einfachen Betriebssystemen (z. B. MS-DOS), die keinen Mehrprogrammbetrieb unterstützen Mehrbenutzerbetrieb (multi user mode) − setzt Mehrprogrammbetrieb voraus − Zeitscheibenverfahren ist notwendig (kurze Reaktionszeiten) im Ein- und Mehrbenutzerbetrieb wird interaktiv mit dem Rechner gearbeitet ⇒ Rechner muss Dialogbetrieb unterstützen Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme Folie 1 - 29 1.2.1.5 Multithreading • unterschiedliche Programmierschnittstellen (z. B. UNIX International Threads (SunOS), Mach C Threads, POSIX Threads, OS/2Threads, Win32/Win64-Threads usw.) • 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 Adressraum 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 • ein traditioneller Prozess ist ein single-threaded process • Multithreading bedeutet: Ein Prozess besteht aus mehreren Threads, die parallel (quasi-parallel auf einem Einprozessorsystem) ausgeführt werden Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme • Folie 1 - 30 Warum wurden Threads eingeführt? 1) effizientere Bearbeitung eines Programms auf Mehrprozessorsystemen (Auf Einprozessorsystemen sind diese Programme im Allgemeinen langsamer als ein traditionelles Programm, da die Verwaltung der Threads Zeit kostet.) 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.) 1.2.1.6 Mehrprozessorbetrieb • Rechner mit mehreren Prozessoren / Prozessorkernen • echte Parallelverarbeitung • heute meistens symmetrischer Mehrprozessorbetrieb (symmetric multiprocessing, SMP) 1) Architektur mit gemeinsamem Speicher (shared memory architecture) − klassisches Multiprozessorsystem − gemeinsamer Bus/Speicher kann Engpass werden − Interprozesskommunikation wie bei einem Einprozessorsystem über Hauptspeicher möglich Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme − Folie 1 - 31 Zugriffszeiten auf alle Speicherbereiche für alle Prozessoren gleich groß (uniform memory access, UMA) CPU CPU CPU CPU cache cache cache cache bus main memory 2) Architektur mit verteiltem Speicher (distributed memory architecture) − z. B. Rechner von Silicon Graphics − sehr schnelles Verbindungsnetzwerk (z. B. NUMAlink, HyperTransport für AMD-Prozessoren) − Interprozesskommunikation im Allgemeinen über Nachrichtenaustausch (message passing) − Zugriffszeiten auf lokalen Speicher kleiner als die auf den Speicher anderer Prozessoren (non-uniform memory access, cache-coherent non-uniform memory access, NUMA, ccNUMA) CPU CPU CPU CPU cache cache cache cache bus memory bus memory bus memory interconnection network Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß bus memory Betriebssysteme Folie 1 - 32 1.2.2 Betriebssystemklassen • Betriebssysteme können auch folgendermaßen klassifiziert werden − universelle Betriebssysteme für „normale“ Rechner − spezielle Betriebssysteme für spezielle Aufgaben ♦ Steuerung der Anwendungen im mobilen Telefon (Handy) ♦ Steuerung der Anwendungen in Prozessor-Chipkarten ♦ Steuerung der Anwendungen auf Rechnern in Autos ♦ Steuerung von Fertigungsstraßen ♦ usw. • Netzwerk-Betriebssysteme (network operating systems) • verteilte Betriebssysteme (distributed operating systems) 1.2.2.1 Universal-Betriebssystem • läuft auf einem Universal-Rechner (general-purpose computer) • unterstützt effizient verschiedene Betriebsarten • das „Standard“-Betriebssystem auf heutigen Rechnern vom PC bis zum Supercomputer Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme Folie 1 - 33 1.2.2.2 Netzwerkbetriebssystem • steuert und verwaltet ein Netzwerk und ermöglicht den Zugriff von Benutzern auf Netzwerk-Ressourcen • Benutzer arbeiten auf Client-Rechnern, die immer ein eigenes Betriebssystem haben (z. B. Microsoft Windows) • stellt verschiedene Dienste zur Verfügung − Namen- und Verzeichnisdienste für angeschlossene Rechner (Novell NetWare eDirectory, Microsoft Windows Active Directory, ...) − Benutzerverwaltung − Dateiverwaltung − Netzwerkdruckerverwaltung − Datensicherung und -wiederherstellung • vergibt und überwacht Zugangsberechtigungen • zwei Arten − eigenständige Systeme (z. B. Novell NetWare), die Zugriff auf Hardware selbst durchführen und darum sehr leistungsfähig sind − Systeme, die auf Betriebssystem-Diensten aufsetzen (z. B. LANManager auf OS/2 oder Microsoft Windows Server) Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme Folie 1 - 34 1.2.2.3 Verteiltes Betriebssystem • setzt immer ein Rechnernetz voraus, über das die Rechner verbunden sind • Betriebssystem verwaltet Netz und alle Rechner, sodass das System wie ein einziger Rechner aussieht • auf jedem Rechner läuft ein Betriebssystemkern, der für den Netzwerkzugriff und den Dialog mit den Benutzern zuständig ist • Dienste des Betriebssystems sind über die Rechner verteilt • System ist für den Benutzer transparent, sodass er nicht merkt, dass es über mehrere Rechner verteilt ist • Betriebssystem entscheidet beispielsweise, auf welchem Rechner ein Programm ausgeführt wird, das ein Benutzer startet (wird u. U. nicht auf dem lokalen Rechner ausgeführt, wenn ein anderer Rechner weniger belastet ist) • systemweites Dateisystem (Dateien eines Verzeichnisses können theoretisch auf verschiedenen Rechnern in verschiedenen Ländern gespeichert sein) • systemweiter gemeinsamer verteilter Hauptspeicher • Kommunikation im Betriebssystem über Nachrichtenaustausch oder Remote Procedure Call • z. B. Amoeba Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme Folie 1 - 35 1.2.2.4 Echtzeit-Betriebssystem • real-time operating system (RTOS) • Betriebssystem für Anwendungen, die in vorgegebener Zeit erledigt werden müssen (z. B. in der Prozesssteuerung) • enthält spezielle Funktionen, sodass Zeitbedingungen eingehalten werden können und das Prozessverhalten vorhergesagt werden kann • zwei Arten • − Systeme, die Endtermine (deadline) meistens einhalten (soft real-time) − Systeme, die Endtermine immer einhalten (hard real-time) benutzt spezielle Scheduling-Algorithmen, sodass Programmierer einen deterministischen Ablauf programmieren können (z. B. priority based preemptive scheduling) • ereignisgesteuerte (event-driven) Betriebssysteme führen nur dann einen Prozesswechsel durch, wenn ein Ereignis (interrupt) bearbeitet werden muss • Betriebssysteme mit Zeitscheibenverfahren (timesharing) führen zusätzlich Prozesswechsel durch, wenn eine Zeitscheibe abgelaufen ist • Systemzeiten für Prozesswechsel sind immer deterministisch Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß Betriebssysteme Folie 1 - 36 1.2.2.5 Eingebettetes Betriebssystem • sehr kompaktes und effizientes Betriebssystem für „Embedded Systems“ • oft als Echtzeit-Betriebssystem realisiert • auf PDA (Personal Digital Assistant), Handy, ... • z. B. Palm OS, Windows CE, Embedded Linux, Java ME, QNX, ... 1.2.2.6 Chipkarten-Betriebssystem • card operating system (COS) • auf Prozessor-Chipkarten (microprocessor smartcard) • stellt u. a. folgende Funktionen zur Verfügung • − Authentifizierung − Verschlüsselung und Schlüsselverwaltung − Kommunikationsprotokoll zwischen Karte und Kartenleser − Verwaltung der Dateien und Daten im Kartenspeicher − Zugriffsschutz auf alle Daten − spezielle Zuverlässigkeit bzgl. Datenkonsistenz und Fehlerbehebung (falls die Karte z. B. während einer Aktion aus dem Leser gezogen wird) z. B. MultOS, StarCOS; SecCOS, Java Card, ... Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß