Betriebssysteme VO Einleitung und Geschichte VO Betriebssysteme WS 08/09 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 Instruktionssatz Einfache Operationen (OR, AND, ADD) Lade- und Speicheroperationen Sprünge Unterprogramme … Registersatz Für Berechnungen Program counter, Stack pointer, Flags (Prozessor Status) Arbeitsmodi IAIK Kernel mode: voller Zugriff auf Speicher und Register, alle Instruktionen User mode: beschränkter Zugriff auf Speicher und Register, Teilmenge der Instruktionen 4 Speicher Speicherhierarchie Registers (Zugriffszeit 1 nsec) Cache memory (Zugriffszeit 2 nsec) Main memory - RAM (Zugriffszeit 10 nsec) Hard disk (Zugriffszeit 10 msec) IAIK 5 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 6 Festplatten IAIK 7 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 8 Busse IAIK Datentransfer zwischen Komponenten Versch. 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 … 9 Alles zusammen …. IAIK 10 Typischer PC IAIK 11 Es werde Licht Strom IAIK 12 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 13 IAIK 14 Position des Betriebssystems IAIK 15 Position des Betriebssystems IAIK 16 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 17 Was ist ein Betriebssystem Programm wie jedes andere Wird kompiliert, gelinkt und exekutiert Sonderstatus Nur eine Kopie Über Service-Aufrufe aktiviert IAIK 18 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 19 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 20 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 21 Virtuell Das Betriebssystem als IllusionsErzeuger… IAIK 22 Virtueller Computer Ein Betriebssystem lässt mehrere Prozesse auf einer CPU arbeiten 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 23 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 24 Betriebssytemmodell Betriebssystem bietet API zur Hardware Versteckt privilegierte Befehle Erzeugt neue Befehle (system calls) Erzeuge neue Prozesse Kommuniziere mit anderen Prozessen Speicheranforderungen I/O Zugriffe aufs Filesystem IAIK 26 Virtueller Speicher Speicher pro Prozess ähnlich dem Hardware-Speicher (Bytefolge) Betriebssystem teilt Speicher in Teile und gibt jedem einen Teil Betriebssystem erzeugt Illusion, dass jeder Prozess Speicher hat, der bei Adresse 0 anfängt Betriebssystem erzeugt Illusion dass der Prozess mehr Speicher hat als physischer Speicher vorhanden ist IAIK 27 Virtuelle Festplatte Gespeichert wird Physisch auf Sektoren Virtuell auf Files Prozess sieht ein Filesystem mit benannten Files beliebiger Größe IAIK 28 Virtuelle I/O I/O ganz anders als im physischen Computer Komplexe Kontroll- und Statusregister Virtuelle I/O einfach und leicht verwendbar IAIK 29 Geschichte IAIK 31 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 32 Vakuumröhren IAIK 33 ENIAC IAIK 34 Geschichte Zweite Generation 1955 - 1965 Transistoren, Batch-Systeme Trennung zwischen Entwurf, Bau, Betrieb, Programmierung und Wartung Spezielle Räume nötig Sehr teuer IAIK 35 BRLESC-I IAIK 36 Lochkarten IAIK 37 Geschichte Struktur eines typischen Jobs IAIK 38 Geschichte Zyklus: Denke Loche Abgabe Trinke Bier Hole Output … Nicht sehr effizient Viel Zeit verloren IAIK 39 Geschichte frühes Batch-system Bringe Karten zu 1401 Lies Karten auf Band Band auf 7094 - rechnet Band auf 1401 – druckt Ergebnis IAIK 40 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 41 Geschichte Multiprogramming-System Drei Jobs im Speicher IAIK 42 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 43 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 44 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 45 Unix-Geschichte Dennis Ritchie und Ken Thompson von den Bell Labs portieren das Betriebssystem Unix auf einen PDP-11 Großrechner IAIK 46 Geschichte Vierte Generation 1980 – Heute Personal-Computer CP/M DOS Graphische Benutzerinterfaces Windows X Windows IAIK 47 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 48 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 Server, Linux 49 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 50 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 51 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 52 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, Palm-OS, Embedded Linux IAIK 53 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 54