Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik...
-
Upload
arthur-feld -
Category
Documents
-
view
224 -
download
3
Transcript of Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik...
Prof. Dr. Rüdiger BrauseAdaptive SystemarchitekturInstitut für InformatikFachbereich Informatik und Mathematik (12)
Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B, M-SIW-S2, M-SIW-VA, M-SIW-VB, M-SIW-VC
BetriebssystemeWS 2015/16
Eingabe /Ausgabe
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 2Betriebssysteme: Ein- und Ausgabeverwaltung
Energieverwaltung
Gerätemodelle
RAID-Konfigurationen
Treiber: Unix und NT
I/O-Schichtung
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 3Betriebssysteme: Ein- und Ausgabeverwaltung
GerätetreiberGerätetreiber = Kapselung gerätetypischer, grundlegender
Merkmale in ZwischenschichtAufgaben
Übersetzung vom logischen Programmiermodell zu typischen Geräte-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 virtuelle Maschine !
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 4Betriebssysteme: Ein- und Ausgabeverwaltung
GerätetreiberProblem: 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
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 5Betriebssysteme: Ein- und Ausgabeverwaltung
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
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 6Betriebssysteme: Ein- und Ausgabeverwaltung
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
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 7Betriebssysteme: Ein- und Ausgabeverwaltung
Ein-/Ausgabeschichten: Windows 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/…
Einfacher I/O-Zugriff
Benutzerprozeßkernel-Verteiler
I/O-ManagerDateisystem-TreiberI/O-Manager/Cache
GerätetreiberGerät
CD-ROM/Platten/Floppy/Tape/…
Dateizugriff
Multivolume-TreiberI/O-Manager/Cache
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 8Betriebssysteme: Ein- und Ausgabeverwaltung
Treiber: FehlertoleranzfunktionenUnix: corrupted-Bit=1 chkdsk() beim nächsten mount()
Windows NT: dynamisches bad cluster mapping durch FtDiskBeispiel: Ausfall eines Clusters (ohne Gerätemapping)
Nichtresidente Attribu t steileMFT-Eintrag
standard informationfile name
(security descriptor)data stream (Attr.)
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
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 9Betriebssysteme: Ein- und Ausgabeverwaltung
Treiber: FehlertoleranzfunktionenWindows NT: Clusterersatz
Nichtresidente AttributsteileMFT-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()
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 10
FRAGEN
Antworten1. Zeichenorientierte (character devices) und
blockorientierte (block devices) Geräte.2. Sequentielle vs. random acces Ein/Ausgabegabe
Betriebssysteme: Ein- und Ausgabeverwaltung
AntwortDies ist dynamisch und hängt von dem I/O-Auftrag ab.
1. Welche beide Gerätearten kennt Unix?2. Wodurch unterscheiden sie sich?
Wieviele I/O-Schichten hat Windows NT?
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 11Betriebssysteme: Ein- und Ausgabeverwaltung
Energieverwaltung
Gerätemodelle
RAID-Konfigurationen
Treiber: Unix und NT
I/O-Schichtung
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 12Betriebssysteme: Ein- und Ausgabeverwaltung
Gerätemodelle: Übersicht
Wahlfreier Zugriff random access (RAM, SSD, 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 Treibertypen
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 13Betriebssysteme: Ein- und Ausgabeverwaltung
Wahlfreier Zugriff: FestplattenMagnetplatten: Fr-beschichtetes AluminiumSchreib/LeseköpfeControllerelektronik
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 14Betriebssysteme: Ein- und Ausgabeverwaltung
FestplattenmodellSchreib/Lese-MagnetkopfSchreib/Lesespur mit SektorenZylindergruppe: Spuren bei mehreren Platten
Zylindergruppe
Schreib-/Lesekopf
Positionier-mechanik
Drehachse
Spur mitSektoren
Alu-Platte mit Eisenoxid
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 15Betriebssysteme: Ein- und Ausgabeverwaltung
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 t2R k
m
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.
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 18Betriebssysteme: Ein- und Ausgabeverwaltung
Festplattenmodell: Bus-Parallelaktivität
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 19Betriebssysteme: Ein- und Ausgabeverwaltung
Festplatten: Zugriffsoptimierung
Unix: Pro Zylindergruppe eine super node neue i-nodes + Datenblöcke auf gleicher Spurposition
Win NT: MFT auf Spur in Plattenmitte
Schneller Zugriff möglich durch Treiberoptimierung optimale Ausnutzung der Geräteeigenschaften Berücksichtigung der HW-KonfigurationAber: Festplattenparameter ändern sich pro Modell Plattenmechanik, Puffergröße, Buseigenschaften in jedem
Rechner unterschiedlich jeder Treiber müsste manuell angepasst werden !
Besser: Hersteller optimiert internen Controller (adaptiv!), nach außen nur einheitliches virtuelles
Gerät.
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 20Betriebssysteme: Ein- und Ausgabeverwaltung
SSD RAM-DisksSolid State Disk (SSD) = RAM als schnelle Festplatte über
Standard-Massenspeichertreiber
Wozu? RAM = teuer & schnell Festplatte = preiswert & langsam
Sinnvoll, wenn gewünschtschnelles Dateisystem (ca.10-fach) geringerer Platzbedarf (20%)RAM nicht direkt adressierbar (z.B. MS-DOS, 32 Bit BS-ab 4GB)
robuster mobiler outdoor-Rechner (Erschütterungen)
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 21Betriebssysteme: Ein- und Ausgabeverwaltung
DRAM, Nand-FLASH SSD und HD-SpeicherPreisentwicklung $ pro GByte
Preisverfall HD: ~45% pro Jahr, Flash: >50% pro Jahr
SSD
Festplatte
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 22
Solid State Disks SSDschnellkompatibel durch gleichen Formfaktor (2,5“)kompatibel durch gleiche Schnittstelle bzw. Anschluss (SATA)
Betriebssysteme: Ein- und Ausgabeverwaltung
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 23
SSD RAM-DisksProbleme und Nachteile• Nur begrenzte Anzahl von Schreibzyklen möglich: 3.000-10.000, max 1Mio. • Extra Löschzyklus nötig • Interne Nutzungsverteilung: kein sicheres Löschen mögl.(Datenschutz?)
Betriebssysteme: Ein- und Ausgabeverwaltung
Lösungen wear level-Algorithmen: Gleichmäßiges Beschreiben (Abnutzung) aller
Zellen: interne Nutzungsverteilung und Reserveeinsatz durch Controller
echtes Löschen (BS-TRIM, internes garbage collection) ist parallel zum Schreiben auf anderen Zellen
Kein externes garbage collection (Defragmentierung) des Speichers Häufig beschriebene Bereiche (Systemrettung, Hibernate, swap) nicht
auf SSD (z.B. /user, /tmp), sondern nur read only-Programmanteile. Cache-Funktionen sind unnötig: Bootoptimierung, SuperFetch,
Prefetch für SSD abschalten
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 24
FRAGE
Warum sollte man einen Treiber nicht für die Eigenschaften der angeschlossenen Geräteversion optimieren?
Betriebssysteme: Ein- und Ausgabeverwaltung
AntwortWeil dann das Information hiding-Prinzip der Schnittstelle des abstrakten Datentyps verletzt wird.Ein Treiber ist eine virtuelle Maschine!
Nachteil: Bei jeder Modellversion wäre ein eigener Treiber nötig!
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 25Betriebssysteme: Ein- und Ausgabeverwaltung
Geräteschnittstellen: I/O mappingKeine dedizierten I/O-Kanäle, sondern I/O-mapping (memory 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
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 26Betriebssysteme: Ein- und Ausgabeverwaltung
GeräteschnittstellenBeispiel: Standard PC Hardware reale I/O-Adressen
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 27Betriebssysteme: Ein- und Ausgabeverwaltung
Beispiel Parallel Port - Datenpuffer
Daten Register Byte Adresse: IOBase+0 (read+write)Bit Name Pin Buffer Bit value '0' meaning Bit value '1' meaning7 D7 9 True Pin low; data value '0' Pin high; data value '1'6 D6 8 True Pin low; data value '0' Pin high; data value '1'5 D5 7 True Pin low; data value '0' Pin high; data value '1'4 D4 6 True Pin low; data value '0' Pin high; data value '1'3 D3 5 True Pin low; data value '0' Pin high; data value '1'2 D2 4 True Pin low; data value '0' Pin high; data value '1'1 D1 3 True Pin low; data value '0' Pin high; data value '1'0 D0 2 True Pin low; data value '0' Pin high; data value '1'
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 28Betriebssysteme: Ein- und Ausgabeverwaltung
Beispiel Parallel Port - Statusregister
Status-Register IOBase+1 (Read Only)
Bit Name Pin Buffer Bit value '0' meaning Bit value '1' meaning7 BUSY 11 Inverted Pin high: printer busy Pin low: printer not busy 6 -ACK 10 True Pin low; printer is
asserting -ACKPin high; printer is not asserting -ACK
5 NO PAPER
12 True Pin low; printer has paper
Pin high; printer has no paper
4 SELECTED
13 True Pin low; printer is not selected
Pin high; printer is selected
3 -ERROR
15 True Pin low; printer error condition
Pin high; printer no-error
2 Undef1 Undef0 Undef
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 29Betriebssysteme: Ein- und Ausgabeverwaltung
Beispiel Parallel Port - BefehlsregisterControl Register Adresse: IOBase+2 (read+write)
Bit Name Pin Buffer Bit value '0' meaning Bit value '1' meaning7 Unused - - - -6 Unused - - - -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 Inverted Pin high; no auto-feed Pin low; auto-feed enabled
0 -STRO BE
1 Inverted Pin high; -STROBE inactive
Pin low; -STROBE active
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 30Betriebssysteme: Ein- und Ausgabeverwaltung
Geräteschnittstellen: Interruptvektoren
Gerät 0
Gerät 1
…
Gerät 15
Interrupt-Controller
Status register
CPUVector base register
01234…Interrupt vector table
Interrupt vector
IRQ
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 31Betriebssysteme: Ein- und Ausgabeverwaltung
Geräteschnittstellen: PC IRQsIRQ DEVICE USED in AT, 386, 486, and Pentium Computers
0 System Timer1 Keyboard Controller2 Tied to IRQs 8-153 COM 24 COM 15 LPT2 or Sound Card6 Floppy Diskette Controller7 LPT 18 Real Time Clock9 Substitutes for IRQ 210 Not Assigned11 Not Assigned12 PS/2 Mouse Port13 FPU (Floating Point Unit)14 Primary Hard Disk Controller15 Secondary Hard Disk Controller
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 32Betriebssysteme: Ein- und Ausgabeverwaltung
Geräteschnittstelle: FestplattenRegisterarten
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
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 33Betriebssysteme: Ein- und Ausgabeverwaltung
Geräteschnittstelle: Serielle GeräteSequentielles Read/Write ohne Adressinformation(Terminals, Zeilendrucker, Tastatur)
RegisterKontrollregisterÜbertragungsgeschwindigkeit, synchron/asynchron, ..
Eingaberegister (read only)zuletzt empfangenes Zeichen
Ausgaberegister (write only)zu sendendes Zeichen
InterruptsystemInterrupt auslösen nach jedem gesendeten/empfangenem Zeichen
Flußsteuerung: Hardware(RS232) oder Software (XON/XOFF)
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 34Betriebssysteme: Ein- und Ausgabeverwaltung
Geräteschnittstellen: InitialisierungProblem: zentrale Koordination der I/O-Adressen,
Pufferadressen, Interrupt-Nummern 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 extended system configuration data
Windows NT: Erstellung einer eigenen Liste bzw. Aufsetzen auf der vorigen Liste
Unix (Linux): Aufsetzen auf der ESCDNEU: Unified Extensible Firmware Interface UEFI
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 35Betriebssysteme: Ein- und Ausgabeverwaltung
Geräteinitialisierung: PnP auf PCIPCI-Bus Spezifikation Adressplätze für Slots
Offset Label byte ID Info0 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
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 36Betriebssysteme: Ein- und Ausgabeverwaltung
Geräteinitialisierung: PnP1. 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.
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 37
FRAGEN
Jedes Subsystem benötigt zwei Arten von Angaben, um als memory-mapped device angesprochen werden zu können. Welche?
Betriebssysteme: Ein- und Ausgabeverwaltung
I/O-Registeradressen Interruptnummer
Wozu gibt es das I/O mapping (memory-mapping) ?
a) Schnelleres I/O
b) Direkte Verbindung über I/O-Kanäle
c) Einfachere Programmierung
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 38Betriebssysteme: Ein- und Ausgabeverwaltung
Energieverwaltung
Gerätemodelle
RAID-Konfigurationen
Treiber: Unix und NT
I/O-Schichtung
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 39Betriebssysteme: Ein- und Ausgabeverwaltung
Multiple Plattenspeicher: RAIDRAID = Redundant Array of Inexpensive Disks
Multiple Festplatten = 1 großer virtueller Plattenspeicher
Vorteile: Schnelligkeit durch paralleles LesenPotentielle FehlertoleranzInkrementelle Speichererweiterung möglich
Beispiel: RAID 0 Partition = Streifen (Schnelligkeit),z.B. 64kB Disk 1 Disk 2 . . . Disk NStreifen M
. . .
Streifen 1
Streifen 0
max
0
max
0
max
0
Datei
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 40Betriebssysteme: Ein- und Ausgabeverwaltung
Multiple Plattenspeicher: RAID1Ausfalltoleranz 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 muss immer aktualisiert werden
Disk 1 Disk 2
„Spiegel“
max
0
max
0
Mit Streifen:
Raid 0/1-System
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 41Betriebssysteme: Ein- und Ausgabeverwaltung
p = b1b2...bn
Ist Laufwerk b2 defekt, so gilt
p b1b3...bn
= b1b2b3 ...bnb1b3...bn
= b1b1...bn bnb2
= 0 ... 0 b2 = b2
Rekonstruktion!
Multiple Plattenspeicher: RAID-2Fehlerkorrektur durch Paritätsbildung, z.B. Exclusiv-Oder XOR
Es folgt direkt aus der Tabellea 0 = aa a = 0
somit p b = ab b = a 0 = aa b p=a b pb1 1 0 11 0 1 10 1 1 00 0 0 0
p gespeichert, a rekonstruiert
Disk n+1
Disk n
...
Disk 2
Disk 1
.. .
... ... ... ...
.. .bit 7 bit 6 bit 5 bit01 44444 2 444444 3
1 neues Datenbyte pro Platte
Wort0 Wort1
…Wort6Wort7
Daten
Parität
Controller
Anwendung Wortparität
Aber: Spindelsynchronisation nötig!
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 42Betriebssysteme: Ein- und Ausgabeverwaltung
Multiple Plattenspeicher: RAID3,4,5RAID-3Zusammenfassung von FT-Bits (ECC) des Puffers 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
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 43
AusfallwahrscheinlichkeitenBerechnung der System-Ausfallwahrscheinlichkeit
Aufgabe: 2 Festplatten, RAID 0
P(Ausfall einer Platte) = 0,1 [pro Zeiteinheit]
F1 F2 Prob
0 0 0,1*0,1 = 0,01
0 1 0,1*0,9 = 0,09
1 0 0,9*0,1 = 0,09
1 1 0,9*0,9 = 0,81
F1 F2
RAID 0 = striping
Systemausfall, wenn mind. 1 Platte defekt. P(Ausfall) = ? Also: P(Ausfall) = 0,01+0,09+0,09 = 0,19
Betriebssysteme: Ein- und Ausgabeverwaltung
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 44Betriebssysteme: Ein- und Ausgabeverwaltung
Energieverwaltung
Gerätemodelle
RAID-Konfigurationen
Treiber: Unix und NT
I/O-Schichtung
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 45Betriebssysteme: Ein- und Ausgabeverwaltung
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, 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
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 46Betriebssysteme: Ein- und Ausgabeverwaltung
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
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 47Betriebssysteme: Ein- und Ausgabeverwaltung
Treiberschnittstelle: Windows NTTreiberklassen 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
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 48Betriebssysteme: Ein- und Ausgabeverwaltung
Treiberschnittstelle: Windows NTTreiberfunktionen
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
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 49Betriebssysteme: Ein- und Ausgabeverwaltung
Treiberschnittstelle: Windows NTVerwaltung der Gerätetreiber-Objekte durch 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
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 50Betriebssysteme: Ein- und Ausgabeverwaltung
Synchrone und asynch. 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 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()
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 57Betriebssysteme: Ein- und Ausgabeverwaltung
Treiber-Optimierungsstrategien Pufferung
Ungleichmäßiger Datenfluß kann kompensiert werdenEbene 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 Bit
Random 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
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 58Betriebssysteme: Ein- und Ausgabeverwaltung
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
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 59Betriebssysteme: Ein- und Ausgabeverwaltung
Energieverwaltung
Gerätemodelle
RAID-Konfigurationen
Treiber
I/O-Schichtung
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 60Betriebssysteme: Ein- und Ausgabeverwaltung
ACPI Anforderungen
ACPI: Advanced Configuration and Power management Interface
Taste Power/Sleep, kombiniert oder extramechan. Taste oder Knopf für RESETTimer 3.5 MHz für Power (3 Register)Einschaltfkt. vom Timer gesteuertSleep-Status, Interrupt4 Ereignis-RegisterPower LED (OFF =off, blink= sleep, ON = normal)Msg-LED oder LCD Display f. Nachrichtenzahl5V/500mA Dauerleitung (Netzteil!)
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 61Betriebssysteme: Ein- und Ausgabeverwaltung
Energieverwaltung ArchitekturZusammenspiel aus Betriebssystem und ACPI-Teilen
Betriebs-system-
unabhängige ACPI-Teile
Betriebssystem-typische Teile, Schnittstellen und
Code
Betriebssystem-typische Anwendungs-API
Anwendungen
© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 62Betriebssysteme: Ein- und Ausgabeverwaltung
Energieverwaltung: Zustände