Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Eingabe / Ausgabe.

Ähnliche Präsentationen


Präsentation zum Thema: "Eingabe / Ausgabe."—  Präsentation transkript:

1 Eingabe / Ausgabe

2 RAID-Konfigurationen
I/O-Schichtung Gerätemodelle RAID-Konfigurationen Treiber Energieverwaltung Ein- und Ausgabeverwaltung

3 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 Ein- und Ausgabeverwaltung

4 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 Treiber Hardware BS Treiber zu UDI Schnittstelle Services zu Hardware mapping Treiber = Virtuelle Maschine plattformunabhängige Ablaufumgebung Ein- und Ausgabeverwaltung

5 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 Ein- und Ausgabeverwaltung

6 Ein-/Ausgabeschichten: Unix
Stream –System: Einschalten von Filterschichten Ein- und Ausgabeverwaltung

7 Ein-/Ausgabeschichten: Windows NT
Dynam. Schichtung durch Aufträge an I/O-Manager user mode Benutzerprozeß kernel -Verteiler I/O-Manager/Cache Gerätetreiber Gerät Monitor/Drucker/ Tastatur/Maus/… Benutzerprozeß kernel -Verteiler I/O-Manager kernel mode Dateisystem-Treiber I/O-Manager/Cache Multivolume-Treiber I/O-Manager/Cache Gerätetreiber Gerät CD-ROM/Platten/ Flo p py/ Tape/… Einfacher I/O-Zugriff Dateizugriff Ein- und Ausgabeverwaltung

8 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) Nichtresidente Attribu t steile MFT-Eintrag standard information file name (security descriptor) data stream (Attr.) start VCN start LCN length 1344 3 1020 ... VCN 1 2 defekt LCN 1345 1346 4 5 1021 1022 Ein- und Ausgabeverwaltung

9 Treiber: Fehlertoleranzfunktionen
Windows NT: Clusterersatz MFT-Eintrag Nichtresidente Attributsteile standard information file name VCN 1 (security descriptor) data stream 2 LCN 1344 1345 start VCN start LCN length 1562 1344 2 VCN 3 4 5 2 1562 1 LCN 1020 1021 1022 3 1020 3 ... Kein Ersatz möglich: corruptedBit=1, checkDisk() nach mount() Ein- und Ausgabeverwaltung

10 RAID-Konfigurationen
I/O-Schichtung Gerätemodelle RAID-Konfigurationen Treiber Energieverwaltung Dateiverwaltung Ein- und Ausgabeverwaltung

11 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 Ein- und Ausgabeverwaltung

12 Festplatten Magnetplatten Schreib/Leseköpfe Controllerelektronik
Ein- und Ausgabeverwaltung

13 Alu-Platte mit Eisenoxid
Festplattenmodell Schreib/Lese-Magnetkopf Schreib/Lesespur mit Sektoren Zylindergruppe: Spuren bei mehreren Platten Zylindergruppe Schreib-/Lesekopf Positionier- mechanik Drehachse Spur mit Se k toren Alu-Platte mit Eisenoxid Ein- und Ausgabeverwaltung

14 Festplattenmodell mittlere Zugriffszeit tS (average seek time) pro Spur mittlere Wartezeit tD (rotational delay) pro Sektor, max. tR Transferzeit tT für m Bytes pro Spur  Datentransferrate = m/tT mittl. tD= tR/2, k Bytes  rel. Spuranteil k/m Gesamtzeit T = tS tR lin. Funktion in k Moderne Platten: tS  10 ms. Bei 6000U/m oder 100U/s tR  10ms Effektive Datenrate k/T stark bestimmt durch konstanten initialen Term tS ! Erhöhung der Rate durch größere Seiten. Ein- und Ausgabeverwaltung

15 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“) jeweils konstante Sektorenzahl pro Zone; innere weniger, äußere mehr. jede Zone hat eigene Transfergeschwindigkeit (Sektoren/Zeit) Ein- und Ausgabeverwaltung

16 Festplattenmodell: Probleme
Suchzeit (ms) Suchabstand (Zylinderzahl) Nicht-lineare Kopfbewegung Pufferwirkung und Bustransfer I/O-Anteil Zeit(ms) Ein- und Ausgabeverwaltung

17 Festplattenmodell: Bus-Parallelaktivität
Ein- und Ausgabeverwaltung

18 Festplatten: Zugriffsoptimierung
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. Unix: Pro Zylindergruppe eine super node  neue i-nodes + Datenblöcke auf gleicher Spurposition Win NT: MFT auf Spur in Plattenmitte Ein- und Ausgabeverwaltung

19 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) Ein- und Ausgabeverwaltung

20 DRAM, Nand-FLASH SSD und HD-Speicher
Preisentwicklung $ pro GByte HD $/GB: ,61$; ,53$; ,39; 04-0,77; 05-0,42; 06-0,23; 07-0,13; 08-0,07; 09-0,04; 10-0,02; Preisverfall HD: ~45% pro Jahr, Flash: >50% pro Jahr Ein- und Ausgabeverwaltung

21 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 Ein- und Ausgabeverwaltung

22 Geräteschnittstellen
Beispiel: Standard PC Hardware reale I/OAdressen Die realen Adressen, die bei Standard-PCs im untersten Bereich angesiedelt sind, wurden in der PC-Geschichte unterschiedlich genutzt. Die Folie zeigt eine häufig benutzte Konfiguration. Man beachte, daß die virtuellen Adressen der Geräte völlig anders sind, etwa am Ende des Adressraums. Ein- und Ausgabeverwaltung

23 Beispiel Parallel Port - Datenpuffer
Daten Register Byte Adresse: IOBase+0 (read+write) Bit Name Pin Buffer Bit value '0' meaning Bit value '1' meaning 7 D7 9 True Pin low; data value '0' Pin high; data value '1' 6 D6 8 5 D5 4 D4 3 D3 2 D2 1 D1 D0 Ein- und Ausgabeverwaltung

24 Beispiel Parallel Port - Statusregister
Status-Register IOBase+1 (Read Only) Bit Name Pin Buffer Bit value '0' meaning Bit value '1' meaning 7 BUSY 11 Inverted Pin high: printer busy Pin low: printer not busy 6 -ACK 10 True Pin low; printer is asserting -ACK Pin high; printer is not asserting -ACK 5 NO PAPER 12 Pin low; printer has paper Pin high; printer has no paper 4 SELECTED 13 Pin low; printer is not selected Pin high; printer is selected 3 -ERROR 15 Pin low; printer error condition Pin high; printer no-error 2 Undef 1 Ein- und Ausgabeverwaltung

25 Beispiel Parallel Port - Befehlsregister
Control Register Adresse: IOBase+2 (read+write) Bit Name Pin Buffer Bit value '0' meaning Bit value '1' meaning 7 Unused - 6 5 Input mode Normal (output) mode Input mode (PS/2 ports only) 4 Interrupt enable IRQ line driver disabled IRQ line driver enabled 3 -SEL ECT 17 Inverted Pin high; not selected Pin low; printer selected 2 -INITA LIZE 16 True Pin low; initializes printer Pin high; does not initialize printer 1 -AUTO FEED 14 Pin high; no auto-feed Pin low; auto-feed enabled -STRO BE Pin high; -STROBE inactive Pin low; -STROBE active Ein- und Ausgabeverwaltung

26 Geräteschnittstellen: Interruptvektoren
IRQ Interrupt-Controller Status register CPU Vector base register Gerät 0 Gerät 1 Gerät 15 Interrupt vector 1 2 3 4 Interrupt vector table Ein- und Ausgabeverwaltung

27 Geräteschnittstellen: PC IRQs
DEVICE USED in AT, 386, 486, and Pentium Computers System Timer 1 Keyboard Controller 2 Tied to IRQs 8-15 3 COM 2 4 COM 1 5 LPT2 or Sound Card 6 Floppy Diskette Controller 7 LPT 1 8 Real Time Clock 9 Substitutes for IRQ 2 10 Not Assigned 11 12 PS/2 Mouse Port 13 FPU (Floating Point Unit) 14 Primary Hard Disk Controller 15 Secondary Hard Disk Controller Ein- und Ausgabeverwaltung

28 Geräteschnittstelle: Festplatten
Registerarten 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 Ein- und Ausgabeverwaltung

29 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) Ein- und Ausgabeverwaltung

30 Geräteschnittstellen: Initialisierung
Problem: zentrale Koordination der I/O-Adressen, Pufferadressen, Interruptnummern Lösung: Plug-and-Play PnP Erfassung aller Geräte (Hersteller Id, GeräteId, Gerätenamen, Anforderungen) Auslegung der Listen für Adressen und Interrupts unter Berücksichtigung der legacy devices 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 Ein- und Ausgabeverwaltung

31 Geräteinitialisierung: PnP auf PCI
PCI-Bus hat Adressplätze für Slots Offset Label byte ID Info VID 2 Vendor Id Hersteller des Chip auf der Karte DID Device Id Hersteller Chip: DeviceNr 8 REV 1 Revision Id Änderungen OHNE Interface rev. 9 CC 3 Class Code BaseClass, SubClass, ProgrammingInterface 2C SVID Subsystem Vendor ID Hersteller ID durch PCI SIG 2E SID Subsystem Id Herstellerangabe: 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 Ein- und Ausgabeverwaltung

32 Geräteinitialisierung: PnP
PCI Treiber testet und findet Busse, Geräte, Funktionen PCI Treiber liest den Konfigurationsraum (INF-Dateien) und erzeugt die IDs. PCI Treiber führt Ausnahmebehandlung durch: An- und Ausschalten von Merkmalen, Anwenden von Patchen und workarounds. PCI Treiber installiert den Gerätetreiber. PCI Treiber lädt den Gerätetreiber. Der Gerätetreiber wendet alle nötigen Ausnahmen an, An- und Ausschalten von Merkmalen, Anwenden von Patchen und workarounds. PCI Treiber benachrichtigt den Gerätetreiber, das Gerät zu initialisieren. Ein- und Ausgabeverwaltung

33 RAID-Konfigurationen
I/O-Schichtung Gerätemodelle RAID-Konfigurationen Treiber Energieverwaltung Dateiverwaltung Ein- und Ausgabeverwaltung

34 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 Disk 1 Disk 2 . . . Disk N Streifen M Streifen 1 max Datei Ein- und Ausgabeverwaltung

35 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 Disk 1 Disk 2 „Spiegel max Mit Streifen: Raid 0/1-System Ein- und Ausgabeverwaltung

36 Multiple Plattenspeicher: RAID-2
Fehlerkorrektur durch Paritätsbildung, z.B. Exclusiv-Oder XOR Å Es folgt direkt aus der Tabelle a Å 0 = a a = 0 somit p b = a b a b p=a p 1 1 0 0 1 p gespeichert, a rekonstruiert p = b1b2...bn Ist Laufwerk b2 defekt, so gilt p  b1b3...bn = b1b2b3 ...bnb1b3...bn = b1b1...bn  bnb2 =   b2 = b2 Rekonstruktion Disk n+1 Disk n ... Disk 2 Disk 1 .. . bit 7 bit 6 bit 5 bit0 1 44444 2 444444 3 1 neues Datenbyte pro Platte Wort7 Wort6 Wort Wort0 Daten Parität Controller Anwendung Wortparität Aber: Spindelsynchronisation nötig! Ein- und Ausgabeverwaltung

37 Multiple Plattenspeicher: RAID3,4,5
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 Ein- und Ausgabeverwaltung

38 Ausfallwahrscheinlichkeiten
Berechnung der System-Ausfallwahrscheinlichkeit Beispiel: 2 Festplatten, RAID 0 P(Ausfall einer Platte) = 0,1 [pro Zeiteinheit] F1 F2 Prob 0,1*0,1 = 0,01 1 0,1*0,9 = 0,09 0,9*0,1 = 0,09 0,9*0,9 = 0,81 F1 F2 Aufgabe: Wie groß ist die Ausfallwahrscheinlichkeit des Gesamtsystems, wenn RAID1 vorliegt? Lösung: Bei RAID1 sind die Platten als Spiegelplatten ausgeführt, also müssen für einen Systemdefekt beide defekt sein. Dies ist mit P=0,01 der Fall. RAID 0 = striping Systemausfall, wenn mind. 1 Platte defekt. Also: P(Ausfall) = 0,01+0,09+0,09 = 0,19 Ein- und Ausgabeverwaltung

39 RAID-Konfigurationen
I/O-Schichtung Gerätemodelle RAID-Konfigurationen Treiber: Unix und NT Energieverwaltung Dateiverwaltung Ein- und Ausgabeverwaltung

40 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 Ein- und Ausgabeverwaltung

41 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 Ein- und Ausgabeverwaltung

42 Treiberschnittstelle: Windows NT
Treiberklassen Eingabegeräte (Human Interface Devices) Maus, Tastatur, Datenhandschuh, .. Standbildgeräte 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 Ein- und Ausgabeverwaltung

43 Treiberschnittstelle: Windows NT
Treiberfunktionen 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 Ein- und Ausgabeverwaltung

44 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 Partition0 Partition1 Treiberobjekt Read Write ... Start I/O Cancel I/O Unload Devices unload driver read, write Ein- und Ausgabeverwaltung

45 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() Ein- und Ausgabeverwaltung

46 Treiber Windows NT : Synchroner I/O
Synchrone Ein-/Ausgabe Systemaufruf abschließen und dabei Ergebnis (OK, Fehler) zurückgeben I/O Request Package IRP erzeugen und Treiber aufrufen Interrupt behandeln, in IRP Ergebnis notieren Daten zum Gerät schreiben lt. IRP I/O durchführen, dann Interrupt erzeugen Ein- und Ausgabeverwaltung

47 Treiber Windows NT: Asynchroner I/O
Systemaufruf abschliessen und dabei Ergebnis (Wartezustand) zurückgeben Phase 1: Auftrag einleiten IRP erzeugen und Treiber aufrufen Wartezustand zurückgeben IRP in Geräte-Warteschlange einreihen Ein- und Ausgabeverwaltung

48 Treiber Windows NT: Asynchroner I/O
Phase 2: Interrupt Service ISR setzt Interrupt zurück, legt DPC-Auftrag an, reiht ihn in Warteschlange ein und setzt DPC-Interrupt. ISR wird aufgerufen Interrupt erscheint und ruft dispatcher auf DPC = Dispatch Procedure Call Ein- und Ausgabeverwaltung

49 Treiber Windows NT: Asynchroner I/O
Phase 3: Auftragsbearbeitung DPC startet nächstes IRP und beendet Service Request DPC wird aufgerufen DPC Interrupt erscheint und ruft dispatcher auf Ein- und Ausgabeverwaltung

50 Treiber Windows NT: Asynchroner I/O
Phase 4: Datenübertragung zum Benutzer einleiten I/O-Manager notiert APC, um Service Request erst bei Erscheinen des Users zu beenden DPC ruft I/O-Manager auf zum Auftragsabschluss APC = Asynchronous Procedure Call Ein- und Ausgabeverwaltung

51 Treiber Windows NT: Asynchroner I/O
Phase 5: Datenübertragung zum Benutzer abschliessen APC-Methode schreibt Daten in den user space, setzt Dateiobjekt zu „signalisiert“ reiht user-APC in Warteschlange ein löscht IRP Beim nächsten Auftreten des Users erscheint ein APC-Interrupt Die APC-ISR ist beim I/O Manager angesiedelt Ein- und Ausgabeverwaltung

52 Treiber-Optimierungsstrategien
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 Ein- und Ausgabeverwaltung

53 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 Input Windows NT WOW Ein- und Ausgabeverwaltung

54 RAID-Konfigurationen
I/O-Schichtung Gerätemodelle RAID-Konfigurationen Treiber Energieverwaltung Dateiverwaltung Ein- und Ausgabeverwaltung

55 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!) Ein- und Ausgabeverwaltung

56 Energieverwaltung Architektur
Zusammenspiel aus Betriebssystem und ACPI-Teilen Ein- und Ausgabeverwaltung

57 Energieverwaltung: Zustände
Ein- und Ausgabeverwaltung


Herunterladen ppt "Eingabe / Ausgabe."

Ähnliche Präsentationen


Google-Anzeigen