Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

Ähnliche Präsentationen


Präsentation zum Thema: "Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,"—  Präsentation transkript:

1

2 Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B, M-SIW-S2, M-SIW-VA, M-SIW-VB, M-SIW-VC Betriebssysteme WS 2015/16 Eingabe / Ausgabe

3 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 2 Betriebssysteme: Ein- und Ausgabeverwaltung Energieverwaltung Gerätemodelle RAID-Konfigurationen Treiber: Unix und NT I/O-Schichtung

4 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 3 Betriebssysteme: Ein- und Ausgabeverwaltung Gerätetreiber Gerätetreiber = Kapselung gerätetypischer, grundlegender Merkmale in Zwischenschicht Aufgaben Übersetzung vom logischen Programmiermodell zu typischen Geräte- Anforderungen Koordination der schreibenden und lesenden Prozesse für das Gerät Koordination verschiedener Geräte gleichen Typs Pufferung der Daten user mode kernel mode Benutzerprozeß kernel-Verteiler Auftragsverwaltung Pufferung Treiber Controller Gerät BS-Kern virtuelle Maschine !

5 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 4 Betriebssysteme: Ein- und Ausgabeverwaltung Gerätetreiber Problem: neue Geräte, neue Treiber nötig (Fehlermöglichkeit!) Lösung: Standardschnittstellen für Treiber Beispiel: UDI (Unix) Uniform Driver Interface UDI Ablauf- umgebung Applikation Betriebssystem Systemaufruf I/O Manager UDI-Treiber Hardware BS-Treiber zu UDI Schnittstelle UDI-Services zu Hardware-mapping Treiber = Virtuelle Maschine plattformunabhängige Ablaufumgebung

6 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 5 Betriebssysteme: Ein- und Ausgabeverwaltung Ein-/Ausgabeschichten: Unix Dateisystemtreiber (Linux) user mode kernel mode Benutzerprozeß kernel-Verteiler Virtuelles Dateisystem (VFS) Minix Ext2 Reiser... Pufferung Gerätetreiber Gerät1 Gerät2 Gerät3... Dateisystemtreiber

7 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 6 Betriebssysteme: Ein- und Ausgabeverwaltung Ein-/Ausgabeschichten: Unix Stream –System: Einschalten von Filterschichten

8 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 7 Betriebssysteme: Ein- und Ausgabeverwaltung Ein-/Ausgabeschichten: Windows NT Dynam. Schichtung durch Aufträge an I/O-Manager usermode kernelmode Benutzerprozeß kernel-Verteiler I/O-Manager/Cache Gerätetreiber Gerät Monitor/Drucker/ Tastatur/Maus/… Einfacher I/O-Zugriff Benutzerprozeß kernel-Verteiler I/O-Manager Dateisystem-Treiber I/O-Manager/Cache Gerätetreiber Gerät CD-ROM/Platten/ Floppy/Tape/… Dateizugriff Multivolume-Treiber I/O-Manager/Cache

9 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 8 Betriebssysteme: Ein- und Ausgabeverwaltung Treiber: Fehlertoleranzfunktionen Unix: corrupted-Bit=1  chkdsk() beim nächsten mount() Windows NT: dynamisches bad cluster mapping durch FtDisk Beispiel: Ausfall eines Clusters (ohne Gerätemapping)

10 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 9 Betriebssysteme: Ein- und Ausgabeverwaltung Treiber: Fehlertoleranzfunktionen Windows NT: Clusterersatz Nichtresidente Attributsteile MFT-Eintrag standard information file name (security descriptor) data stream start VCNstart LCNlength VCN01 LCN VCN345 LCN Kein Ersatz möglich: corruptedBit=1, checkDisk() nach mount()

11 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 10 FRAGEN Antworten 1.Zeichenorientierte (character devices) und blockorientierte (block devices) Geräte. 2.Sequentielle vs. random acces Ein/Ausgabegabe Betriebssysteme: Ein- und Ausgabeverwaltung Antwort Dies ist dynamisch und hängt von dem I/O-Auftrag ab. 1.Welche beide Gerätearten kennt Unix? 2.Wodurch unterscheiden sie sich? Wieviele I/O-Schichten hat Windows NT?

12 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 11 Betriebssysteme: Ein- und Ausgabeverwaltung Energieverwaltung Gerätemodelle RAID-Konfigurationen Treiber: Unix und NT I/O-Schichtung

13 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 12 Betriebssysteme: Ein- und Ausgabeverwaltung Gerätemodelle: Übersicht Wahlfreier Zugriff random access (RAM, SSD, Festplatten, CD-ROM, DVD, Floppy Disk,...) Sequentieller Zugriff sequential access (Terminals, Magnetbandgeräte, A/D-Wandler,...) Nötig: Wissen über „typisches“ Verhalten der Geräte für Treiberdesign  Treibertypen

14 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 13 Betriebssysteme: Ein- und Ausgabeverwaltung Wahlfreier Zugriff: Festplatten Magnetplatten: Fr-beschichtetes Aluminium Schreib/Leseköpfe Controllerelektronik

15 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 14 Betriebssysteme: Ein- und Ausgabeverwaltung Festplattenmodell Schreib/Lese-Magnetkopf Schreib/Lesespur mit Sektoren Zylindergruppe: Spuren bei mehreren Platten Zylindergruppe Schreib-/Lesekopf Positionier- mechanik Drehachse Spur mit Sektoren Alu-Platte mit Eisenoxid

16 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 15 Betriebssysteme: Ein- und Ausgabeverwaltung Festplattenmodell mittlere Zugriffszeit t S (average seek time) pro Spur mittlere Wartezeit t D (rotational delay) pro Sektor, max. t R Transferzeit t T für m Bytes pro Spur  Datentransferrate = m/t T mittl. t D = t R /2, k Bytes  rel. Spuranteil k/m Gesamtzeit T = t S + + t R lin. Funktion in k Moderne Platten: t S  10 ms. Bei 6000U/m oder 100U/s  t R  10ms Effektive Datenrate k/T stark bestimmt durch konstanten initialen Term t S ! Erhöhung der Rate durch größere Seiten.

17 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 16 Betriebssysteme: Ein- und Ausgabeverwaltung Festplattenmodell Problem: konst.Magnetisierungsdichte, unterschiedliche Spurlängen  unterschiedl. Sektorenzahl bzw. Speichergröße pro Spur  höh. Treiberaufwand für Verwaltung  Elektronikproblem (außen: höh. Signalfrequenz, innen geringere: Breitbandinput vs. Rauschunterdrückung) Lösung: Konstante Sektorenzahl durch künstl. abnehmende Schreibdichte Problem: Ineffektives Ausnutzen der Speicherdichte Lösung: Einteilung der Platte in ca Zonen („zoning“) zjeweils konstante Sektorenzahl pro Zone; innere weniger, äußere mehr. zjede Zone hat eigene Transfergeschwindigkeit (Sektoren/Zeit)

18 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 17 Betriebssysteme: Ein- und Ausgabeverwaltung Festplattenmodell: Probleme Suchzeit (ms) Suchabstand (Zylinderzahl)  Nicht-lineare Kopfbewegung  Pufferwirkung und Bustransfer I/O-Anteil Zeit(ms )

19 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 18 Betriebssysteme: Ein- und Ausgabeverwaltung Festplattenmodell: Bus-Parallelaktivität

20 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 19 Betriebssysteme: Ein- und Ausgabeverwaltung Festplatten: Zugriffsoptimierung Unix: Pro Zylindergruppe eine super node  neue i-nodes + Datenbl ö cke auf gleicher Spurposition Win NT: MFT auf Spur in Plattenmitte Schneller Zugriff möglich durch Treiberoptimierung optimale Ausnutzung der Geräteeigenschaften Berücksichtigung der HW-Konfiguration Aber:  Festplattenparameter ändern sich pro Modell  Plattenmechanik, Puffergröße, Buseigenschaften in jedem Rechner unterschiedlich  jeder Treiber müsste manuell angepasst werden ! Besser: Hersteller optimiert internen Controller (adaptiv!), nach außen nur einheitliches virtuelles Gerät.

21 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 20 Betriebssysteme: Ein- und Ausgabeverwaltung SSD RAM-Disks Solid State Disk (SSD) = RAM als schnelle Festplatte über Standard-Massenspeichertreiber Wozu? RAM = teuer & schnell  Festplatte = preiswert & langsam Sinnvoll, wenn gewünscht schnelles Dateisystem (ca.10-fach) geringerer Platzbedarf (20%) RAM nicht direkt adressierbar (z.B. MS-DOS, 32 Bit BS-ab 4GB) robuster mobiler outdoor-Rechner (Erschütterungen)

22 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 21 Betriebssysteme: Ein- und Ausgabeverwaltung DRAM, Nand-FLASH SSD und HD-Speicher Preisentwicklung $ pro GByte Preisverfall HD: ~45% pro Jahr, Flash: >50% pro Jahr SSD Festplatte

23 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 22 Solid State Disks SSD schnell kompatibel durch gleichen Formfaktor (2,5“) kompatibel durch gleiche Schnittstelle bzw. Anschluss (SATA) Betriebssysteme: Ein- und Ausgabeverwaltung

24 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 23 SSD RAM-Disks Probleme und Nachteile Nur begrenzte Anzahl von Schreibzyklen möglich: , max 1Mio. Extra Löschzyklus nötig Interne Nutzungsverteilung: kein sicheres Löschen mögl.(Datenschutz?) Betriebssysteme: Ein- und Ausgabeverwaltung Lösungen  wear level-Algorithmen: Gleichmäßiges Beschreiben (Abnutzung) aller Zellen: interne Nutzungsverteilung und Reserveeinsatz durch Controller  echtes Löschen (BS-TRIM, internes garbage collection) ist parallel zum Schreiben auf anderen Zellen  Kein externes garbage collection (Defragmentierung) des Speichers  Häufig beschriebene Bereiche (Systemrettung, Hibernate, swap) nicht auf SSD (z.B. /user, /tmp), sondern nur read only-Programmanteile.  Cache-Funktionen sind unnötig: Bootoptimierung, SuperFetch, Prefetch für SSD abschalten

25 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 24 FRAGE Warum sollte man einen Treiber nicht für die Eigenschaften der angeschlossenen Geräteversion optimieren? Betriebssysteme: Ein- und Ausgabeverwaltung Antwort Weil dann das Information hiding-Prinzip der Schnittstelle des abstrakten Datentyps verletzt wird. Ein Treiber ist eine virtuelle Maschine! Nachteil: Bei jeder Modellversion wäre ein eigener Treiber nötig!

26 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 25 Betriebssysteme: Ein- und Ausgabeverwaltung Geräteschnittstellen: I/O mapping Keine dedizierten I/O-Kanäle, sondern I/O-mapping (memory mapping) zu realen bzw. virtuellen Speicheradressen: Behandlung der Geräteregister (Funktionen, Parameter) wie Speicher Übertragung der Datenblöcke mittels DMA-Kanälen, z.B. durch Controllerprozessor

27 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 26 Betriebssysteme: Ein- und Ausgabeverwaltung Geräteschnittstellen Beispiel: Standard PC Hardware reale I/O-Adressen

28 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 27 Betriebssysteme: Ein- und Ausgabeverwaltung Beispiel Parallel Port - Datenpuffer Daten Register Byte Adresse: IOBase+0 (read+write) BitNamePinBufferBit value '0' meaningBit value '1' meaning 7D79TruePin low; data value '0'Pin high; data value '1' 6D68TruePin low; data value '0'Pin high; data value '1' 5D57TruePin low; data value '0'Pin high; data value '1' 4D46TruePin low; data value '0'Pin high; data value '1' 3D35TruePin low; data value '0'Pin high; data value '1' 2D24TruePin low; data value '0'Pin high; data value '1' 1D13TruePin low; data value '0'Pin high; data value '1' 0D02TruePin low; data value '0'Pin high; data value '1'

29 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 28 Betriebssysteme: Ein- und Ausgabeverwaltung Beispiel Parallel Port - Statusregister Status-Register IOBase+1 (Read Only) BitNamePinBufferBit value '0' meaningBit value '1' meaning 7BUSY11InvertedPin high: printer busyPin low: printer not busy 6-ACK10TruePin low; printer is asserting -ACK Pin high; printer is not asserting -ACK 5NO PAPER 12TruePin low; printer has paper Pin high; printer has no paper 4SELEC TED 13TruePin low; printer is not selected Pin high; printer is selected 3- ERROR 15TruePin low; printer error condition Pin high; printer no- error 2Undef 1 0

30 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 29 Betriebssysteme: Ein- und Ausgabeverwaltung Beispiel Parallel Port - Befehlsregister Control Register Adresse: IOBase+2 (read+write) BitNamePinBufferBit value '0' meaningBit value '1' meaning 7Unused Input mode --Normal (output) modeInput mode (PS/2 ports only) 4Interrupt enable --IRQ line driver disabled IRQ line driver enabled 3-SEL ECT 17InvertedPin high; not selectedPin low; printer selected 2-INITA LIZE 16TruePin low; initializes printer Pin high; does not initialize printer 1-AUTO FEED 14InvertedPin high; no auto-feedPin low; auto-feed enabled 0-STRO BE 1InvertedPin high; -STROBE inactive Pin low; -STROBE active

31 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 30 Betriebssysteme: Ein- und Ausgabeverwaltung Geräteschnittstellen: Interruptvektoren Gerät 0 Gerät 1 … Gerät 15 Interrupt- Controller Status register CPU Vector base register … Interrupt vector table Interrupt vector IRQ

32 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 31 Betriebssysteme: Ein- und Ausgabeverwaltung Geräteschnittstellen: PC IRQs IRQ DEVICE USED in AT, 386, 486, and Pentium Computers 0System Timer 1Keyboard Controller 2Tied to IRQs COM 2 4COM 1 5LPT2 or Sound Card 6Floppy Diskette Controller 7LPT 1 8Real Time Clock 9Substitutes for IRQ 2 10Not Assigned 11Not Assigned 12PS/2 Mouse Port 13FPU (Floating Point Unit) 14Primary Hard Disk Controller 15Secondary Hard Disk Controller

33 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 32 Betriebssysteme: Ein- und Ausgabeverwaltung Geräteschnittstelle: FestplattenRegisterarten Befehlsregister (Write only) Kontrollregister mit Befehlscode für Funktionen Statusregister (Read only) Status mit Bitbedeutungen (z.B. Bit4=1  Lesen beendet) Adreßregister Angabe von GerätNr, Zylinder, Spur, Sektor, Platte, Kopf,.. Datenpuffer (Read/Write) Adresse für I/O, z.B. DMA-Transfer Interruptsystem Aufsetzen/Löschen eines Interrupts für Benachrichtigung „Befehl ausgeführt“ Zu viele Register: zu viel Adreßraum nötig. Abhilfe: Messages mit Befehlsheader + DMA-Transfer

34 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 33 Betriebssysteme: Ein- und Ausgabeverwaltung Geräteschnittstelle: Serielle Geräte Sequentielles Read/Write ohne Adressinformation (Terminals, Zeilendrucker, Tastatur) Register Kontrollregister Übertragungsgeschwindigkeit, synchron/asynchron,.. Eingaberegister (read only) zuletzt empfangenes Zeichen Ausgaberegister (write only) zu sendendes Zeichen Interruptsystem Interrupt auslösen nach jedem gesendeten/empfangenem Zeichen Flußsteuerung: Hardware(RS232) oder Software (XON/XOFF)

35 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 34 Betriebssysteme: Ein- und Ausgabeverwaltung Geräteschnittstellen: Initialisierung Problem: zentrale Koordination der I/O-Adressen, Pufferadressen, Interrupt-Nummern Lösung: Plug-and-Play PnP 1.Erfassung aller Geräte (Hersteller Id, GeräteId, Gerätenamen, Anforderungen) 2.Auslegung der Listen für Adressen und Interrupts unter Berücksichtigung der legacy devices 3.Einstellen der Geräte entsprechend der Liste BIOS: Basic Input-Output System (On-board-Betriebssystem) Erstellung einer Liste ESCD extended system configuration data Windows NT: Erstellung einer eigenen Liste bzw. Aufsetzen auf der vorigen Liste Unix (Linux): Aufsetzen auf der ESCD NEU: Unified Extensible Firmware Interface UEFI

36 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 35 Betriebssysteme: Ein- und Ausgabeverwaltung Geräteinitialisierung: PnP auf PCI PCI-Bus Spezifikation Adressplätze für Slots OffsetLabelbyteIDInfo 0VID2Vendor IdHersteller des Chip auf der Karte 2DID2Device IdHersteller Chip: DeviceNr 8REV1Revision IdÄnderungen OHNE Interface rev. 9CC3Class CodeBaseClass, SubClass, ProgrammingInterface 2CSVID2Subsystem Vendor IDHersteller ID durch PCI SIG 2ESID2Subsystem IdHerstellerangabe: DeviceNr Windows PCI-DeviceId: DID&VID&SID&SVID Auslesen. Device neu: nachsehen in INF-Dateien, installieren des Treibers (neu=neuer chip, neue SW-Version etc.: neuer SID), Beispiel: Soundkarte DID=11, SVID=1102(Creative), SID=0002(Live!), class=„MultiMediaDevice“, Function=0 DID=11, SVID=1102(Creative), SID=7002(Gameport),class=„InputDevice“, Function=1

37 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 36 Betriebssysteme: Ein- und Ausgabeverwaltung Geräteinitialisierung: PnP 1.PCI Treiber testet und findet Busse, Geräte, Funktionen 2.PCI Treiber liest den Konfigurationsraum (INF-Dateien) und erzeugt die IDs. 3.PCI Treiber führt Ausnahmebehandlung durch: An- und Ausschalten von Merkmalen, Anwenden von Patchen und workarounds. 4.PCI Treiber installiert den Gerätetreiber. 5.PCI Treiber lädt den Gerätetreiber. 6.Der Gerätetreiber wendet alle nötigen Ausnahmen an, An- und Ausschalten von Merkmalen, Anwenden von Patchen und workarounds. 7.PCI Treiber benachrichtigt den Gerätetreiber, das Gerät zu initialisieren.

38 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 37 FRAGEN Jedes Subsystem benötigt zwei Arten von Angaben, um als memory-mapped device angesprochen werden zu können. Welche? Betriebssysteme: Ein- und Ausgabeverwaltung  I/O-Registeradressen  Interruptnummer Wozu gibt es das I/O mapping (memory-mapping) ? a)Schnelleres I/O b)Direkte Verbindung über I/O-Kanäle c)Einfachere Programmierung

39 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 38 Betriebssysteme: Ein- und Ausgabeverwaltung Energieverwaltung Gerätemodelle RAID-Konfigurationen Treiber: Unix und NT I/O-Schichtung

40 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 39 Betriebssysteme: Ein- und Ausgabeverwaltung Multiple Plattenspeicher: RAID RAID = Redundant Array of Inexpensive Disks Multiple Festplatten = 1 großer virtueller Plattenspeicher Vorteile : Schnelligkeit durch paralleles Lesen Potentielle Fehlertoleranz Inkrementelle Speichererweiterung möglich Beispiel: RAID 0 Partition = Streifen (Schnelligkeit),z.B. 64kB Datei

41 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 40 Betriebssysteme: Ein- und Ausgabeverwaltung Multiple Plattenspeicher: RAID1 Ausfalltoleranz durch Spiegelplatten Vorteile  schnelleres Lesen auf zwei Laufwerken in parallel  Kopie sofort verfügbar bei Ausfall einer Platte Nachteile  Schreiben parallel auf zwei Laufwerken ist aufwändiger  Kopie muss immer aktualisiert werden Mit Streifen: Raid 0/1- System

42 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 41 Betriebssysteme: Ein- und Ausgabeverwaltung p = b 1  b 2...  b n Ist Laufwerk b 2 defekt, so gilt p  b 1  b 3...  b n = b 1  b 2  b 3...  b n  b 1  b 3...  b n = b 1  b 1...  b n  b n  b 2 = 0...  0  b 2 = b 2 Rekonstruktion! Multiple Plattenspeicher: RAID-2 Fehlerkorrektur durch Paritätsbildung, z.B. Exclusiv-Oder XOR  Es folgt direkt aus der Tabelle a  0 = a a  a = 0 somit p  b = a  b   0 = a a b p=a  bp  b p gespeichert, a rekonstruiert Aber: Spindelsynchronisation nötig!

43 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 42 Betriebssysteme: Ein- und Ausgabeverwaltung Multiple Plattenspeicher: RAID3,4,5 RAID-3 Zusammenfassung von FT-Bits (ECC) des Puffers auf extra Platte wie bei RAID-2: Ausfalltoleranz multipler Laufwerke Problem: Spindelsynchronisation nötig wie bei RAID-2 RAID-4 Zusammenfassung von Daten und FT-Information zu Streifen und speichern auf Einzel-Platten ohne Spindelsynchronisation. RAID-5 Fehlertoleranz-Information jeweils auf anderer Platte speichern (schneller!) ABER: Backup nötig! HW-Fehlertoleranz  SW-Toleranz

44 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 43 Ausfallwahrscheinlichkeiten Berechnung der System-Ausfallwahrscheinlichkeit Aufgabe: 2 Festplatten, RAID 0 P(Ausfall einer Platte) = 0,1 [pro Zeiteinheit] F1F2Prob 000,1*0,1 = 0,01 010,1*0,9 = 0,09 100,9*0,1 = 0,09 110,9*0,9 = 0,81 F1F2 RAID 0 = striping Systemausfall, wenn mind. 1 Platte defekt. P(Ausfall) = ? Also: P(Ausfall) = 0,01+0,09+0,09 = 0,19 Betriebssysteme: Ein- und Ausgabeverwaltung

45 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 44 Betriebssysteme: Ein- und Ausgabeverwaltung Energieverwaltung Gerätemodelle RAID-Konfigurationen Treiber: Unix und NT I/O-Schichtung

46 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 45 Betriebssysteme: Ein- und Ausgabeverwaltung Treiberschnittstelle: Unix Zentrale Treiber-Funktionverteilungstabelle conf.c Random Access (Block) devices struct bdevsw bdevsw[] = { { tmopen,tmclose,tmstrategy,tmdump,0,B_TAPE}, /*0*/ { nodev,nodev, nodev, nodev, 0,B_TAPE},/*1*/ { xyopen,nulldev,xystrategy,xydump,xysize,0},/*2*/...}; open, close, strategy, dump, psize, flags Sequentiel (character) devices struct cdevsw cdevsw[] = { {cnopen, cnclose, cnread, cnwrite, cnioctl, nulldev, cnse- lect, 0,0,0}, /*0*/ {nodev, nodev, nodev, nodev, nodev, nodev, nodev, 0, &wcinfo, 0,}, /*1*/ {syopen, nulldev,syread, sywrite, syioctl, nulldev, syselect, 0, 0,0,}, /*2*/... }; open, close, read, write, ioctl, reset, select, mmap, stream, segmap

47 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 46 Betriebssysteme: Ein- und Ausgabeverwaltung Treiberschnittstelle: Unix Kernprozeduren xx = lp, mt oder rk xx_init Treiber- und Geräteinitialisierung, aufgerufen beim Systemstart xx_read, xx_write character devices Lesen und Schreiben von Daten xx _ open, xx _ close Gerätespezifische Bedeutung, z.B. Band rückspulen, Seitenvorschub etc. xx_ioctl character devices Einstellung z.B. Übertragungsgeschwindigkeit, Modus, high/low density,.. xx_strategy block devices Block read/write, log.Blocknummern  phys. Blocknummern, Pufferstrategien etc. xx_intr InterruptServiceRoutine zum DMA-Aufsetzen bzw. Pufferbehandlung

48 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 47 Betriebssysteme: Ein- und Ausgabeverwaltung Treiberschnittstelle: Windows NT Treiberklassen  Eingabegeräte (Human Interface Devices) Maus, Tastatur, Datenhandschuh,..  Standbildgerät e Scanner, Digitalcamera,...  Datenströme Videocamcorder, Audiorecorder,...  allgem. Klassentreiber und gerätespezif. Zusatz (Mini-Treiber) Anforderungen an NT-Treiber  Multiprozessorfähig (spin locks für kritische Abschnitte, reentrant- fähig)  Energieverwaltung (stand by, Hibernation,..)  Reaktion auf power failure: Spezifikation atomarer Teile, Geräte-setup  Ein- und Ausschalten im laufenden Betrieb (hot swappable devices)  PnP-fähig: Konfigurierbar bei IRQ, DMA-Kanal und Registeradressen

49 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 48 Betriebssysteme: Ein- und Ausgabeverwaltung Treiberschnittstelle: Windows NTTreiberfunktionen Initialisierungsprozeduren (load driver, DriverEntry, AddDevice) Treiber+ Deviceobjekt-Erzeugung durch I/O-Manager, Initialisierung des Treibers Abschlußprozedur (unload driver) Freigabe von Puffern, handles, etc. für I/O-Manager Gruppe von Service-Funktionen (dispatch routines) Lesen, Schreiben etc. für die Ein- und Ausgabeaufträge (IRP) Prozedur, um den Datentransfer zu starten (start I/O) oder abzubrechen (cancel I/O) Interrupt-Service-Routine (ISR) mit hoher Prio nur fürs Notwendige. Alles andere über DPCs. Eine zur ISR gehörende DPC-Prozedur (Deferred Procedure Call) Datentransfer abschließen, nächsten Auftrag holen,... Prozedur, um den Datentransfer abzuschließen (completion routine) Info über Erfolg, Fehler, Abbruch an aufrufenden Treiber Eine fehlernotierende Prozedur (error logging) Auftrag an I/O Manager zur Fehlerprotokollierung

50 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 49 Betriebssysteme: Ein- und Ausgabeverwaltung Treiberschnittstelle: Windows NT Verwaltung der Gerätetreiber-Objekte durch I/O-Manager: Abarbeitung der IRP durch Treiber via Geräteobjekt Auslagerung von Spezialaufgaben zu anderen Treibern (z.B. PCI-Buskontrolle), die vorher/danach aufgerufen werden I/O-Manager Geräte- objekt Platte Geräte- objekt Partition0 Geräte- objekt Partition1 Treiberobjekt Read Write... Start I/O Cancel I/O Unload Devices unload driver read, write

51 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 50 Betriebssysteme: Ein- und Ausgabeverwaltung Synchrone und asynch. Ein- und Ausgabe Synchrone I/O: blockierendes Warten Asynchrone I/O: Nur Einleiten des Auftrags, Ergebnisse später abholen Unix Asynchroner I/O  nicht-blockierender Modus bei read(), write()  Setzen des I/O auf ein Signal (I/O mit SW-Interrupt), evtl. warten mit sigpause() Windows NT  Parameter „overlapped“ bei ReadFile(), WriteFile(), CreateFile(),... + Daten abrufen durch wait(FileHandle) & ReadFile()  Eigene Asynchronous Procedure Calls APC (Ereignisobjekt) für jeden Thread, um mehrfache Nutzung von FileIds zu verhindern  Nutzung von ReadFileEx(), WriteFileEx() mit Abschlußprozedur des Thread + Warten mit SleepEx(), WaitForSingleObjectEx(), WaitForMultipleObjectsEx()

52 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 51 Betriebssysteme: Ein- und Ausgabeverwaltung Treiber Windows NT : Synchroner I/O Synchrone Ein-/Ausgabe Daten zum Gerät schreiben lt. IRP I/O Request Package IRP erzeugen und Treiber aufrufen I/O durchführen, dann Interrupt erzeugen Interrupt behandeln, in IRP Ergebnis notieren Systemaufruf abschließen und dabei Ergebnis (OK, Fehler) zurückgeben

53 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 52 Betriebssysteme: Ein- und Ausgabeverwaltung Treiber Windows NT: Asynchroner I/O Phase 1: Auftrag einleiten IRP in Geräte- Warteschlange einreihen IRP erzeugen und Treiber aufrufen Wartezustand zurückgeben Systemaufruf abschliessen und dabei Ergebnis (Wartezustand) zurückgeben

54 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 53 Betriebssysteme: Ein- und Ausgabeverwaltung Treiber Windows NT: Asynchroner I/O Phase 2: Interrupt Service ISR wird aufgerufen Interrupt erscheint und ruft dispatcher auf ISR setzt Interrupt zurück, legt DPC-Auftrag an, reiht ihn in Warteschlange ein und setzt DPC- Interrupt.

55 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 54 Betriebssysteme: Ein- und Ausgabeverwaltung Treiber Windows NT: Asynchroner I/O Phase 3: Auftragsbearbeitung DPC wird aufgerufen DPC Interrupt erscheint und ruft dispatcher auf DPC startet nächstes IRP und beendet Service Request

56 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 55 Betriebssysteme: Ein- und Ausgabeverwaltung Treiber Windows NT: Asynchroner I/O Phase 4: Datenübertragung zum Benutzer einleiten DPC ruft I/O-Manager auf zum Auftragsabschluss I/O-Manager notiert APC, um Service Request erst bei Erscheinen des Users zu beenden

57 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 56 Betriebssysteme: Ein- und Ausgabeverwaltung Treiber Windows NT: Asynchroner I/O Phase 5: Datenübertragung zum Benutzer abschliessen Die APC-ISR ist beim I/O Manager angesiedelt Beim nächsten Auftreten des Users erscheint ein APC-Interrupt APC-Methode schreibt Daten in den user space, setzt Dateiobjekt zu „signalisiert“ reiht user-APC in Warteschlange ein löscht IRP

58 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 57 Betriebssysteme: Ein- und Ausgabeverwaltung Treiber-Optimierungsstrategien Pufferung Pufferung Ungleichmäßiger Datenfluß kann kompensiert werden Ebene Dateitreiber: Dateiänderungen, Aufträge Ebene Gerätetreiber: Blöcke, Spur (vs. Controller-Cache) Konsistenzproblem! Pufferung in Unix Ser. Geräte: c-List =1 Zeile (RETURN=EOL nötig) Pufferabschaltung durch special file Bit Random access Geräte Liste der Aufträge, Liste der freien Blöcke (Speicherpool) Pufferung der i-nodes: power failure problem.  Sync() alle 30 sec & beim shutdown

59 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 58 Betriebssysteme: Ein- und Ausgabeverwaltung Treiber-Optimierungsstrategien Pufferung in Windows NT Cache Manager: memory mapping (section objects), autom. Verwaltung durch paging des Virtual Memory Managers Integration serieller Ein- und Ausgabe von Windows 3.1 Win 3.1 InputWindows NT WOW

60 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 59 Betriebssysteme: Ein- und Ausgabeverwaltung Energieverwaltung Gerätemodelle RAID-Konfigurationen Treiber I/O-Schichtung

61 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 60 Betriebssysteme: Ein- und Ausgabeverwaltung ACPI Anforderungen ACPI: Advanced Configuration and Power management Interface Taste Power/Sleep, kombiniert oder extra mechan. Taste oder Knopf für RESET Timer 3.5 MHz für Power (3 Register) Einschaltfkt. vom Timer gesteuert Sleep-Status, Interrupt 4 Ereignis-Register Power LED (OFF =off, blink= sleep, ON = normal) Msg-LED oder LCD Display f. Nachrichtenzahl 5V/500mA Dauerleitung (Netzteil!)

62 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 61 Betriebssysteme: Ein- und Ausgabeverwaltung Energieverwaltung Architektur Zusammenspiel aus Betriebssystem und ACPI-Teilen

63 © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 62 Betriebssysteme: Ein- und Ausgabeverwaltung Energieverwaltung: Zustände


Herunterladen ppt "Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,"

Ähnliche Präsentationen


Google-Anzeigen