Betriebssysteme VO Einleitung und Geschichte BS1 WS 2007/2008 IAIK 1 Am Anfang war die Hardware… CPU IAIK 2 Hardware Monitor Bus Komponenten eines einfachen PCs IAIK 3 CPU Holt Instruktion aus Speicher und führt ihn aus Befehlssatz Einfache Operationen (OR, AND, ADD) Lade- und Speicheroperationen Sprünge Unterprogramme Registersatz Für Berechnungen Program counter Stack pointer PSW (Program Status Word) Kernel mode: voller Zugriff auf Speicher und Register, alle Instruktionen User mode: beschränkter Zugriff auf Speicher und Register, Teilmenge der Instruktionen IAIK 4 Speicher Menge von Speicherstellen (Adressen) die Daten halten können RAM (random access memory) IAIK 5 Speicher Speicherhierarchie Registers (Zugriffszeit 1 nsec) Cache memory (Zugriffszeit 2 nsec) Main memory - RAM (Zugriffszeit 10 nsec) Hard disk (Zugriffszeit 10 msec) IAIK 6 Speicher ROM (Read only memory) Speichert Werte permanent oder semi-permanent (EPROM) IAIK 7 Festplatten Eine oder mehrere Scheiben die mit konstanter Geschwindigkeit rotieren (z.B. 5400 rpm, 7200 rpm) konzentrische Spuren Zusammengehörende Spuren verschiedener Scheiben: Zylinder Spur in Sektoren gegliedert IAIK 8 Festplatten IAIK 9 Festplatten Mechanischer Arm mit Köpfen (einer pro Oberfläche) Bewegt sich über Scheiben und liest/schreibt Sektoren Zur richtigen Spur (1 to 10 msec) Auf passenden Sektor warten (5 to 10 msec) Lesen/Schreiben ausführen IAIK 10 Busse Datentransfer zwischen Komponenten Verschiedene Funktionen, Geschwindigkeiten etc Cache bus Memory bus ISA (Industry Standard Architecture) bus PCI (Peripheral Component Interconnect) bus USB (Universal Serial Bus) SCSI (Small Computer System Interface) bus IDE (integrated drive electronics) bus IAIK 11 Computer Hardware Struktur eines größeren Pentium-Systems IAIK 12 Es werde Licht Strom IAIK 13 Es werde Strom CPU startet und ladet Instruktionen beginnen bei Adresse 0xFFFF0 Befehl springt in den BIOS-code BIOS (Basic Input/Output System) wird gestartet Einfache tests (memory, keyboard, etc) Identifiziert “boot device” (Hard disk, Floppy, CD-ROM) Lädt Inhalt des ersten Sektors (Master Boot Record - MBR – Zylinder 0, Kopf 0, Sektor 1) in den Speicher auf Adresse 0x7C00 - 0x7DFF Sprung nach 0x7C00 MBR-code findet ein “aktives” Filesystem, lädt entsprechenden Boot-Sektor in den Speicher und springt hin Boot-Sektor-Code lädt das IAIK 14 IAIK 15 Position des Betriebssystems IAIK 16 Position des Betriebssystems IAIK 17 Was ist ein Betriebssystem? Eine erweiterte Maschine Versteckt die unangenehmen Details, die ausgeführt werden müssen Präsentiert seinem Benutzer eine virtuelle Maschine, die einfacher verwendbar ist Schichtenmodell Gewünschte Funktionalität aufbauen auf Funktionalität niedriger Ebene IAIK 18 Was ist ein Betriebssystem Programm wie jedes andere Wird kompiliert, gelinkt und exekutiert Sonderstatus Nur eine Kopie Über Service-Aufrufe aktiviert IAIK 19 Was ist ein Betriebssystem? Ein Ressourcen-Verwalter Jedes Programm bekommt die Ressource für eine Zeit Jedes Programm bekommt etwas Platz auf der Ressource IAIK 20 Ressourcenverwaltung Multiplexen Illusion mehrerer logischer Ressourcen bei nur einer physischen Ressource Transformation Erzeugen einer neuen logischen Ressource aus einer bestehenden Verwaltung Wer darf was verwenden und wer verwendet gerade was IAIK 21 Multiplexen Zeit-multiplexen Time-sharing Aufteilen einer seriell-wiederverwendbaren Ressource (serially-reusable) unter verschiedenen Benutzern Z.B. CPU oder Drucker Raum-multiplexen Platz aufteilen Teilen einer mehrfach verwendbaren Ressource unter verschiedenen Benutzern Z.B. Speicher, Platte IAIK 22 Virtuell Das Betriebssystem als IllusionsErzeuger… IAIK 23 Virtueller Computer Ein Betriebssystem erzeugt mehrere Prozesse (simulierte Prozessoren) aus einer CPU Zeit-multiplexen der CPU Ein Betriebssystem erzeugt mehrere Adressräume (Speicher für die Exekution eines Prozesses) aus dem vorhandenen Speicher Raum-Multiplexen des Speichers IAIK 24 Virtuelle Computer Ein Betriebssystem implementiert ein File- und I/O-System so, dass Prozesse Platten und I/O-Geräte simultan verwenden können Raum-multiplexen der Platte Zeit-multiplexen der I/O-Kanäle Ein Betriebssystem erzeugt virtuelle Computer aus einer physischen Maschine! IAIK 25 Mehrere virtuelle Computer Mehrfache Prozessoren Können mehrere Instruktionsflüsse zur selben Zeit abarbeiten Mehrfache Speicher Information mehrerer Applikationen zur selben Zeit speichern Zugriff auf Filesystem als Abstraktion der Festplatte Zugriff auf andere I/O-Geräte auf einheitliche Art IAIK 26 Betriebssytemmodell Betriebssystem bietet API zur Hardware Entfernt privilegierte Befehle Erzeugt neue Befehle (system calls) Erzeuge neue Virtuelle Computer (Prozesse) Kommuniziere mit anderen VCs Speicheranforderungen I/O Zugriffe aufs Filesystem IAIK 27 Virtueller Speicher Speicher des VC ähnlich dem HardwareSpeicher (Bytefolge) Betriebssystem teilt Speicher in Teile und gibt jedem VC einen Teil Betriebssystem erzeugt Illusion, dass jeder VC Speicher hat der bei Adresse 0 anfängt Betriebssystem erzeugt Illusion dass der VC mehr Speicher hat als physischer Speicher vorhanden ist IAIK 28 Virtuelle Festplatte Gespeichert wird Physisch auf Sektoren Virtuell auf Files VC sieht ein Filesystem mit benannten Files beliebiger Größe IAIK 29 Virtuelle I/O I/O im VC ganz anders als im physischen Computer Komplexe Kontroll- und Statusregister Virtuelle I/O einfach und leicht verwendbar IAIK 30 Zugriff aufs Betriebssystem System-Calls Parameter in bestimmten Stellen speichern (Register, Speicher) Software-Interrupt oder Trap aufrufen Umschalten in Kernel-Mode Betriebssystem übernimmt die Kontrolle IAIK 31 Geschichte IAIK 32 Geschichte Erste Generation 1945 - 1955 Vakuum-Röhren, Schaltbretter Eine Personengruppe entwarf, baute, programmierte, betrieb und wartete jede Maschine Programmierung in Maschinensprache Betriebssysteme unbekannt IAIK 33 Vakuumröhren IAIK 34 ENIAC IAIK 35 Geschichte Zweite Generation 1955 - 1965 Transistoren, Batch-Systeme Trennung zwischen Entwurf, Bau, Betrieb, Programmierung und Wartung Spezielle Räume nötig Sehr teuer IAIK 36 BRLESC-I IAIK 37 Lochkarten IAIK 38 Geschichte Struktur eines typischen Jobs IAIK 39 Geschichte Zyklus: Denke Loche Abgabe Trinke Bier Hole Output … Nicht sehr effizient Viel Zeit verloren IAIK 40 Geschichte frühes Batch-system Bringe Karten zu 1401 Lies Karten auf Band Band auf 7094 - rechnet Band auf 1401 – druckt Ergebnis IAIK 41 Geschichte Dritte Generation 1965 – 1980 ICs and Multiprogramming Programme, die wenig rechnen und viel I/O machen: CPU (sehr teuer) ist oft untätig (idle). Speicher in viele Teile teilen Ein Programm pro Partition IAIK 42 Geschichte Multiprogramming-System Drei Jobs im Speicher IAIK 43 Geschichte Spooling Jobs von Karte auf Platte Von Platte laden wenn benötigt Im Grunde immer noch Batch-Systeme Timesharing Erste Online-Terminals Jeder Benutzer bekommt Zeitscheibe Erste Unix-Systeme IAIK 44 Geschichte - UNIX 1965 Eine Gruppe Computerwissenschaftler der Bell Labs und GE schlossen sich 1965 einem Projekt am MIT an das Multics Großrechner Timesharing System genannt wurde (Multiplexed Information and Computing Service) 1969 Bell Labs zogen sich zurück 1970 Ken Thompson und Dennis Ritchie entwickelten UNIX (UNIX ist ein Wortspiel auf Multics) für eine PDP-7 und portierten es auf eine PDP-11 1972 IAIK Thompson and Ritchie entwickelten die Programmiersprache C um darin UNIX neu zu schreiben 45 Geschichte - UNIX 1976-77 Ken Thompson ging als Gastprofessor an die Computer Science Abteilung der University of California at Berkeley (UCB) Ergebnis: Berkeley Software Distribution (BSD) 1984 AT&T entwickelt UNIX System V Viele verschiedene Unix... SunOS/Solaris (Sun Microsystems), Xenix(Microsoft), HP-UX (HewlettPackard), Ultrix (DEC), AIX (IBM), Linux, FreeBSD IAIK 46 Unix-Geschichte Dennis Ritchie und Ken Thompson von den Bell Labs portieren das Betriebssystem Unix auf einen PDP-11 Großrechner IAIK 47 Geschichte Vierte Generation 1980 – Heute Personal-Computer CP/M DOS Graphische Benutzerinterfaces Windows X Windows IAIK 48 The Operating System Zoo Mainframe operating systems Data processing centers Difference: I/O-capacity Lots of disks with terabytes of memory Many jobs at once, batch, transaction processing and timesharing Batch: routine job without user intervention Transaction processing: large number of small requests, e.g. check processing at banks or airline reservations Timesharing: many users run jobs at once Example: IBM OS/390 IAIK 49 The Operating System Zoo Server operating systems Servers: very large personal computers, IAIK workstations or mainframes Serve multiple users at once Allow user to share hardware and software resources May run web servers or similar Examples: Unix, Windows 2000 and Linux 50 The Operating System Zoo Multiprocessor operating systems Multiple CPU’s in a single system Need special operating systems Often variations of server operating systems IAIK 51 The Operating System Zoo Personal computer operating systems Good interface for a single user Used widely of all types of purposes as word processing, spreadsheets, internet access but also software development Examples: Windows, Macintosh OS, Linux IAIK 52 The Operating System Zoo Real-time operating systems Time as key parameter E.g. industrial process control systems Control machines in a factory Actions must occur at a certain time Examples: VxWorks, QNX IAIK 53 The Operating System Zoo Embedded operating systems Embedded systems run on computers that control devices that are not generally thought of as computers: TV-sets Mobile telephones Dishwashers…. Some characteristics of real-time systems Special size, memory and power-restrictions Symbian OS, Windows CE or Palm-OS for the high-end embedded systems IAIK 54 The Operating System Zoo Smart card operating systems Severe processing power and memory constraints Limited functionality Often proprietary Some are Java-oriented IAIK ROM holds interpreter for JVM Java applets downloaded on card Multiple applets possible – multiprogramming and scheduling required Also resource management and protection 55 Betriebssystemkonzepte Alle Betriebssysteme haben grundlegende Konzepte gemeinsam Einige werden wir jetzt anreißen IAIK 56 Prozesse Programm in Ausführung Mit einem Prozess verbunden: Adressraum Folge von Speicherstellen auf die der Prozess zugreifen kann Enthält ausführbares Programm, Daten und Stack Register (PC, SP und andere) IAIK 57 Prozess-Tabelle Annahme: mehrere Programme / Prozesse Einen Stoppen, anderen Starten Erster Prozess muss wieder gestartet werden können – in genau demselben Zustand den er beim Stoppen hatte Information muss daher gesichert werden Oft in Prozesstabelle Unterbrochener Prozess: Core-Image plus Prozesstabelle IAIK 58 Konzepte Prozess-Baum A erzeugt zwei Kind-Prozesse, B and C B erzeugt drei Kind-Prozesse, D, E, and F IAIK 59 Strukturen – Monolithisch Einfache Struktur für monolithische Systeme Struktur: keine IAIK 60 Monolithische Systeme Ein klein wenig Struktur Services wie gewohnt angefordert Index in Tabelle, diese enthält Zeiger auf Service-Funktion IAIK 61 Schicht-Systeme Verallgemeinerung des vorherigen Ansatzes Hierarchische Schichten Erstes System: THE IAIK 62 Schicht-Systeme Struktur des THE Betriebssystems IAIK 63 Schicht-Systeme MULTICS Ring-System Erzwungen durch Hardware IAIK 64 Client-Server-Modell Idee: soviel Code wie möglich aus dem Kernel raus Microkernel Client-Prozesse, Server-Prozesse IAIK 65 Virtualisierung Spiegelt einem Betriebssystem vor, ein eigenes System zu haben VMWare: als Applikation innerhalb eines Systems XEN u.Ä.: als Schichte unter dem Betriebssystem (Hypervisor) IAIK 66 Virtuelle Maschinen Oft verwendet Alte MS-DOS-Programme auf einem Pentium Virtueller 8086 mode auf Pentium Von Windows verwendet um MS-DOS Programme zu exekutieren Java Virtual Machines anderes Konzept Code ist HW unabhängig, aber keine HW- Simulation IAIK 67 Virtuelle Maschinen Struktur von VM/370 mit CMS IAIK 68