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

Slides:



Advertisements
Ähnliche Präsentationen
4.5 Virtueller Speicher Problemsituation: Programme und Daten sind zu groß für den verfügbaren Arbeitsspeicher Frühere Lösung Aufspaltung der Programme.
Advertisements

Wiederholung Betriebssystem bietet eine Abstraktion der Hardware an:
Beim Start eines Prozesses in Windows NT, 2000 wird a der Programmtext aus der exe-Datei ab der dort angegebenen Adresse gespeichert.
IO - Hardwarestruktur, allgemein
1 Was ist ein klassischer Prozess? A eine exe-Datei B log. Adressraum, Ablaufumgebung für genau einen Thread C log. Adressraum, Ablaufumgebung für eine.
Übersicht RAID-Verfahren Labor für Betriebsdatenverarbeitung
C Tutorium – Semaphoren –
Informatik Tagesprotokoll vom
Software Von Webmaster Mario.
Lehrmaterial Grundlagen EDV
4 Gerätetreiber Gerätetreiber (device driver)
Dateisysteme Was sind Dateisysteme (Definition)
Enno Rehling und Roger Butenuth, Uni-GH Paderborn: Arminius: Software für Linux-basierte SCI-Cluster Arminius: Software für Linux-basierte SCI-Cluster.
SAP R/3 - Speichermanagement
On a Buzzword: Hierachical Structure David Parnas.
OpenMP Präsentation im Rahmen des Seminars
Vorlesung: Betriebssysteme © 2002 Prof. Dr. G. Hellberg 1 Studiengang Informatik FHDW Vorlesung Betriebssysteme 1. Quartal 2002.
Einführung Definitionen
Oracle WebServer - Einführung. © Prof. T. Kudraß, HTWK Leipzig Oracle Web Application Server HTML WebServer ® File system Static HTML PL/SQL Packages.
2.5. Mikrocontroller-Komponenten
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
Haupt- und Arbeitsspeicher
4. Mikrocontroller-Komponenten
Linux-HA-Cluster – Heartbeat mit DRBD
Referat zum Thema „DLL“
Ordner- und Dateistrukturen in Windows 7 (Teil 1)
Bios.
So arbeitet ein PC.
Aufbau eines Rechners, Hard- und Software
Systeme 1 Kapitel 4 Prozesse WS 2009/10.
Systemsoftware - Dateisysteme Dateisysteme - Übersicht 1 basierend auf Andrew S. Tanenbaums "Modern Operating Systems 2 nd Edition", Kapitel 1.5.4, 1.5.5,
Das BOOTEN.
Betriebssysteme allgemein
Präsentation von Alexander Schönfeld
Aufbau eines von-Neumann- Rechners Marcel Waldvogel.
Dateisysteme Marcel Waldvogel. Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, , 2 Dateisysteme Was ist eine Datei?
Windows Server 2008 R2 Datenträgerverwaltung NTFS als Dateisystem vs. FAT32 RAID Volumes Dynamische Festplatten Basisfestplatten Von Pascal Runk Gruppe.
Basic Input/Output System
Betriebssysteme & BIOS
Computerorientierte Physik VORLESUNG
Betriebssysteme Übung Tutorium „System Calls & Multipgrogramming“
Studiengang Informatik FHDW
Datenverarbeitung im PC
BIOS/UEFI Joschka Mick.
Eingabe / Ausgabe.
Grundlagen, Prinzipien und Aufgaben eines Betriebssystems
Central Processing Unit (Zentraleinheit)
Autor: Timo Pagel Nutzung: Diese Lernkarten sind für die Nutzung mit OpenCards gedacht Siehe dazu
Aufbau, Funktion und Grundzusammenhänge
Betriebssysteme: Windows-OS
Software-RAID-5 mit Windows 2000 Professional Projektarbeit 2003.
Referat von Marcel Poppen & Oliver Lennartz
Betriebssysteme: Windows
KA – Rechnerarchitektur II ____________________________________________________________________________________________ ____________________________________________________________________________________________.
User Mode Linux Sven Wölfel 1. Juni User Mode Inhalt  Was ist UML?  Wofür kann man UML benutzen?
6.2 Repräsentation auf Platten
Vs Objektpufferung (caching) = dynamische, ad-hoc-Replikation einer Primärkopie: Zugriffswilliger beschafft sich temporär eine lokale Kopie cache.
NE2000: Hardware und Design eines Treibers 1 AKBPII: Abschlusspräsentation NE2000: Hardware und Design eines prototypischen Treibers bearbeitet.
Ein Leitfaden der erklärt, wie und aus was ein PC-System gebaut ist.
Dateisystem Eine Präsentation von Kay Rubner, Maximilian Magendanz und Toni Materne.
Von Marcel Poppen & Oliver Lennartz
SPEICHER ROM + RAM ROM RAM Arten von RAM (DDR-RAM, SDRAM) Beispiel
Prof. Dr. T. Kudraß1 Speicherverwaltung: Flash-Laufwerke.
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,
RAID-Systeme - Standards - Leistungsmerkmal - Redundanz - Datensicherheit eine Präsentation von Jochen Throm an der Berufsakademie Mosbach.
RAID Level. RAID 0 (Striping)  RAID 0 (Stripeset; “Streifensatz”) Mehrere HDDs zusammenfassen und gleichzeitig darauf zugreifen. Hohe Transferraten bei.
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme Verteilte Anwendungen: Einflußreiche Systeme Dr. Wolfgang Wörndl.
RAID Controller Guide - Allgemeines - Glossar - RAID Level - RAID Controller.
Betriebssystem, BIOS, Firmware, Treiber, Systemtools
Vom Prozessor zum System
 Präsentation transkript:

Eingabe / Ausgabe Kap. 6 Version vom

Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 2 Ein- und Ausgabeverwaltung Kap. 6 - Inhalt Gerätetreiber und Schichten Gerätemodelle Beispiele RAID Verschiedenes

Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 3 Ein- und Ausgabeverwaltung Gerätetreiber I - Gesamtablauf IO-Vorgang Benutzer Betriebssystem Anfordernder SystemaufrufGerätetreiber Interruptprogramm Prozeß für Controller Aufruf EA (Datenstrom, Operation,...) Zuordnung Datenstrom / 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 Wiesbaden Folie 4 Ein- und Ausgabeverwaltung Gerätetreiber II - Eigenschaften Gerätetreiber = Kapselung gerätetypischer Merkmale Aufgaben Übersetzung vom logischen Programmiermodell zu gerätespezifischen Anforderungen Koordination der schreibenden und lesenden Prozesse für das Gerät Koordination verschiedener Geräte gleichen Typs Pufferung der Daten user mode kernel mode Benutzerprozeß kernel-Verteiler Auftragsverwaltung Pufferung Treiber Controller Gerät BS-Kern

Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 5 Ein- und Ausgabeverwaltung Gerätetreiber III - Beispiel Problem: 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 Wiesbaden Folie 6 Ein- und Ausgabeverwaltung Gerätetreiber IV - Ein-/Ausgabeschichten: Unix Dateisystemtreiber (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 Wiesbaden Folie 7 Ein- und Ausgabeverwaltung Gerätetreiber V - Ein-/Ausgabeschichten: Unix Stream –System: Einschalten von Filterschichten

Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 8 Ein- und Ausgabeverwaltung Gerätetreiber VI - Ein-/Ausgabeschichten: NT Dynam. Schichtung durch Aufträge an I/O-Manager usermode kernelmode Benutzerprozeß kernel-Verteiler I/O-Manager/Cache Gerätetreiber Gerät Monitor/Drucker/ Tastatur/Maus/… Benutzerprozeß kernel-Verteiler I/O-Manager Dateisystem-Treiber I/O-Manager/Cache Gerätetreiber Gerät CD-ROM/Platten/ Floppy/Tape/… Einfacher I/O-Zugriff Dateizugriff

Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 9 Ein- und Ausgabeverwaltung Gerätetreiber VII - Fehlertoleranzfunktionen Unix: corrupted-Bit=1  chkdsk() beim nächsten mount() Windows NT: dynamisches bad cluster mapping durch FtDisk Beispiel: 1) Ausfall eines Clusters (ohne Gerätemapping)

Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 10 Ein- und Ausgabeverwaltung Gerätetreiber VIII - Fehlertoleranzfunktionen Windows NT: 2) Clusterersatz Kein Ersatz möglich: corruptedBit=1, checkDisk() nach mount()

Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 11 Ein- und Ausgabeverwaltung 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äte für Treiberdesign

Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 12 Ein- und Ausgabeverwaltung Gerätemodelle II - Festplatten Festplatte

Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 13 Ein- und Ausgabeverwaltung Gerätemodelle III - Festplattenmodell Schreib/Lese-Magnetkopf Schreib/Lesespur mit Sektoren Zylindergruppe: Spuren bei mehreren Platten Zylindergruppe Schreib-/Lesekopf Positionier- mechanik Drehachse Spur mit Sektoren Alu-Platte mit Eisenoxid

Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 14 Ein- und Ausgabeverwaltung Gerätemodelle IV - Festplattenmodell mittlere Zugriffszeit t S (average seek time) pro Spur mittlere Wartezeit t D (rotational delay) pro Sektor, max. t R Transferzeit t T für max. m Bytes pro Spur  Datentransferrate = k/t T mittl. t D = t R /2, k Bytes  rel. Spuranteil k/m Gesamtzeit T = t S + + t R lin. Funktion in k 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: t S  10 ms. Bei 6000U/m oder 100U/s  t R  10ms Effektive Datenrate k/T stark bestimmt durch konstanten initialen Term t S ! Erhöhung der Rate durch größere Seiten. Aber: mittl. Seitengröße nur 1kB.

Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 15 Ein- und Ausgabeverwaltung 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 Wiesbaden Folie 16 Ein- und Ausgabeverwaltung Gerätemodelle VI - Geräteschnittstellen Keine dedizierten I/O-Kanäle, sondern I/O-mapping zu realen bzw. virtuellen Speicheradressen: Behandlung der Geräteregister (Funktionen, Parameter) wie Speicher Übertragung der Datenblöcke mittels DMA-Kanälen, z.B. durch Controllerprozessor

Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 17 Ein- und Ausgabeverwaltung Gerätemodelle VII - Geräteschnittstellen Beispiel: Standard PC Hardware reale I/OAdressen

Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 18 Ein- und Ausgabeverwaltung Gerätemodelle VIII - Geräteschnittstellen: PCI BUS PCI Bus – Wo ist er angesiedelt ?

Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 19 Ein- und Ausgabeverwaltung Gerätemodelle IX - Geräteschnittstellen: Initialisierung Problem: zentrale Koordination der I/O-Adressen, Pufferadressen, Interruptnummern Lösung: Plug-and-Play PnP 1.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 Liste Unix (Linux): Aufsetzen auf der ESCD

Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 20 Ein- und Ausgabeverwaltung Gerätemodelle X - Geräteinitialisierung: PnP auf PCI PCI-Bus hat Adressplätze für Slots OffsetLabelbyteIDInfo 0VID2Vendor IdHersteller des Chip auf der Karte 2DID2Device IdHersteller Chip: DeviceNr 8REV1Revision IdÄnderungen OHNE Interface rev. 9CC3Class CodeBaseClass, SubClass, ProgrammingInterface 2CSVID2Subsystem Vendor IDHersteller ID durch PCI SIG 2ESID2Subsystem IdHerstellerangabe: 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=0 DID=11, SVID=1102(Creative), SID=7002(Gameport),class=„InputDevice“, Function=1

Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 21 Ein- und Ausgabeverwaltung 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 Wiesbaden Folie 22 Ein- und Ausgabeverwaltung Gerätemodelle XII - Geräteschnittstelle: Bsp. Festplatten Registerarten Kontrollregister (Read only) Statusregister mit Bitbedeutungen (z.B. Bit4=1  Lesen 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 Wiesbaden Folie 23 Ein- und Ausgabeverwaltung Multiple Plattenspeicher: RAID Redundant Array of Inexpensive Disks Multiple Festplatten = 1 großer virtueller Plattenspeicher Vorteile: Schnelligkeit Potentielle Fehlertoleranz Inkrementelle Speichererweiterung möglich Beispiel: RAID 0 Partition = Streifen (Schnelligkeit)

Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 24 Ein- und Ausgabeverwaltung Multiple Plattenspeicher: RAID 1 Ausfalltoleranz durch Spiegelplatten Vorteile  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 Mit Streifen: Raid 0/1- System

Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 25 Ein- und Ausgabeverwaltung Multiple Plattenspeicher: RAID-2 Fehlerkorrektur durch Paritätsbildung, z.B. Exclusiv-Oder XOR  Es folgt direkt aus der Tabelle a  0 = a a  a = 0 somit p  b = a  b   0 = a a b p=a  bp  b p gespeichert, a rekonstruiert p = b 1  b 2...  b n Ist Laufwerk b 2 defekt, so gilt p  b 1  b 3...  b n = b 1  b 2  b 3...  b n  b 1  b 3...  b n = b 1  b 1...  b n  b n  b 2 = 0...  0  b 2 = b 2 Rekonstruktion Aber: Spindelsynchronisation nötig!

Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 26 Ein- und Ausgabeverwaltung Multiple Plattenspeicher: RAID3,4,5 RAID-3 Zusammenfassung von FT-Bits (ECC) auf extra Platte wie bei RAID-2: Ausfalltoleranz multipler Laufwerke Problem: Spindelsynchronisation nötig wie bei RAID-2 RAID-4 Zusammenfassung von Daten und FT-Information zu Streifen und speichern auf Einzel-Platten ohne Spindelsynchronisation. RAID-5 Fehlertoleranz-Information jeweils auf anderer Platte speichern (schneller!) ABER: Backup nötig! HW-Fehlertoleranz  SW-Toleranz

Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 27 Ein- und Ausgabeverwaltung RAM-Disks RAM als schnelle Festplatte über Standard- Massenspeichertreiber Wozu? RAM= teuer&schnell, Festplatte=preiswert&langsam Sinnvoll, 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 Wiesbaden Folie 28 Ein- und Ausgabeverwaltung Serielle Geräte: Geräteschnittstelle Sequentielles Read/Write ohne Adreßinformation (Terminals, Zeilendrucker, Tastatur) Register Kontrollregister Übertragungsgeschwindigkeit, synchron/asynchron,.. Eingaberegister (read only) zuletzt empfangenes Zeichen Ausgaberegister (write only) zu sendendes Zeichen Interruptsystem Interrupt auslösen nach jedem gesendeten/empfangenem Zeichen Flußsteuerung: HW(RS232) oder SW (XON/XOFF)

Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 29 Ein- und Ausgabeverwaltung Treiberschnittstelle: Unix Zentrale Treiber-Funktionverteilungstabelle conf.c Random Access (Block) devices struct 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

Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 30 Ein- und Ausgabeverwaltung Treiberschnittstelle: Unix Kernprozeduren xx = lp, mt oder rk xx_init Treiber- und Geräteinitialisierung, aufgerufen beim Systemstart xx_read, xx_write character devices Lesen und Schreiben von Daten xx _ open, xx _ close Gerätespezifische Bedeutung, z.B. Band rückspulen, Seitenvorschub etc. xx_ioctl character devices Einstellung z.B. Übertragungsgeschwindigkeit, Modus, high/low density,.. xx_strategy block devices Block read/write, log.Blocknummern  phys. Blocknummern, Pufferstrategien etc. xx_intr InterruptServiceRoutine zum DMA-Aufsetzen bzw. Pufferbehandlung

Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 31 Ein- und Ausgabeverwaltung Treiberschnittstelle: Windows NT Treiberklassen  Eingabegeräte (Human Interface Devices) Maus, Tastatur, Datenhandschuh,..  Standbildgerät e Scanner, Digitalcamera,...  Datenströme Videocamcorder, 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 Wiesbaden Folie 32 Ein- und Ausgabeverwaltung Treiberschnittstelle: Windows NT Treiberfunktionen 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 Treiber Eine fehlernotierende Prozedur (error logging) Auftrag an I/O Manager zur Fehlerprotokollierung

Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 33 Ein- und Ausgabeverwaltung Treiberschnittstelle: Windows NT Verwaltung der Gerätetreiber-Objekte durch den I/O-Manager: Abarbeitung der IRP durch Treiber via Geräteobjekt Auslagerung von Spezialaufgaben zu anderen Treibern (z.B. PCI-Buskontrolle), die vorher/danach aufgerufen werden I/O-Manager Geräte- objekt Platte Geräte- objekt Partition0 Geräte- objekt Partition1 Treiberobjekt Read Write... Start I/O Cancel I/O Unload Devices unload driver read, write

Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 34 Ein- und Ausgabeverwaltung Treiber-Optimierungsstrategien Strategieaufgaben für Treiber Auftragswarteschlangen: Plattenscheduling für Spuren First Come First Serve Beispiel: init 6 Aufträge 8,19,3,14,2,15,7 Shortest Seek Time First nächste Spur: min.Abstand SCAN Abscannen der Spuren, Umdrehen in Gegenrichtung C-SCAN Repetitiv Abscannen

Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 35 Ein- und Ausgabeverwaltung Treiber-Optimierungsstrategien Auftragswarteschlangen: Plattenscheduling für Blöcke (t D < t S z.B. fixed head disks) First Come First Serve Auftragspuffer Sector Queuing Ordnung nach aufsteigenden Sektornummern Pro Spur eine Warteschlange Bewertung zStarke Auftragslast: SCAN-Alg. ist am besten zNormale Last: im Mittel nur ein Auftrag! FCFS. zVerwaltungsmaßnahmen helfen auch zentraler Index auf log. Block 0 = Mittelspur, Sektor 0

Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 36 Ein- und Ausgabeverwaltung Treiber-Optimierungsstrategien Problem: Platte (Blöcke/s) schneller als Controller Lösung: Interleaving log. Blocknummern überspringen phys. Folge Problem: Verzögerung bei Spurwechsel. Lösung : Pro Spur bzw. Zylindergruppe versetzte Nummerierung

Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 37 Ein- und Ausgabeverwaltung Treiber-Optimierungsstrategien Pufferung Ungleichmäßiger Datenfluß kann kompensiert werden Ebene Dateitreiber: Dateiänderungen, Aufträge Ebene Gerätetreiber: Blöcke, Spur (vs. Controller-Cache) Konsistenzproblem! Pufferung in Unix Ser. Geräte: c-List =1 Zeile (RETURN=EOL nötig) Pufferabschaltung durch special file Bit Random access Geräte Liste 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 Wiesbaden Folie 38 Ein- und Ausgabeverwaltung Treiber-Optimierungsstrategien Pufferung 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 InputWindows NT WOW

Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 39 Ein- und Ausgabeverwaltung Synchrone und asynchrone Ein- und Ausgabe Synchrone I/O: blockierendes Warten Asynchrone 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()