39
Eingabe Eingabe / / Ausgabe Ausgabe Kap. 6 Version vom 25.02.2005

Eingabe / Ausgabe Kap. 6 Version vom 25.02.2005 Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 2 Ein- und Ausgabeverwaltung

Embed Size (px)

Citation preview

Page 1: Eingabe / Ausgabe Kap. 6 Version vom 25.02.2005 Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 2 Ein- und Ausgabeverwaltung

Eingabe /Eingabe /AusgabeAusgabe

Kap. 6

Version vom 25.02.2005

Page 2: Eingabe / Ausgabe Kap. 6 Version vom 25.02.2005 Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 2 Ein- und Ausgabeverwaltung

Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH WiesbadenEin- und Ausgabeverwaltung

Folie 2

Kap. 6 - Inhalt

Gerätetreiber und SchichtenGerätemodelleBeispieleRAIDVerschiedenes

Page 3: Eingabe / Ausgabe Kap. 6 Version vom 25.02.2005 Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 2 Ein- und Ausgabeverwaltung

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)

Page 4: Eingabe / Ausgabe Kap. 6 Version vom 25.02.2005 Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 2 Ein- und Ausgabeverwaltung

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

Page 5: Eingabe / Ausgabe Kap. 6 Version vom 25.02.2005 Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 2 Ein- und Ausgabeverwaltung

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

Page 6: Eingabe / Ausgabe Kap. 6 Version vom 25.02.2005 Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 2 Ein- und Ausgabeverwaltung

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

Page 7: Eingabe / Ausgabe Kap. 6 Version vom 25.02.2005 Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 2 Ein- und Ausgabeverwaltung

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

Page 8: Eingabe / Ausgabe Kap. 6 Version vom 25.02.2005 Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 2 Ein- und Ausgabeverwaltung

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

Page 9: Eingabe / Ausgabe Kap. 6 Version vom 25.02.2005 Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 2 Ein- und Ausgabeverwaltung

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

Page 10: Eingabe / Ausgabe Kap. 6 Version vom 25.02.2005 Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 2 Ein- und Ausgabeverwaltung

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

Page 11: Eingabe / Ausgabe Kap. 6 Version vom 25.02.2005 Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 2 Ein- und Ausgabeverwaltung

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

Page 12: Eingabe / Ausgabe Kap. 6 Version vom 25.02.2005 Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 2 Ein- und Ausgabeverwaltung

Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH WiesbadenEin- und Ausgabeverwaltung

Folie 12

Gerätemodelle II - Festplatten

Festplatte

Page 13: Eingabe / Ausgabe Kap. 6 Version vom 25.02.2005 Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 2 Ein- und Ausgabeverwaltung

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

Page 14: Eingabe / Ausgabe Kap. 6 Version vom 25.02.2005 Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 2 Ein- und Ausgabeverwaltung

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.

Page 15: Eingabe / Ausgabe Kap. 6 Version vom 25.02.2005 Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 2 Ein- und Ausgabeverwaltung

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

Page 16: Eingabe / Ausgabe Kap. 6 Version vom 25.02.2005 Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 2 Ein- und Ausgabeverwaltung

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

Page 17: Eingabe / Ausgabe Kap. 6 Version vom 25.02.2005 Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 2 Ein- und Ausgabeverwaltung

Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH WiesbadenEin- und Ausgabeverwaltung

Folie 17

Gerätemodelle VII - GeräteschnittstellenBeispiel: Standard PC Hardware reale I/OAdressen

Page 18: Eingabe / Ausgabe Kap. 6 Version vom 25.02.2005 Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 2 Ein- und Ausgabeverwaltung

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 ?

Page 19: Eingabe / Ausgabe Kap. 6 Version vom 25.02.2005 Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 2 Ein- und Ausgabeverwaltung

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

Page 20: Eingabe / Ausgabe Kap. 6 Version vom 25.02.2005 Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 2 Ein- und Ausgabeverwaltung

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

Page 21: Eingabe / Ausgabe Kap. 6 Version vom 25.02.2005 Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 2 Ein- und Ausgabeverwaltung

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.

Page 22: Eingabe / Ausgabe Kap. 6 Version vom 25.02.2005 Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 2 Ein- und Ausgabeverwaltung

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

Page 23: Eingabe / Ausgabe Kap. 6 Version vom 25.02.2005 Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 2 Ein- und Ausgabeverwaltung

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

Page 24: Eingabe / Ausgabe Kap. 6 Version vom 25.02.2005 Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 2 Ein- und Ausgabeverwaltung

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

Page 25: Eingabe / Ausgabe Kap. 6 Version vom 25.02.2005 Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 2 Ein- und Ausgabeverwaltung

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!

Page 26: Eingabe / Ausgabe Kap. 6 Version vom 25.02.2005 Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 2 Ein- und Ausgabeverwaltung

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

Page 27: Eingabe / Ausgabe Kap. 6 Version vom 25.02.2005 Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 2 Ein- und Ausgabeverwaltung

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)

Page 28: Eingabe / Ausgabe Kap. 6 Version vom 25.02.2005 Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 2 Ein- und Ausgabeverwaltung

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)

Page 29: Eingabe / Ausgabe Kap. 6 Version vom 25.02.2005 Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 2 Ein- und Ausgabeverwaltung

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

Page 30: Eingabe / Ausgabe Kap. 6 Version vom 25.02.2005 Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 2 Ein- und Ausgabeverwaltung

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

Page 31: Eingabe / Ausgabe Kap. 6 Version vom 25.02.2005 Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 2 Ein- und Ausgabeverwaltung

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

Page 32: Eingabe / Ausgabe Kap. 6 Version vom 25.02.2005 Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 2 Ein- und Ausgabeverwaltung

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

Page 33: Eingabe / Ausgabe Kap. 6 Version vom 25.02.2005 Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 2 Ein- und Ausgabeverwaltung

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

Page 34: Eingabe / Ausgabe Kap. 6 Version vom 25.02.2005 Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 2 Ein- und Ausgabeverwaltung

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

Page 35: Eingabe / Ausgabe Kap. 6 Version vom 25.02.2005 Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 2 Ein- und Ausgabeverwaltung

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

Page 36: Eingabe / Ausgabe Kap. 6 Version vom 25.02.2005 Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 2 Ein- und Ausgabeverwaltung

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

Page 37: Eingabe / Ausgabe Kap. 6 Version vom 25.02.2005 Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 2 Ein- und Ausgabeverwaltung

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

Page 38: Eingabe / Ausgabe Kap. 6 Version vom 25.02.2005 Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 2 Ein- und Ausgabeverwaltung

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

Page 39: Eingabe / Ausgabe Kap. 6 Version vom 25.02.2005 Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 2 Ein- und Ausgabeverwaltung

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