Eingabe / Ausgabe.

Slides:



Advertisements
Ähnliche Präsentationen
Kap. 7 Sortierverfahren Kap. 7.0 Darstellung, Vorüberlegungen
Advertisements

Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil3.
IO - Hardwarestruktur, allgemein
Übersicht RAID-Verfahren Labor für Betriebsdatenverarbeitung
Informatik Tagesprotokoll vom
Software Von Webmaster Mario.
Lehrmaterial Grundlagen EDV
Institut MD Universität Rostock Real-Time Linux Szenario –Board, liest (sampled) analoge Daten –produziert 8 Bit Ergebnis und gibt dieses alle 100 ms aus.
Modelle und Methoden der Linearen und Nichtlinearen Optimierung (Ausgewählte Methoden und Fallstudien) U N I V E R S I T Ä T H A M B U R G November 2011.
Modelle und Methoden der Linearen und Nichtlinearen Optimierung (Ausgewählte Methoden und Fallstudien) U N I V E R S I T Ä T H A M B U R G November 2011.
SAP R/3 - Speichermanagement
1 JIM-Studie 2010 Jugend, Information, (Multi-)Media Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
E / IDE Enhanced / Integrated Device Elektronics
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Katja Bode MOdulator Der, Die, Das DEModulator.
Windows Universität zu Köln
Vorlesung: Betriebssysteme © 2002 Prof. Dr. G. Hellberg 1 Studiengang Informatik FHDW Vorlesung Betriebssysteme 1. Quartal 2002.
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil2.
Haupt- und Arbeitsspeicher
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Vorlesung 3: Verschiedenes Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
1Ausgewählte Themen des analogen Schaltungsentwurfs Zusammenfassung Einführung Teilchendetektore – Sensorstrukturen, Verstärker, Rauschen, Geschwindigkeit.
1 Vorlesung 3 Verschiedenes Peter B. Ladkin
Referat zum Thema „DLL“
Ende Christian SeitzJochen Braun. Ende Der CMOS Standard Chip.
Rechneraufbau & Rechnerstrukturen, Folie 12.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 12.
2 Distanzbasierte Sprachkommunikation für Peer-to-Peer-Spiele.
Bios.
20:00.
So arbeitet ein PC.
© Gabriele Sowada © Gabriele Sowada 2 Manuell Beispiel 1 demonstriert die Vorgehensweise bei der manuellen Programm- Eingabe am.
Die Geschichte von Rudi
„Küsse deine Freunde“ – FlexKom-App teilen
Hardware.
Aufbau eines Rechners, Hard- und Software
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Betriebssysteme allgemein
Präsentation von Alexander Schönfeld
Aufbau eines von-Neumann- Rechners Marcel Waldvogel.
Herzlich willkommen zum Aufbau der Hauptplatine
TWS/Graph HORIZONT Produktionsüberwachung für “TWS for z/OS”
Basic Input/Output System
Betriebssysteme & BIOS
3.4 CPU-Chips und Busse CPU-Chips
Embedded Systems Prof. Dr. H. Kristl
HORIZONT 1 XINFO ® Das IT - Informationssystem HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 /
HORIZONT 1 XINFO ® Das IT - Informationssystem PL/1 Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Hardware.
Computerorientierte Physik VORLESUNG
Wer macht was beim Einschalten des Rechners?
Symmetrische Blockchiffren DES – der Data Encryption Standard
1 (C)2006, Hermann Knoll, HTW Chur, FHO Quadratische Reste Definitionen: Quadratischer Rest Quadratwurzel Anwendungen.
Studiengang Informatik FHDW
Schutzvermerk nach DIN 34 beachten 20/05/14 Seite 1 Grundlagen XSoft Lösung :Logische Grundschaltung IEC-Grundlagen und logische Verknüpfungen.
Datenverarbeitung im PC
SiLeBAT Sicherstellung der Futter- und Lebensmittelwarenkette bei bio- und agro-terroristischen (BAT)-Schadenslagen.
Grundlagen, Prinzipien und Aufgaben eines Betriebssystems
Praktische Handhabung eines PCs
Aufbau, Funktion und Grundzusammenhänge
1 Medienpädagogischer Forschungsverbund Südwest KIM-Studie 2014 Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
Monatsbericht Ausgleichsenergiemarkt Gas – Oktober
Betriebssysteme: Windows-OS
Betriebssysteme I: Windows
Referat von Marcel Poppen & Oliver Lennartz
Betriebssysteme: Windows
Von Marcel Poppen & Oliver Lennartz
SPEICHER ROM + RAM ROM RAM Arten von RAM (DDR-RAM, SDRAM) Beispiel
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,
Eingabe / Ausgabe Kap. 6 Version vom Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 2 Ein- und Ausgabeverwaltung.
Vom Prozessor zum System
 Präsentation transkript:

Eingabe / Ausgabe

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

Gerätetreiber 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 Ein- und Ausgabeverwaltung

Gerätetreiber 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 Treiber Hardware BS Treiber zu UDI Schnittstelle Services zu Hardware mapping Treiber = Virtuelle Maschine plattformunabhängige Ablaufumgebung Ein- und Ausgabeverwaltung

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

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

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

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

Treiber: Fehlertoleranzfunktionen Windows NT: Clusterersatz MFT-Eintrag Nichtresidente Attributsteile standard information file name VCN 1 (security descriptor) data stream 2 LCN 1344 1345 start VCN start LCN length 1562 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

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

Gerätemodelle: Ü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 Treibertypen Ein- und Ausgabeverwaltung

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

Alu-Platte mit Eisenoxid Festplattenmodell Schreib/Lese-Magnetkopf Schreib/Lesespur mit Sektoren Zylindergruppe: Spuren bei mehreren Platten Zylindergruppe Schreib-/Lesekopf Positionier- mechanik Drehachse Spur mit Se k toren Alu-Platte mit Eisenoxid 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 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. Ein- und Ausgabeverwaltung

Festplattenmodell 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 Problem: Ineffektives Ausnutzen der Speicherdichte Lösung: Einteilung der Platte in ca. 20-40 Zonen („zoning“) jeweils konstante Sektorenzahl pro Zone; innere weniger, äußere mehr. jede Zone hat eigene Transfergeschwindigkeit (Sektoren/Zeit) Ein- und Ausgabeverwaltung

Festplattenmodell: Probleme Suchzeit (ms) Suchabstand (Zylinderzahl) Nicht-lineare Kopfbewegung Pufferwirkung und Bustransfer I/O-Anteil Zeit(ms) Ein- und Ausgabeverwaltung

Festplattenmodell: Bus-Parallelaktivität Ein- und Ausgabeverwaltung

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 super node  neue i-nodes + Datenblöcke auf gleicher Spurposition Win NT: MFT auf Spur in Plattenmitte Ein- und Ausgabeverwaltung

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

DRAM, Nand-FLASH SSD und HD-Speicher Preisentwicklung $ pro GByte HD $/GB: 2001-4,61$; 2002-2,53$; 2003-1,39; 04-0,77; 05-0,42; 06-0,23; 07-0,13; 08-0,07; 09-0,04; 10-0,02; Preisverfall HD: ~45% pro Jahr, Flash: >50% pro Jahr Ein- und Ausgabeverwaltung

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

Geräteschnittstellen Beispiel: Standard PC Hardware reale I/OAdressen Die realen Adressen, die bei Standard-PCs im untersten Bereich angesiedelt sind, wurden in der PC-Geschichte unterschiedlich genutzt. Die Folie zeigt eine häufig benutzte Konfiguration. Man beachte, daß die virtuellen Adressen der Geräte völlig anders sind, etwa am Ende des Adressraums. 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' meaning 7 D7 9 True Pin low; data value '0' Pin high; data value '1' 6 D6 8 5 D5 4 D4 3 D3 2 D2 1 D1 D0 Ein- und Ausgabeverwaltung

Beispiel Parallel Port - Statusregister Status-Register IOBase+1 (Read Only) Bit Name Pin Buffer Bit value '0' meaning Bit value '1' meaning 7 BUSY 11 Inverted Pin high: printer busy Pin low: printer not busy 6 -ACK 10 True Pin low; printer is asserting -ACK Pin high; printer is not asserting -ACK 5 NO PAPER 12 Pin low; printer has paper Pin high; printer has no paper 4 SELECTED 13 Pin low; printer is not selected Pin high; printer is selected 3 -ERROR 15 Pin low; printer error condition Pin high; printer no-error 2 Undef 1 Ein- und Ausgabeverwaltung

Beispiel Parallel Port - Befehlsregister Control Register Adresse: IOBase+2 (read+write) Bit Name Pin Buffer Bit value '0' meaning Bit value '1' meaning 7 Unused - 6 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 Pin high; no auto-feed Pin low; auto-feed enabled -STRO BE Pin high; -STROBE inactive Pin low; -STROBE active Ein- und Ausgabeverwaltung

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

Geräteschnittstellen: PC IRQs DEVICE USED in AT, 386, 486, and Pentium Computers System Timer 1 Keyboard Controller 2 Tied to IRQs 8-15 3 COM 2 4 COM 1 5 LPT2 or Sound Card 6 Floppy Diskette Controller 7 LPT 1 8 Real Time Clock 9 Substitutes for IRQ 2 10 Not Assigned 11 12 PS/2 Mouse Port 13 FPU (Floating Point Unit) 14 Primary Hard Disk Controller 15 Secondary Hard Disk Controller Ein- und Ausgabeverwaltung

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

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

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

Geräteinitialisierung: PnP auf PCI PCI-Bus hat Adressplätze für Slots Offset Label byte ID Info VID 2 Vendor Id Hersteller des Chip auf der Karte DID Device Id Hersteller Chip: DeviceNr 8 REV 1 Revision Id Änderungen OHNE Interface rev. 9 CC 3 Class Code BaseClass, SubClass, ProgrammingInterface 2C SVID Subsystem Vendor ID Hersteller ID durch PCI SIG 2E SID 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=0 DID=11, SVID=1102(Creative), SID=7002(Gameport),class=„InputDevice“, Function=1 Ein- und Ausgabeverwaltung

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

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

Multiple Plattenspeicher: RAID 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 Disk 1 Disk 2 . . . Disk N Streifen M Streifen 1 max Datei Ein- und Ausgabeverwaltung

Multiple Plattenspeicher: RAID1 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 Disk 1 Disk 2 „Spiegel “ max Mit Streifen: Raid 0/1-System 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 = 0 somit p b = a b a b p=a p 1 1 0 0 1 p gespeichert, a rekonstruiert p = b1b2...bn Ist Laufwerk b2 defekt, so gilt p  b1b3...bn = b1b2b3 ...bnb1b3...bn = b1b1...bn  bnb2 = 0 ...  0  b2 = b2 Rekonstruktion Disk n+1 Disk n ... Disk 2 Disk 1 .. . bit 7 bit 6 bit 5 bit0 1 44444 2 444444 3 1 neues Datenbyte pro Platte Wort7 Wort6 Wort5 Wort0 Daten Parität Controller Anwendung Wortparität Aber: Spindelsynchronisation nötig! Ein- und Ausgabeverwaltung

Multiple Plattenspeicher: RAID3,4,5 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

Ausfallwahrscheinlichkeiten Berechnung der System-Ausfallwahrscheinlichkeit Beispiel: 2 Festplatten, RAID 0 P(Ausfall einer Platte) = 0,1 [pro Zeiteinheit] F1 F2 Prob 0,1*0,1 = 0,01 1 0,1*0,9 = 0,09 0,9*0,1 = 0,09 0,9*0,9 = 0,81 F1 F2 Aufgabe: Wie groß ist die Ausfallwahrscheinlichkeit des Gesamtsystems, wenn RAID1 vorliegt? Lösung: Bei RAID1 sind die Platten als Spiegelplatten ausgeführt, also müssen für einen Systemdefekt beide defekt sein. Dies ist mit P=0,01 der Fall. RAID 0 = striping Systemausfall, wenn mind. 1 Platte defekt. Also: P(Ausfall) = 0,01+0,09+0,09 = 0,19 Ein- und Ausgabeverwaltung

RAID-Konfigurationen I/O-Schichtung Gerätemodelle RAID-Konfigurationen Treiber: Unix und NT Energieverwaltung Dateiverwaltung 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 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 Ein- und Ausgabeverwaltung

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

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

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

Synchrone und asynch. 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 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

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

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

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 DPC = Dispatch Procedure Call Ein- und Ausgabeverwaltung

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

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 APC = Asynchronous Procedure Call Ein- und Ausgabeverwaltung

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

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

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 Input Windows NT WOW Ein- und Ausgabeverwaltung

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

ACPI Anforderungen ACPI: Advanced Configuration and Power management Interface Taste Power/Sleep, kombiniert oder extra mechan. Taste oder Knopf für RESET Timer 3.5 MHz für Power (3 Register) Einschaltfkt. vom Timer gesteuert Sleep-Status, Interrupt 4 Ereignis-Register Power LED (OFF =off, blink= sleep, ON = normal) Msg-LED oder LCD Display f. Nachrichtenzahl 5V/500mA Dauerleitung (Netzteil!) Ein- und Ausgabeverwaltung

Energieverwaltung Architektur Zusammenspiel aus Betriebssystem und ACPI-Teilen Ein- und Ausgabeverwaltung

Energieverwaltung: Zustände Ein- und Ausgabeverwaltung