1 / 55

Eingabe / Ausgabe

Eingabe / Ausgabe. Energieverwaltung. I/O-Schichtung. Gerätemodelle. RAID-Konfigurationen. Treiber. Gerätetreiber. Benutzerprozeß. user mode. kernel. -Verteiler. kernel mode. Auftragsverwaltung. Pufferung. Treiber. BS-Kern. Controller. Gerät.

quinta
Download Presentation

Eingabe / Ausgabe

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Eingabe /Ausgabe

  2. Energieverwaltung I/O-Schichtung Gerätemodelle RAID-Konfigurationen Treiber Ein- und Ausgabeverwaltung

  3. Gerätetreiber Benutzerprozeß user mode kernel -Verteiler kernel mode Auftragsverwaltung Pufferung Treiber BS-Kern Controller Gerät Gerätetreiber = Kapselunggerä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 Ein- und Ausgabeverwaltung

  4. Gerätetreiber Applikation Systemaufruf Betriebssystem I/O Manager BS - Treiber zu UDI Schnittstelle UDI Ablauf - UDI - Treiber umgebung UDI - Services zu Hardware - mapping Hardware Problem: neue Geräte, neue Treiber nötig (Fehlermöglichkeit!) Lösung: Standardschnittstellen für Treiber Beispiel: UDI (Unix) Uniform Driver Interface Treiber = Virtuelle Maschine plattformunabhängige Ablaufumgebung Ein- und Ausgabeverwaltung

  5. Ein-/Ausgabeschichten: Unix Benutzerprozeß user mode kernel - Verteiler kernel mode Virtuelles Dateisystem (VFS) Minix Ext2 Reiser ... Pufferung Gerätetreiber Gerät1 Gerät2 Gerät3 ... • Dateisystemtreiber (Linux) Dateisystemtreiber Ein- und Ausgabeverwaltung

  6. Ein-/Ausgabeschichten: Unix • Stream –System: Einschalten von Filterschichten Ein- und Ausgabeverwaltung

  7. Ein-/Ausgabeschichten: Windows NT Benutzerprozeß Benutzerprozeß kernel -Verteiler kernel -Verteiler I/O-Manager/Cache I/O-Manager Gerätetreiber Dateisystem-Treiber Multivolume-Treiber Gerät I/O-Manager/Cache I/O-Manager/Cache Monitor/Drucker/ Gerätetreiber Tastatur/Maus/… Gerät CD-ROM/Platten/ Flo p py/ Tape/… • Dynam. Schichtung durch Aufträge an I/O-Manager user mode kernel mode Dateizugriff Einfacher I/O-Zugriff Ein- und Ausgabeverwaltung

  8. Treiber: Fehlertoleranzfunktionen MFT-Eintrag Nichtresidente Attribu steile t standard information file name VCN 0 1 2 (security descriptor) defekt data stream (Attr.) LCN 1344 1345 1346 start VCN start LCN length VCN 3 4 5 0 1344 3 3 1020 3 LCN 1020 1021 1022 ... • Unix: corrupted-Bit=1 chkdsk() beim nächsten mount() • WindowsNT: dynamisches bad cluster mapping durch FtDisk Beispiel:Ausfall eines Clusters (ohne Gerätemapping) Ein- und Ausgabeverwaltung

  9. Treiber: Fehlertoleranzfunktionen • Windows NT: Clusterersatz MFT-Eintrag Nichtresidente Attributsteile standard information file name VCN 0 1 (security descriptor) data stream 2 LCN 1344 1345 start VCN start LCN length 1562 0 1344 2 VCN 3 4 5 2 1562 1 LCN 1020 1021 1022 3 1020 3 ... Kein Ersatz möglich: corruptedBit=1, checkDisk() nach mount() Ein- und Ausgabeverwaltung

  10. Energieverwaltung I/O-Schichtung Gerätemodelle RAID-Konfigurationen Treiber Dateiverwaltung Ein- und Ausgabeverwaltung

  11. Gerätemodelle: Übersicht • WahlfreierZugriffrandom access (RAM, Festplatten, CD-ROM, DVD, Floppy Disk, ...) • SequentiellerZugriffsequential access (Terminals, Magnetbandgeräte, A/D-Wandler, ...) Nötig: Wissen über „typisches“ Verhalten der Geräte für Treiberdesign Treibertypen Ein- und Ausgabeverwaltung

  12. Festplatten • Magnetplatten • Schreib/Leseköpfe • Controllerelektronik Ein- und Ausgabeverwaltung

  13. Festplattenmodell Zylindergruppe Spur mit Positionier- Se k toren mechanik Schreib-/Lesekopf Drehachse • Schreib/Lese-Magnetkopf • Schreib/Lesespur mit Sektoren • Zylindergruppe: Spuren bei mehreren Platten Alu-Platte mit Eisenoxid Ein- und Ausgabeverwaltung

  14. Festplattenmodell Gesamtzeit T= tS + + tRlin. Funktion in k • mittlere Zugriffszeit tS (average seek time) pro Spur • mittlere Wartezeit tD (rotational delay) pro Sektor, max. tR • Transferzeit tTfür m Bytes pro Spur  Datentransferrate = m/tT mittl. tD= tR/2, k Bytes  rel. Spuranteil k/m Moderne Platten: tS 10 ms. Bei 6000U/m oder 100U/s tR  10ms Effektive Datenrate k/Tstark bestimmt durch konstanten initialen Term tS ! Erhöhung der Rate durch größere Seiten. Ein- und Ausgabeverwaltung

  15. Festplattenmodell: Bus-Parallelaktivität Ein- und Ausgabeverwaltung

  16. Festplatten: Zugriffsoptimierung • Schneller Zugriff durch Treiberoptimierung • optimale Ausnutzung der Geräteeigenschaften • Berücksichtigung der HW-Konfiguration Aber: • Festplattenparameter ändern sich pro Modell • Plattenmechanik, Puffergröße, Buseigenschaften in jedem Rechner unterschiedlich • jeder Treiber müßte manuell angepaßt werden ! Besser: Hersteller optimiert internen Controller (adaptiv!) nach außen nur einheitliches virt. Gerät. • Unix: Pro Zylindergruppe eine supernode  neue i-nodes + Datenblöcke auf gleicher Spurposition • Win NT: MFT auf Spur in Plattenmitte Ein- und Ausgabeverwaltung

  17. SSD: RAM-Disks Solid State Disk (SSD) = RAM als schnelle Festplatte über Standard-Massenspeichertreiber Wozu? RAM = teuer & schnell  Festplatte = preiswert & langsam Sinnvoll, wenn • Mainframe-Erweiterung: schnelles Dateisystem (swap file) (ca.10-fach) • Geringerer Platzbedarf (20%) • RAM nicht direkt adressierbar (z.B. MS-DOS, 32 Bit BS-ab 4GB) • Robuster mobiler Rechner (Erschütterungen) Ein- und Ausgabeverwaltung

  18. DRAM, Nand-FLASH SSD und HD-Speicher • Preisentwicklung $ pro GByte Preisverfall HD: ~45% pro Jahr, Flash: >50% pro Jahr Ein- und Ausgabeverwaltung

  19. Geräteschnittstellen: I/O mapping • 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 Ein- und Ausgabeverwaltung

  20. Geräteschnittstellen • Beispiel: Standard PC Hardware reale I/OAdressen Ein- und Ausgabeverwaltung

  21. Beispiel Parallel Port - Datenpuffer Daten Register Byte Adresse: IOBase+0(read+write) Ein- und Ausgabeverwaltung

  22. Beispiel Parallel Port - Statusregister Status-Register IOBase+1 (Read Only) Ein- und Ausgabeverwaltung

  23. Beispiel Parallel Port - Befehlsregister Control Register Adresse: IOBase+2 (read+write) Ein- und Ausgabeverwaltung

  24. Geräteschnittstellen: Interruptvektoren Interrupt-Controller IRQ Status register CPU Vector base register Gerät 0 Gerät 1 … Gerät 15 Interrupt vector Interrupt vector table Ein- und Ausgabeverwaltung

  25. Geräteschnittstellen: PC IRQs Ein- und Ausgabeverwaltung

  26. Geräteschnittstelle: Festplatten Registerarten • 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 Ein- und Ausgabeverwaltung

  27. Geräteschnittstelle: Serielle Geräte 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: Hardware(RS232) oder Software (XON/XOFF) Ein- und Ausgabeverwaltung

  28. Geräteschnittstellen: Initialisierung • Problem: zentrale Koordination der I/O-Adressen, Pufferadressen, Interruptnummern • Lösung: Plug-and-Play PnP • Erfassung aller Geräte (Hersteller Id, GeräteId, Gerätenamen, Anforderungen) • Auslegung der Listen für Adressen und Interrupts unter Berücksichtigung der legacy devices • Einstellen der Geräte entsprechend der Liste BIOS: Basic Input-Output System (On-board-Betriebssystem) Erstellung einer Liste ESCD Windows NT: Erstellung einer eigenen Liste bzw. Aufsetzen auf der vorigen Liste Unix (Linux): Aufsetzen auf der ESCD Ein- und Ausgabeverwaltung

  29. Geräteinitialisierung: PnP auf PCI • PCI-Bus hat Adressplätze für Slots 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 Ein- und Ausgabeverwaltung

  30. Geräteinitialisierung: PnP • PCI Treiber testet und findet Busse, Geräte, Funktionen • PCI Treiber liest den Konfigurationsraum (INF-Dateien) und erzeugt die IDs. • PCI Treiber führt Ausnahmebehandlung durch: An- und Ausschalten von Merkmalen, Anwenden von Patchen und workarounds. • PCI Treiber installiert den Gerätetreiber. • PCI Treiber lädt den Gerätetreiber. • Der Gerätetreiber wendet alle nötigen Ausnahmen an, An- und Ausschalten von Merkmalen, Anwenden von Patchen und workarounds. • PCI Treiber benachrichtigt den Gerätetreiber, das Gerät zu initialisieren. Ein- und Ausgabeverwaltung

  31. Energieverwaltung I/O-Schichtung Gerätemodelle RAID-Konfigurationen Treiber Dateiverwaltung Ein- und Ausgabeverwaltung

  32. Multiple Plattenspeicher: RAID Disk 1 Disk 2 . . . Disk N Streifen M max max max . . . Streifen 1 Streifen 0 0 0 0 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),z.B. 64kB Datei Ein- und Ausgabeverwaltung

  33. Multiple Plattenspeicher: RAID1 Disk 1 Disk 2 max max „Spiegel “ 0 0 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 muss immer aktualisiert werden Mit Streifen: Raid 0/1-System Ein- und Ausgabeverwaltung

  34. Multiple Plattenspeicher: RAID-2 Es folgt direkt aus der Tabelle Å Å a b p=a b p b 1 1 0 1 Å Å Å Å Å somit p a 0 = a b = a b b = a 0 = a p gespeichert, a rekonstruiert 1 0 1 1 Å a a = 0 0 1 1 0 0 0 0 0 Anwendung Wortparität Wort7 Wort6 Wort5 Wort0 Disk 1 .. . Daten Disk 2 ... ... ... ... ... .. . Parität bit 7 bit 6 bit 5 bit0 Disk n 1 44444 2 444444 3 1 neues Datenbyte pro Platte Disk n+1 Controller Fehlerkorrektur durch Paritätsbildung, z.B. Exclusiv-Oder XOR Å p = b1b2...bn Ist Laufwerk b2defekt, so gilt p  b1b3...bn =b1b2b3 ...bnb1b3...bn = b1b1...bn  bnb2 = 0 ...  0  b2 = b2 Rekonstruktion Aber: Spindelsynchronisation nötig! Ein- und Ausgabeverwaltung

  35. Multiple Plattenspeicher: RAID3,4,5 • RAID-3 Zusammenfassung von FT-Bits (ECC) des Puffers 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 Ein- und Ausgabeverwaltung

  36. Ausfallwahrscheinlichkeiten • Berechnung der System-Ausfallwahrscheinlichkeit Beispiel: 2 Festplatten, RAID 0 P(Ausfall einer Platte) = 0,1 [pro Zeiteinheit] F1 F2 RAID 0 = striping Systemausfall, wenn mind. 1 Platte defekt. Also: P(Ausfall) = 0,01+0,09+0,09 = 0,19 Ein- und Ausgabeverwaltung

  37. Energieverwaltung I/O-Schichtung Gerätemodelle RAID-Konfigurationen Treiber: Unix und NT Dateiverwaltung Ein- und Ausgabeverwaltung

  38. Treiberschnittstelle: Unix Zentrale Treiber-Funktionverteilungstabelleconf.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 Ein- und Ausgabeverwaltung

  39. 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 Ein- und Ausgabeverwaltung

  40. Treiberschnittstelle: Windows NT • Treiberklassen • 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 Ein- und Ausgabeverwaltung

  41. 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 Datentransferabzuschließen (completion routine) Info überErfolg, Fehler, Abbruch an aufrufenden Treiber • Eine fehlernotierende Prozedur (error logging) Auftrag an I/O Manager zur Fehlerprotokollierung Ein- und Ausgabeverwaltung

  42. Treiberschnittstelle: Windows NT I/O-Manager Treiberobjekt Read Write Geräte- Geräte- Geräte- objekt objekt objekt ... Partition1 Partition0 Start I/O Platte Cancel I/O read, write Unload Devices unload driver Verwaltung der Gerätetreiber-Objekte durch 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 Ein- und Ausgabeverwaltung

  43. Synchrone und asynch. Ein- und Ausgabe Synchrone I/O: blockierendes Warten Asynchrone I/O: Nur Einleiten des Auftrags, Ergebnisse später abholen • UnixAsynchroner I/O • nicht-blockierender Modus bei read(), write() • Setzen des I/O auf ein Signal (I/O mit SW-Interrupt), evtl. warten mit sigpause() • WindowsNT • 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() Ein- und Ausgabeverwaltung

  44. Treiber Windows NT : Synchroner I/O • Synchrone Ein-/Ausgabe Systemaufruf abschließen und dabei Ergebnis (OK, Fehler) zurückgeben I/O Request Package IRP erzeugen und Treiber aufrufen Interrupt behandeln, in IRP Ergebnis notieren Daten zum Gerät schreiben lt. IRP I/O durchführen, dann Interrupt erzeugen Ein- und Ausgabeverwaltung

  45. Treiber Windows NT: Asynchroner I/O • Phase 1: Auftrag einleiten Systemaufruf abschliessen und dabei Ergebnis (Wartezustand) zurückgeben IRP erzeugen und Treiber aufrufen Wartezustand zurückgeben IRP in Geräte-Warteschlange einreihen Ein- und Ausgabeverwaltung

  46. Treiber Windows NT: Asynchroner I/O • Phase 2: Interrupt Service ISR setzt Interrupt zurück, legt DPC-Auftrag an, reiht ihn in Warteschlange ein und setzt DPC-Interrupt. ISR wird aufgerufen Interrupt erscheint und ruft dispatcher auf Ein- und Ausgabeverwaltung

  47. Treiber Windows NT: Asynchroner I/O • Phase 3: Auftragsbearbeitung DPC startet nächstes IRP und beendet Service Request DPC wird aufgerufen DPC Interrupt erscheint und ruft dispatcher auf Ein- und Ausgabeverwaltung

  48. Treiber Windows NT: Asynchroner I/O • Phase 4: Datenübertragung zum Benutzer einleiten I/O-Manager notiert APC, um Service Request erst bei Erscheinen des Users zu beenden DPC ruft I/O-Manager auf zum Auftragsabschluss Ein- und Ausgabeverwaltung

  49. Treiber Windows NT: Asynchroner I/O • Phase 5: Datenübertragung zum Benutzer abschliessen • APC-Methode • schreibt Daten in den user space, • setzt Dateiobjekt zu „signalisiert“ • reiht user-APC in Warteschlange ein • löscht IRP Beim nächsten Auftreten des Users erscheint ein APC-Interrupt Die APC-ISR ist beim I/O Manager angesiedelt Ein- und Ausgabeverwaltung

  50. 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 Ein- und Ausgabeverwaltung

More Related