Präsentation herunterladen
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 = b1b2...bn Ist Laufwerk b2 defekt, so gilt p b1b3...bn = b1b2b3 ...bnb1b3...bn = b1b1...bn bnb2 = 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
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.