Upload
sara-richter
View
215
Download
0
Embed Size (px)
Citation preview
Eingabe /Eingabe /AusgabeAusgabe
Kap. 6
Version vom 25.02.2005
Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH WiesbadenEin- und Ausgabeverwaltung
Folie 2
Kap. 6 - Inhalt
Gerätetreiber und SchichtenGerätemodelleBeispieleRAIDVerschiedenes
Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH WiesbadenEin- und Ausgabeverwaltung
Folie 3
Gerätetreiber I - Gesamtablauf IO-VorgangBenutzer Betriebssystem
Anfordernder Systemaufruf Gerätetreiber InterruptprogrammProzeß für Controller
Aufruf EA(Datenstrom, Operation, ...)
ZuordnungDatenstrom / Gerät
P(EA-Anforderung)
Testen Fehlerausgang
V(EA-Anforderung)
V(Treiber-Anforderung)
P(Treiber-Anforderung)
P(Controller-Vorgang) V(Controller-Vorgang)
Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH WiesbadenEin- und Ausgabeverwaltung
Folie 4
Gerätetreiber II - EigenschaftenGerätetreiber = Kapselung gerätetypischer MerkmaleAufgaben
Übersetzung vom logischen Programmiermodell zu gerätespezifischen AnforderungenKoordination der schreibenden und lesenden Prozesse für das GerätKoordination verschiedener Geräte gleichen TypsPufferung der Daten
user modekernel mode
Benutzerprozeßkernel -Verteiler
AuftragsverwaltungPufferung
TreiberController
Gerät
BS-Kern
Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH WiesbadenEin- und Ausgabeverwaltung
Folie 5
Gerätetreiber III - BeispielProblem: 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
Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH WiesbadenEin- und Ausgabeverwaltung
Folie 6
Gerätetreiber IV - Ein-/Ausgabeschichten: UnixDateisystemtreiber (Linux)
user mode kernel mode
Benutzerprozeß kernel-Verteiler
Virtuelles Dateisystem (VFS) Minix Ext2 Reiser ...
Pufferung Gerätetreiber
Gerät1 Gerät2 Gerät3 ...
Dateisystemtreiber
Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH WiesbadenEin- und Ausgabeverwaltung
Folie 7
Gerätetreiber V - Ein-/Ausgabeschichten: UnixStream –System: Einschalten von Filterschichten
raw I/O /dev/tty Zugang über Datei raw block/dev/rdisk
Terminal Tastatur Platten DMA
(a) character devices (b) block devices
Pufferungc-Lists
special charrecognition
TerminalTreiber
file system
PufferungBlocklisten
PlattenTreiber
Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH WiesbadenEin- und Ausgabeverwaltung
Folie 8
Gerätetreiber VI - Ein-/Ausgabeschichten: NTDynam. Schichtung durch Aufträge an I/O-Manager
user modekernel mode
Benutzerprozeßkernel -Verteiler
I/O-Manager/CacheGerätetreiber
GerätMonitor/Drucker/Tastatur/Maus/…
Benutzerprozeßkernel -Verteiler
I/O-ManagerDateisystem-TreiberI/O-Manager/Cache
GerätetreiberGerät
CD-ROM/Platten/Flo ppy/ Tape/…
Einfacher I/O-Zugriff Dateizugriff
Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH WiesbadenEin- und Ausgabeverwaltung
Folie 9
Gerätetreiber VII - FehlertoleranzfunktionenUnix: corrupted-Bit=1 chkdsk() beim nächsten mount()
Windows NT: dynamisches bad cluster mapping durch FtDiskBeispiel: 1) Ausfall eines Clusters (ohne Gerätemapping)
Nichtresidente Attribu tsteileMFT-Eintrag
standard informationfile name
(security descriptor)data stream
start VCN start LCN length
0 1344 3
3 1020 3
...
VCN 0 1 2defekt
LCN 1344 1345 1346
VCN 3 4 5
LCN 1020 1021 1022
Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH WiesbadenEin- und Ausgabeverwaltung
Folie 10
Gerätetreiber VIII - FehlertoleranzfunktionenWindows NT: 2) Clusterersatz
Nichtresidente Attribu tsteile
MFT-Eintrag
standard informationfile name
(security descriptor)data stream
start VCN start LCN length
0 1344 2
2 1562 1
3 1020 3
...
VCN 0 1
LCN 1344 1345
VCN 3 4 5
LCN 1020 1021 1022
2
1562
Kein Ersatz möglich: corruptedBit=1, checkDisk() nach mount()
Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH WiesbadenEin- und Ausgabeverwaltung
Folie 11
Gerätemodelle I - Ü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ätefür Treiberdesign
Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH WiesbadenEin- und Ausgabeverwaltung
Folie 12
Gerätemodelle II - Festplatten
Festplatte
Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH WiesbadenEin- und Ausgabeverwaltung
Folie 13
Gerätemodelle III - FestplattenmodellSchreib/Lese-MagnetkopfSchreib/Lesespur mit SektorenZylindergruppe: Spuren bei mehreren Platten
Zylindergruppe
Schreib-/Lesekopf
Positionier-mechanik
Drehachse
Spur mitSektoren
Alu-Platte mit Eisenoxid
Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH WiesbadenEin- und Ausgabeverwaltung
Folie 14
Gerätemodelle IV - Festplattenmodellmittlere Zugriffszeit tS (average seek time) pro Spur mittlere Wartezeit tD (rotational delay) pro Sektor, max. tR
Transferzeit tT für max. m Bytes pro Spur Datentransferrate = k/tT
mittl. tD= tR/2, k Bytes rel. Spuranteil k/mGesamtzeit T = tS + + tR lin. Funktion in k
t2R k
m
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
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. Aber: mittl. Seitengröße nur 1kB.
Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH WiesbadenEin- und Ausgabeverwaltung
Folie 15
Gerätemodelle V - Festplatten: Zugriffsoptimierung
Unix: Pro Zylindergruppe eine super node neue i-nodes + Datenblöcke auf gleicher Spurposition
Win NT: MFT auf Spur in Plattenmitte
Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH WiesbadenEin- und Ausgabeverwaltung
Folie 16
Gerätemodelle VI - GeräteschnittstellenKeine dedizierten I/O-Kanäle, sondern I/O-mapping zu realen bzw. virtuellen Speicheradressen:Behandlung der Geräteregister (Funktionen, Parameter) wie Speicher
I/O-mapping
Register
I/OAdressen
Programme
0 Gerät
I/O-Controller
virt. Adreßraum
Übertragung der Datenblöcke mittels DMA-Kanälen, z.B. durch Controllerprozessor
Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH WiesbadenEin- und Ausgabeverwaltung
Folie 17
Gerätemodelle VII - GeräteschnittstellenBeispiel: Standard PC Hardware reale I/OAdressen
Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH WiesbadenEin- und Ausgabeverwaltung
Folie 18
Gerätemodelle VIII - Geräteschnittstellen: PCI BUS
PCI Bus – Wo ist er angesiedelt ?
Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH WiesbadenEin- und Ausgabeverwaltung
Folie 19
Gerätemodelle IX - Geräteschnittstellen: Initialisierung
Problem: zentrale Koordination der I/O-Adressen, Pufferadressen, Interruptnummern Lösung: Plug-and-Play PnP1. 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 (Ext. System Config. Data)Windows NT: Erstellung einer eigenen Liste bzw. Aufsetzen auf der vorigen ListeUnix (Linux): Aufsetzen auf der ESCD
Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH WiesbadenEin- und Ausgabeverwaltung
Folie 20
Gerätemodelle X - Geräteinitialisierung: PnP auf PCI
PCI-Bus hat Adressplätze für SlotsOffset Label byte ID Info
0 VID 2 Vendor Id Hersteller des Chip auf der Karte2 DID 2 Device Id Hersteller Chip: DeviceNr8 REV 1 Revision Id Änderungen OHNE Interface rev.9 CC 3 Class Code BaseClass, SubClass,
ProgrammingInterface
2C SVID 2 Subsystem Vendor ID Hersteller ID durch PCI SIG2E SID 2 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=0DID=11, SVID=1102(Creative), SID=7002(Gameport),class=„InputDevice“, Function=1
Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH WiesbadenEin- und Ausgabeverwaltung
Folie 21
Gerätemodelle XI - 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.
Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH WiesbadenEin- und Ausgabeverwaltung
Folie 22
Gerätemodelle XII - Geräteschnittstelle: Bsp. FestplattenRegisterartenRegisterarten
Kontrollregister (Read only)Statusregister mit Bitbedeutungen (z.B. Bit4=1Lesen beendet)
Befehlsregister (Write only)Befehlscode für Funktionen
Adreßregister Angabe von GerätNr, Zylinder, Spur, Sektor, Platte, Kopf, ..
Datenpuffer (Read/Write)
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
Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH WiesbadenEin- und Ausgabeverwaltung
Folie 23
Multiple Plattenspeicher: RAIDRedundant Array of Inexpensive DisksMultiple Festplatten = 1 großer virtueller Plattenspeicher
Vorteile: SchnelligkeitPotentielle FehlertoleranzInkrementelle Speichererweiterung möglich
Beispiel: RAID 0 Partition = Streifen (Schnelligkeit) Disk 1 Disk 2 . . . Disk NStreifen M
. . .
Streifen 1
Streifen 0
max
0
max
0
max
0
Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH WiesbadenEin- und Ausgabeverwaltung
Folie 24
Multiple Plattenspeicher: RAID 1Ausfalltoleranz durch SpiegelplattenVorteile
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 muß immer aktualisiert werden
Disk 1 Disk 2
„Spiegel“
max
0
max
0
Mit Streifen:
Raid 0/1-System
Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH WiesbadenEin- und Ausgabeverwaltung
Folie 25
Multiple Plattenspeicher: RAID-2Fehlerkorrektur durch Paritätsbildung, z.B. Exclusiv-Oder XOR
Es folgt direkt aus der Tabellea 0 = aa a = 0
somit pb = abb = a0 = aa b p=ab pb1 1 0 11 0 1 10 1 1 00 0 0 0
p gespeichert, a rekonstruiert
p = b1b2...bn
Ist Laufwerk b2 defekt, so gilt
p b1b3...bn
= b1b2b3 ...bnb1b3...bn
= b1b1...bn bnb2
= 0 ... 0 b2 = b2
RekonstruktionDisk n+1
Disk n
...
Disk 2
Disk 1
.. .
... ... ... ...
.. .bit 7 bit 6 bit 5 bit0
1 neues Datenbyte pro Platte
Wort7 Wort6 Wort5 Wort0
Daten
Parität
Controller
Anwendung Wortparität
Aber: Spindelsynchronisation nötig!
Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH WiesbadenEin- und Ausgabeverwaltung
Folie 26
Multiple Plattenspeicher: RAID3,4,5RAID-3Zusammenfassung von FT-Bits (ECC) auf extra Platte wie bei RAID-2:Ausfalltoleranz multipler LaufwerkeProblem: Spindelsynchronisation nötig wie bei RAID-2
RAID-4Zusammenfassung von Daten und FT-Information zu Streifen und speichern auf Einzel-Platten ohne Spindelsynchronisation.
RAID-5Fehlertoleranz-Information jeweils auf anderer Platte speichern (schneller!)
Datenstrom ..., , ...
Zuweisung
Daten FI Daten FI
Disk 1 Disk 2 ...
ABER: Backup nötig! HW-Fehlertoleranz SW-Toleranz
Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH WiesbadenEin- und Ausgabeverwaltung
Folie 27
RAM-DisksRAM als schnelle Festplatte über Standard-Massenspeichertreiber
Wozu? RAM= teuer&schnell, Festplatte=preiswert&langsamSinnvoll, wenn
Feste Software mit temporären Dateien (z.B. Compiler) Aber: bei großem page-out pool reichen BS-interne Puffer für gleichen Effekt
Teile des RAM-Speichers nicht direkt adressierbar (z.B. MS-DOS)
Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH WiesbadenEin- und Ausgabeverwaltung
Folie 28
Serielle Geräte: GeräteschnittstelleSequentielles Read/Write ohne Adreßinformation
(Terminals, Zeilendrucker, Tastatur)
RegisterKontrollregisterÜbertragungsgeschwindigkeit, synchron/asynchron, ..Eingaberegister (read only)zuletzt empfangenes ZeichenAusgaberegister (write only)zu sendendes ZeichenInterruptsystemInterrupt auslösen nach jedem gesendeten/empfangenem Zeichen
Flußsteuerung: HW(RS232) oder SW (XON/XOFF)
Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH WiesbadenEin- und Ausgabeverwaltung
Folie 29
Treiberschnittstelle: Unix
Zentrale Treiber-Funktionverteilungstabelle conf.cRandom Access (Block) devicesstruct 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, flagsSequentiel (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
Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH WiesbadenEin- und Ausgabeverwaltung
Folie 30
Treiberschnittstelle: UnixKernprozeduren xx = lp, mt oder rk
xx_initTreiber- und Geräteinitialisierung, aufgerufen beim Systemstart
xx_read, xx_write character devicesLesen und Schreiben von Daten
xx_open, xx_closeGerätespezifische Bedeutung, z.B. Band rückspulen, Seitenvorschub etc.
xx_ioctl character devicesEinstellung z.B. Übertragungsgeschwindigkeit, Modus, high/low density,..
xx_strategy block devicesBlock read/write, log.Blocknummern phys. Blocknummern, Pufferstrategien etc.
xx_intrInterruptServiceRoutine zum DMA-Aufsetzen bzw. Pufferbehandlung
Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH WiesbadenEin- und Ausgabeverwaltung
Folie 31
Treiberschnittstelle: Windows NTTreiberklassen
Eingabegeräte (Human Interface Devices) Maus, Tastatur, Datenhandschuh, ..
StandbildgeräteScanner, Digitalcamera, ...
DatenströmeVideocamcorder, Audiorecorder, ...
Klassentreiber und gerätespezif. Zusatz (Mini-Treiber)
Treiberanforderungen 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
Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH WiesbadenEin- und Ausgabeverwaltung
Folie 32
Treiberschnittstelle: Windows NTTreiberfunktionenTreiberfunktionen
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 TreiberEine fehlernotierende Prozedur (error logging) Auftrag an I/O Manager zur Fehlerprotokollierung
Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH WiesbadenEin- und Ausgabeverwaltung
Folie 33
Treiberschnittstelle: Windows NTVerwaltung der Gerätetreiber-Objekte durch den I/O-Manager:Abarbeitung der IRP durch Treiber via GeräteobjektAuslagerung von Spezialaufgaben zu anderen Treibern (z.B. PCI-Buskontrolle), die vorher/danach aufgerufen werden
I/O-Manager
Geräte-objektPlatte
Geräte-objekt
Partition0
Geräte-objekt
Partition1
TreiberobjektReadWrite
...Start I/O
Cancel I/OUnloadDevices
unload driver
read, write
Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH WiesbadenEin- und Ausgabeverwaltung
Folie 34
Treiber-OptimierungsstrategienStrategieaufgaben für Treiber Strategieaufgaben für Treiber Auftragswarteschlangen: Plattenscheduling für Spuren
First Come First ServeBeispiel: init 6Aufträge 8,19,3,14,2,15,7 Shortest Seek Time Firstnächste Spur: min.AbstandSCANAbscannen der Spuren,Umdrehen in GegenrichtungC-SCANRepetitiv Abscannen
FCFS
SSTF
SCAN
C-SCAN
Zeit
0 2 4 6 8 10 12 14 16 18
Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH WiesbadenEin- und Ausgabeverwaltung
Folie 35
Treiber-OptimierungsstrategienAuftragswarteschlangen: Plattenscheduling für Blöcke(tD< tS z.B. fixed head disks)
First Come First ServeAuftragspuffer
Sector QueuingOrdnung nach aufsteigenden SektornummernPro Spur eine Warteschlange
Bewertung Starke Auftragslast: SCAN-Alg. ist am besten Normale Last: im Mittel nur ein Auftrag! FCFS. Verwaltungsmaßnahmen helfen auch
zentraler Index auf log. Block 0 = Mittelspur, Sektor 0
Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH WiesbadenEin- und Ausgabeverwaltung
Folie 36
Treiber-OptimierungsstrategienProblem: Platte (Blöcke/s) schneller als ControllerLösung: Interleavinglog. Blocknummern überspringen phys. Folge
phys. Numerierung
(a) Plattensicht (b) Spursicht
7 0 7 0
6 3 4 1
5 6 1 2 2 5 4 3
0 1 2 3 4 5 6 7
log. Numerierung
0 4 1 5 2 6 3 70 3 6 1 4 7 2 5
InterleavingFaktor 1Faktor 2
Problem: Verzögerung bei Spurwechsel.Lösung: Pro Spur bzw. Zylindergruppe versetzte Nummerierung
Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH WiesbadenEin- und Ausgabeverwaltung
Folie 37
Treiber-OptimierungsstrategienPufferungPufferungUngleichmäßiger Datenfluß kann kompensiert werden
Ebene Dateitreiber: Dateiänderungen, AufträgeEbene Gerätetreiber: Blöcke, Spur (vs. Controller-Cache)
Konsistenzproblem!
Pufferung in UnixSer. Geräte: c-List =1 Zeile (RETURN=EOL nötig)Pufferabschaltung durch special file BitRandom access GeräteListe der Aufträge, Liste der freien Blöcke (Speicherpool)Pufferung der i-nodes: power failure problem.
Sync() alle 30 sec & beim shutdown
Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH WiesbadenEin- und Ausgabeverwaltung
Folie 38
Treiber-OptimierungsstrategienPufferung 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
Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH WiesbadenEin- und Ausgabeverwaltung
Folie 39
Synchrone und asynchrone Ein- und AusgabeSynchrone I/O: blockierendes WartenAsynchrone 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 Asynchrononous 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()