Kapitel II Einführung: Hardware und Software 1 Computersysteme (1) Computer haben viele verschiedene Devices: Input/Output Devices Speicher Prozessor(en) Monitor 2 Bauteile eines einfachen PCs Bus
Computersysteme (2) Processor Memory eine verfeinerte Darstellung Mem. Controller I/O Bus Controller Memory Bus I/O Bus SCSI Adapter Display Adapter Network Adapter SCSI Bus Disk Drives Tape Drive Optical Drive Network 3 Computer Architektur Überblick 4 (a) eine 3-Stufen Pipeline (b) eine superscalare CPU
Computer Hardware Überblick 256 MB 10 GB 20 MB 200 GB 200 GB 1 TB 5 Speicherhierarchie angezeigte Zahlen sind Schätzwerte Computer Hardware Überblick 8 Architektur eines großen Pentium Systems
Viele Arten von Devices Platten Netzwerke Monitore Maus Tastatur Magnetbänder Input/Output Systeme Unterschiedliche Anforderungen an Device-Performance Bandbreite: Rate mit der Daten übertragen werden Latenzzeit: Zeit zwischen Anfrage und Ankunft der ersten Daten 9 Verschiedene Anforderungen führen zu unterschiedlichen Bussen Prozessorbus (auf dem Chip) ca. 1 Gigabyte/sec Speicherbus (auf dem Prozessor-Board) ca 500 Mbytes/sec I/O Bus (PCI, MCA) ca. 100 Mbytes/sec Busse können sehr komplex sein (PCI) 10 Device-Bus mehr als 10 aber weniger als 100 Mbytes/sec
Performance Wichtige Bus-Aspekte Erhöhe die Datenbusbandbreite Trenne Adress- von Datenbus Übertragung von Blöcken (mehrere Blöcke durch 1 Anfrage) Wer kontrolliert den Bus? 1 oder mehrere Bus-Master (kann Bus-Anfrage initiieren) Die Eigenschaft Bus-Master wird dynamisch verhandelt. Prioritäten für verschiedene Devices. Verwende Protokoll, um die höchste Priorität zu bestimmen 11 Interaktion zwischen I/O Device und CPU I/O Devices und CPU können parallel exekutieren. Für jedes Device gibt es einen verantwortlichen Device Controller. Jeder Device Controller hat einen lokalen Buffer. CPU bewirkt Datentransfer zwischen Hauptspeicher und lokalem Buffer des Devices. I/O: Datentransfer zwischen Device und lokalem Buffer des dazugehörigen Controllers. Durch einen Interrupt informiert ein Device Controller die CPU über Beendigung einer I/O Operation. 12
Input/Output-Schnittstellen Anpassung der CPU and die Geschwindigkeit der Devices Übertragung von Daten zwischen CPU und Device (Controller) Device Controller hat Register für Daten- und Kontrollsignale. CPU schreibt und liest diese Register Programmierbare I/O Spezielle I/O-Instruktionen Mapped I/O Device Controller Register im Adressbereich der CPU ähnlich einem Speicher, nur langsamer DMA (Direct Memory Access) Device Controller kann auf Speicher schreiben Prozessor ist nicht involviert Busbandbreite wird beansprucht Einfluss auf CPU Performance 13 Direct Memory Access (DMA) Verwendung für Hochgeschwindigkeits-I/O-Devices I/O Datentransfer ähnlich schnell wie Speicherzugriff. Device Controller überträgt Daten von Device-Buffer zum Hauptspeicher ohne Intervention der CPU. Interrupt pro Datenblock (DMA) versus Interrupt per byte. 14
I/O Interrupts Interrupt definiert Signalisierung eines Ereignisses Verursacht durch HW-Device Meldet vorhandene Daten oder freie Hardware Verursacht durch Software Systemaufruf (Trap) CPU beendet aktuelle Tätigkeit und exekutiert eine Handler-Funktion Speichert Zustand der aktuellen Tätigkeit Kehrt zu diesem Zustand zurück, wenn Interrupt behandelt worden ist. Speichern der Adresse der unterbrochenen Instruktion Muss wissen, welches Device Interrupt verursacht Anfrage bei jedem Device (langsam) Interrupt-Vektor Pointerarray auf Interrupt Service Routinen 16 I/O Operationen Synchrone I/O Programm exekutiert Systemaufruf (Trap) aus einer Anwendung. Anfrage an Device Prozessor wartet auf Device. Anfrage ist bearbeitet und abgeschlossen. Prozessor kehrt zum Anwendungsprozess zurück. Asynchrone I/O Anfrage an Device aus einem Programm (Anwendung). Prozessor speichert Anfrage. Prozessor setzt mit der Ausführung des Programms fort. Könnte ein anderes Programm sein. Anfrage ist bearbeitet und Device erzeugt Interrupt. Prozessor registriert, dass Anfrage bearbeitet worden ist. Abarbeitung des Programms wird fortgesetzt. 18
Synchrone versus Asynchrone I/O synchrone I/O asynchrone I/O 20 19 Device-Statustabelle
Hardware-Software Schichten Anwendersoftware Software-Ebenen Software Systemsoftware Hardware Anwendersoftware Systemsoftware Latex... Compiler Betriebssysteme Assembler 21 gcc... virtueller Speicher Filesystem Input/Output Device Treiber as... Programmübersetzung Swap (int v[], int k) {int temp; kemp = v[k]; V[k] = v[k+1] = temp; Programm in Hochsprache (z.b. in C) } swap: muli $2, $5,4 C Compiler add $2, $4, $5 lw $15, 0($2) lw $16, 4($2) lw $16, 0($2) sw $15, 0($2) Assembler-Programm (z.b. für MIPS Prozessor) sw $15, 4($2) jr $31 22 Assembler 00000000101000010000000000011000 00110010110001001001100100000011 11001010001101100111000011101110 11011010001101110011100000110011 00100110011001101000100001011001 00001011100001010101100111010010 00000010000100011001010100001110 Maschinencode in Binärform (z.b. für MIPS Prozessor)
Speicherhierarchie Register Cache Hauptspeicher elektronische Speicherplatte magnetische Speicherplatte 23 Optische Speicherplatte magnetisches Speicherband Plattenspeicher (Hard Disk) Verschiedene Typen Hard Disk (magnetisch) Floppy Disk (magnetisch) Optische Platte (spezielles Material, durch Laser veränderbar) Hard Disk Drives Kollektion von Platten Platten enthalten konzentrische Ringe, genannt Tracks. Tracks sind in Einheiten (Sektoren) mit fixer Größe eingeteilt. Ein Zylinder ist eine Kollektion von allen Tracks mit gleicher Distanz vom Zentrum einer Disk. Aktuelle Performance: Kapazität: 20 Mbyte bis 200 Gbytes Bandbreite: weniger als 100 Mbytes/sec Latenzzeit: Millisekunden 25
Hard Disk Platte Track Sektor Track Plattenkollektion (1-20) Rotationsgeschwindigkeit: 3600-7200 RPM (rounds per minute) Größe: ca. 6 10 cm Ca. 500-2500 Tracks pro Platte Track besteht aus ca. 64 Sektoren. Zonen: Zahl der Sektoren pro Track hängt von der Distanz zum Plattenzentrum ab. 26 Hard Disk mit mechanischer Lese/Schreibvorrichtung 27
Platten-Scheduling (1) BS muss Platte möglichst effizient nutzen (z.b. Zugriffszeiten minimieren). Angenommen Platte hat 200 Zylinder (von 0 bis 199). First come, first served Anordnung kann zu extensiver Bewegung des Plattenkopfs führen Z.B. Zugriff auf Zylinder 1, 190, 3, 170, 4 und 160. Gesamtzahl von Zylinder, über die sich der Plattenkopf bewegt: 865 Shortest seek time first: Führe die Anfragen mit geringster Suchzeit - ausgehend von der aktuellen Position des Plattenkopfs - zuerst aus. Bewege Plattenkopf zu jenem Zylinder, der am nächsten liegt Z.B. 1,3,4,160,170,190 Gesamtzahl der Zylinder, über die sich der Plattenkopf bewegt: 189 29 Platten-Scheduling (2) Scan-Scheduling: Lese-Schreib Kopf startet bei einem Ende der Platte und bewegt sich an das andere Ende. Dabei werden Anfragen erfüllt, während der Kopf sich über die Zylinder bewegt. Z.B. 1, 190, 3, 170, 4, 160 Wenn der Kopf bei Zylinder 64 beginnt und sich in Richtung Zylinder 0 bewegt: 64,4,3,1,0,160,170,190 Gesamtdistanz: 254 Circular-Scan Plattenkopf erfüllt Anfragen nur in einer bestimmten Richtung. Wenn der Kopf ein Ende erreicht, bewegt er sich zum anderen Ende der Platte, ohne Anfragen zu erfüllen. Z.B.: 1,190,3,170,4,160 Wenn der Kopf bei Zylinder 64 beginnt und sich in Richtung Zylinder 0 bewegt: 64,4,3,1,0,199,190,170,160 Gesamtdistanz: 302 30
Platten-Scheduling (3) Look-Scheduling SCAN-Scheduling Variante, Lese/Schreibkopf bewegt sich nur zum Ende der Platte, wenn es dafür Anfragen gibt. Z.B. 1, 190, 3, 170, 4, 160 Wenn der Kopf bei Zylinder 64 beginnt und sich in Richtung Zylinder 0 bewegt: 64,4,3,1,160,170,190 Gesamtdistanz: 252 C-Look-Scheduling C-SCAN-Scheduling Variante Lese/Schreibkopf bewegt sich nur zum Ende der Platte, wenn es dafür Anfragen gibt. Z.B.: 1,190,3,170,4,160 Wenn der Kopf bei Zylinder 64 beginnt und sich in Richtung Zylinder 0 bewegt: 64,4,3,1,190,170,160 Gesamtdistanz: 282 31 Zugriffszeiten Suchen: Bewege Plattenarm über gewünschten Track Suchzeiten (im Bereich von ms) hängen von der Lokalität ab Rotationsverzögerung: Wartezeit bis gewünschte Information unter dem Plattenarm ist. Eine Platte die mit 7200 RPM rotiert, benötigt 8.3 ms für eine volle Umdrehung Übertragungszeit: Zeit für das Übertragen eines Bit-Blocks (in der Regel ein Sektor) Hängt von Aufzeichnungsdichte, Rotationsgeschwindigkeit und Blockgröße ab. Übertragungsrate kann auch von einem Systemflaschenhals (Hardware oder Software) abhängen. Übertragungsraten zwischen 2 und 8 Mbytes/sec 33
Booten des BS (1) BS laden und starten nennt man Booten. Aber was lädt das BS? Verwende BS, um sich selbst zu laden. Bootstrap Programm Weiß, wie man ein Programm (BS Kernel) von einem File-System lädt und dorthin springt. Lädt BS Kernel und exekutiert diesen auf CPU. BS Kernel initialisiert Speicher, Register, Device Controller usw. Danach startet BS Kernel Prozess (z.b. init) und wartet auf Events. Events werden durch Interrupts (Division durch 0, I/O Operation fertig, illegaler Speicherzugriff usw.) gemeldet. HW Interrupt durch Signal an CPU über den Bus. SW-Interrupt durch Systemaufruf ROM Monitor Bootstrap Programm kann im ROM (read only memory) geladen sein. Häufig nur eine kleiner Bootstrap Lader im ROM, der tatsächliches Bootstrap Programm von Platte lädt. (Kann BS leicht updaten) 34 Booten des BS (2) Netzwerk Booten ROM weiß wie ein Boot-Paket vom Netzwerk angefordert wird Exekutiere das Paket bei Ankunft Sinnvoll für Systeme ohne Platte Vereinfacht BS-Entwicklungszyklus: Editieren/Übersetzen/Booten des BS 35
Hardware-Schutzmechanismus Programme müssen untereinander geschützt werden. Prozessor-Modus Benutzer- oder Superuser-Modus (Monitor) Erlaubte Operationen im Benutzermodus sind Teilmenge des Superuser-Modus. Super-User versus User Modus I/O-Schutz: alle I/O Operatione sind privilegierte Operation Speicherschutz: Kein Zugriff auf Daten, die nicht dem Prozess gehören. CPU Protection: begrenzte CPU-Zeiten pro Prozess. 37 Systemaufrufe Schnittstelle zwischen Anwendungsprogramm (Benutzermodus) und BS-Kernel (Monitor) Systemaufrufe sind wie Prozeduraufrufe. übergebe Parameter Aufrufende Routine wartet auf Resultat. Ermöglicht Anwendungsprogramm Zugriff auf geschützte Ressourcen Register r0 load r0, x system call 10 Anwenderprogramm Code für sys call 10 BS (Kernel) 39
Typen von Systemaufrufen File-bezogen open, create read, write close, delete get/set File Attribute Information Anfrage über Zeit und Prozess (ID, Dauer, etc.) Setzen von Systemdaten (BS-Parameter) Kommunikation Erzeuge Verbindung send/receive Nachrichten Beende Verbindung Prozesskontrolle Beende einen Prozess (auch sich selbst). 40 Dual-Mode Operationen Verwende Modus-Bit für Hardware-Komponenten um aktuellen Modus anzuzeigen: Monitor (0) oder Benutzer (1). Bei Interrupt oder Fehler erfolgt ein Wechsel in den Monitor- Modus. Interrupt/Fehler monitor user Setze Benutzer-Modus 42 Privilegierte Instruktionen nur im Monitor Modus.
I/O-Schutzmechanismus Alle I/O Operationen sind privilegierte Operationen. Benutzer darf nie im Monitor-Modus Kontrolle über den Computer erhalten. Z.B.: Benutzerprogramm versucht neue Adresse im Interrupt-Vektor zu speichern. Verwende Systemaufruf für I/O Operationen 43 Speicherschutzmechanismums Speicherschutz zumindest für Interrupt-Vektor und Interrupt Service Routinen Speicherschutz Kontrollierter Zugriff auf Speicher Nur Teil des Speichers ist zugreifbar. Kann mit Base und Limit Register realisiert werden Base Register: kleinste legale physische Adresse Limit Register: legaler Speicherbereich Speicher ausserhalb des vorgegebenen Speicherbereiches ist geschützt. Base Base + Limit 44 CPU Adresse Ja >= < Speicher Ja Nein Nein BS Systemaufruf (Trap) - Adressfehler
Speicherschutzmechanismus mit Base und Limit Register 46 45 Hardware-Schutzmechanismus Im Superuser-Modus hat das Betriebssystem uneingeschränkten Zugriff auf den gesamten Speicher. Beispiel für den Hardware-Schutzmechanismus: Ladeoperationen mit dem Base- und Limit-Registern sind privilegierte Operationen.
CPU-Schutzmechanismus Es soll das Blockieren der CPU durch einen Benutzerprozesse verhindert werden. Periodischer Timer übergibt Kontrolle der CPU an Superuser-Modus. Timer wird nach jeder Zeiteinheit (Clock Tick) dekrementiert. Wenn der Timer den Wert 0 erreicht, wird ein Interrupt erzeugt. Time Sharing wird mit Timer realisiert. Verändern des Timer ist eine privilegierte Operation (HW-Schutz). 50 47 Netzwerke Local Area Networks (LAN) Wide Area Networks (WAN)
Local Area Network 52 51 Wide Area Network
Zusammenfassung Computer haben viele verschiedene Devices: Input/Output Devices Speicher Prozessor(en) Für jedes Device gibt es einen verantwortlichen Device Controller. Interrupts definieren Signalisierung eines Ereignisses verursacht durch HW-Device oder Software. Devices müssen vor unerlaubtem Zugriff geschützt werden. Zu diesem Zweck wird ein Hardware-Schutzmechanismus eingeführt. Systemaufrufe: Schnittstelle zwischen Anwendungsprogramm (Benutzermodus) und BS-Kernel (Monitor) 53