Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Modul: B-BS Betriebssysteme SS 2011 Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik.

Ähnliche Präsentationen


Präsentation zum Thema: "Modul: B-BS Betriebssysteme SS 2011 Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik."—  Präsentation transkript:

1

2 Modul: B-BS Betriebssysteme SS 2011 Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Eingabe / Ausgabe

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

4 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 3 Ein- und Ausgabeverwaltung Gerätetreiber Gerätetreiber = Kapselung gerätetypischer Merkmale Aufgaben Übersetzung vom logischen Programmiermodell zu gerätespezifischen 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

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

8 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 7 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 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 8 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 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 9 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 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 10 Ein- und Ausgabeverwaltung Dateiverwaltung Energieverwaltung Gerätemodelle RAID-Konfigurationen Treiber I/O-Schichtung

12 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 11 Ein- und Ausgabeverwaltung Gerätemodelle: Übersicht Wahlfreier Zugriff random access (RAM, 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

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

14 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 13 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

15 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 14 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.

16 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 15 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)

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

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

19 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 18 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 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üßte manuell angepaßt werden ! Besser: Hersteller optimiert internen Controller (adaptiv!) nach außen nur einheitliches virt. Gerät.

20 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 19 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 Mainframe-Erweiterung: schnelles Dateisystem (swap file) (ca.10-fach) Geringerer Platzbedarf (20%) RAM nicht direkt adressierbar (z.B. MS-DOS, 32 Bit BS-ab 4GB) Robuster mobiler Rechner (Erschütterungen)

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

22 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 21 Ein- und Ausgabeverwaltung Geräteschnittstellen: I/O mapping Keine dedizierten I/O-Kanäle, sondern I/O-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

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

24 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 23 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'

25 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 24 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

26 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 25 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

27 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 26 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

28 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 27 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

29 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 28 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

30 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 29 Ein- und Ausgabeverwaltung Geräteschnittstelle: Serielle Geräte Sequentielles Read/Write ohne Adreßinformation (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)

31 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 30 Ein- und Ausgabeverwaltung Geräteschnittstellen: Initialisierung Problem: zentrale Koordination der I/O- Adressen, Pufferadressen, Interruptnummern 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 Windows NT: Erstellung einer eigenen Liste bzw. Aufsetzen auf der vorigen Liste Unix (Linux): Aufsetzen auf der ESCD

32 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 31 Ein- und Ausgabeverwaltung Geräteinitialisierung: PnP auf PCI PCI-Bus hat 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

33 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 32 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.

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

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

36 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 35 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

37 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 36 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!

38 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 37 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

39 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 38 Ausfallwahrscheinlichkeiten Berechnung der System-Ausfallwahrscheinlichkeit Beispiel: 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. Also: P(Ausfall) = 0,01+0,09+0,09 = 0,19 Ein- und Ausgabeverwaltung

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

41 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 40 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

42 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 41 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

43 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 42 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

44 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 43 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

45 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 44 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

46 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 45 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()

47 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 46 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

48 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 47 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

49 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 48 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.

50 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 49 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

51 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 50 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

52 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 51 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

53 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 52 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

54 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 53 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

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

56 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Folie 55 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!)

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

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


Herunterladen ppt "Modul: B-BS Betriebssysteme SS 2011 Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik."

Ähnliche Präsentationen


Google-Anzeigen