Eingabe / Ausgabe Kap. 6 Version vom 25.02.2005 Betriebssysteme und Grundlagen verteilter Systeme ©...

Preview:

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()

Recommended