54
Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich 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 Betriebssysteme WS 2015/16 Eingabe / Ausgabe

Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

Embed Size (px)

Citation preview

Page 1: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

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

Page 2: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

© 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

Page 3: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

© 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 !

Page 4: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

© 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

Page 5: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

© 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

Page 6: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

© 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

Page 7: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

© 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

Page 8: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

© 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

Page 9: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

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

Page 10: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

© 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?

Page 11: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

© 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

Page 12: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

© 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

Page 13: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 13Betriebssysteme: Ein- und Ausgabeverwaltung

Wahlfreier Zugriff: FestplattenMagnetplatten: Fr-beschichtetes AluminiumSchreib/LeseköpfeControllerelektronik

Page 14: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

© 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

Page 15: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

© 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.

Page 16: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 18Betriebssysteme: Ein- und Ausgabeverwaltung

Festplattenmodell: Bus-Parallelaktivität

Page 17: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

© 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.

Page 18: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

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

Page 19: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

© 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

Page 20: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

© 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

Page 21: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

© 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

Page 22: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

© 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!

Page 23: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

© 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

Page 24: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 26Betriebssysteme: Ein- und Ausgabeverwaltung

GeräteschnittstellenBeispiel: Standard PC Hardware reale I/O-Adressen

Page 25: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

© 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'

Page 26: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

© 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

Page 27: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

© 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

Page 28: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

© 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

Page 29: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

© 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

Page 30: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

© 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

Page 31: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

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

Page 32: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

© 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

Page 33: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

© 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

Page 34: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

© 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.

Page 35: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

© 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

Page 36: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

© 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

Page 37: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

© 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

Page 38: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

© 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

Page 39: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

© 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!

Page 40: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

© 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

Page 41: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

© 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

Page 42: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

© 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

Page 43: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

© 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

Page 44: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

© 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

Page 45: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

© 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

Page 46: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

© 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

Page 47: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

© 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

Page 48: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

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

Page 49: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

© 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

Page 50: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

© 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

Page 51: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 59Betriebssysteme: Ein- und Ausgabeverwaltung

Energieverwaltung

Gerätemodelle

RAID-Konfigurationen

Treiber

I/O-Schichtung

Page 52: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

© 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!)

Page 53: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

© 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

Page 54: Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Modul: B-BS, BS2, M-SIW-S1A, M-SIW-S1B,

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 62Betriebssysteme: Ein- und Ausgabeverwaltung

Energieverwaltung: Zustände