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,

Slides:



Advertisements
Ähnliche Präsentationen
Bauteile des PC´c Werden vorgestellt: PC-Gehäuse Prozessor Tastatur
Advertisements

IO - Hardwarestruktur, allgemein
Übersicht RAID-Verfahren Labor für Betriebsdatenverarbeitung
C Tutorium – Semaphoren –
Informatik Tagesprotokoll vom
Software Von Webmaster Mario.
Lehrmaterial Grundlagen EDV
SAP R/3 - Speichermanagement
On a Buzzword: Hierachical Structure David Parnas.
WS 2009/10 1 Systeme 1 Kapitel 1 Aufbau von Rechnern.
Vorlesung: Betriebssysteme © 2002 Prof. Dr. G. Hellberg 1 Studiengang Informatik FHDW Vorlesung Betriebssysteme 1. Quartal 2002.
1 Linux Paging, Caching und Swapping. 1 Vortragsstruktur Paging – Das Virtuelle Speichermodell –Die Page Table im Detail –Page Allocation und Page Deallocation.
Oracle WebServer - Einführung. © Prof. T. Kudraß, HTWK Leipzig Oracle Web Application Server HTML WebServer ® File system Static HTML PL/SQL Packages.
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
Haupt- und Arbeitsspeicher
Referat zum Thema „DLL“
Interrupt Bei dem Transport von Daten zu einem Speichermedium oder zu einer Schnittstelle, muss der PC seine aktuelle Arbeit unterbrechen Man bemüht sich,
Ende Christian SeitzJochen Braun. Ende Der CMOS Standard Chip.
Ordner- und Dateistrukturen in Windows 7 (Teil 1)
Bios.
So arbeitet ein PC.
Aufbau eines Rechners, Hard- und Software
Computerorientierte Physik VORLESUNG und Übungen Vorlesung Zeit: Di., 8.30 – Uhr Ort: Hörsaal 5.01, Institut für Experimentalphysik, Universitätsplatz.
Systeme 1 Kapitel 4 Prozesse WS 2009/10.
Betriebssysteme allgemein
Präsentation von Alexander Schönfeld
Aufbau eines von-Neumann- Rechners Marcel Waldvogel.
Herzlich willkommen zum Aufbau der Hauptplatine
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 und Übungen Vorlesung Zeit: Di., 8.30 – Uhr Ort: Hörsaal 5.01, Institut für Experimentalphysik, Universitätsplatz.
Computerorientierte Physik VORLESUNG
Wer macht was beim Einschalten des Rechners?
Studiengang Informatik FHDW
Datenverarbeitung im PC
Betriebssysteme Übung Tutorium „TLB & Virtual Memory“
Verarbeitung und Computerinneres
BIOS/UEFI Joschka Mick.
Eingabe / Ausgabe.
Grundlagen, Prinzipien und Aufgaben eines Betriebssystems
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
Betriebssysteme I: Windows
Referat von Marcel Poppen & Oliver Lennartz
Betriebssysteme: Windows
Die Hardware eines PC s.
6.2 Repräsentation auf Platten
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.
Funktionsprinzip·Anwendung·Zukunft
Mainboard Kolbe, Klein, Hollermann.
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.
Von Bits, Bytes und Raid Eine Schnuppervorlesung Inhalt
Eingabe / Ausgabe Kap. 6 Version vom Betriebssysteme und Grundlagen verteilter Systeme © H. Weber, FH Wiesbaden Folie 2 Ein- und Ausgabeverwaltung.
Mario´s kleines Hardwarelexikon Vom Arbeitsspeicher bis zur Soundkarte.
Fragen.  Hardwarekomponenten sind die Bestandteile eines Computers, die Sie sehen und anfassen können.
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.
Promise EX4650 & EX8650 Controller Allgemeines: – Es müssen immer Festplatten Konfiguriert werden, da ansonsten für das Betriebssystem keine Laufwerke.
LSI8204ELP & Onboard SATA Controller Allgemeines: – Nicht konfigurierte Festplatten werden automatisch als Single Disks bzw. Logical Drives (einzelne Laufwerke)
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.
Vom Prozessor zum System
 Präsentation transkript:

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

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 2 Betriebssysteme: Ein- und Ausgabeverwaltung Energieverwaltung Gerätemodelle RAID-Konfigurationen Treiber: Unix und NT I/O-Schichtung

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 3 Betriebssysteme: Ein- und Ausgabeverwaltung Gerätetreiber Gerätetreiber = Kapselung gerätetypischer, grundlegender Merkmale in Zwischenschicht Aufgaben Übersetzung vom logischen Programmiermodell zu typischen Geräte- 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 virtuelle Maschine !

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 4 Betriebssysteme: 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 UDI-Treiber Hardware BS-Treiber zu UDI Schnittstelle UDI-Services zu Hardware-mapping Treiber = Virtuelle Maschine plattformunabhängige Ablaufumgebung

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 5 Betriebssysteme: 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

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 6 Betriebssysteme: Ein- und Ausgabeverwaltung Ein-/Ausgabeschichten: Unix Stream –System: Einschalten von Filterschichten

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 7 Betriebssysteme: Ein- und Ausgabeverwaltung Ein-/Ausgabeschichten: Windows 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/… Einfacher I/O-Zugriff Benutzerprozeß kernel-Verteiler I/O-Manager Dateisystem-Treiber I/O-Manager/Cache Gerätetreiber Gerät CD-ROM/Platten/ Floppy/Tape/… Dateizugriff Multivolume-Treiber I/O-Manager/Cache

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 8 Betriebssysteme: 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)

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 9 Betriebssysteme: Ein- und Ausgabeverwaltung Treiber: Fehlertoleranzfunktionen Windows NT: Clusterersatz Nichtresidente Attributsteile MFT-Eintrag standard information file name (security descriptor) data stream start VCNstart LCNlength VCN01 LCN VCN345 LCN Kein Ersatz möglich: corruptedBit=1, checkDisk() nach mount()

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 10 FRAGEN Antworten 1.Zeichenorientierte (character devices) und blockorientierte (block devices) Geräte. 2.Sequentielle vs. random acces Ein/Ausgabegabe Betriebssysteme: Ein- und Ausgabeverwaltung Antwort Dies ist dynamisch und hängt von dem I/O-Auftrag ab. 1.Welche beide Gerätearten kennt Unix? 2.Wodurch unterscheiden sie sich? Wieviele I/O-Schichten hat Windows NT?

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 11 Betriebssysteme: Ein- und Ausgabeverwaltung Energieverwaltung Gerätemodelle RAID-Konfigurationen Treiber: Unix und NT I/O-Schichtung

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 12 Betriebssysteme: 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äte für Treiberdesign  Treibertypen

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 13 Betriebssysteme: Ein- und Ausgabeverwaltung Wahlfreier Zugriff: Festplatten Magnetplatten: Fr-beschichtetes Aluminium Schreib/Leseköpfe Controllerelektronik

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 14 Betriebssysteme: Ein- und Ausgabeverwaltung 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

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 15 Betriebssysteme: Ein- und Ausgabeverwaltung 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 m Bytes pro Spur  Datentransferrate = m/t T mittl. t D = t R /2, k Bytes  rel. Spuranteil k/m Gesamtzeit T = t S + + t R lin. Funktion in k 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.

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 16 Betriebssysteme: 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 Zonen („zoning“) zjeweils konstante Sektorenzahl pro Zone; innere weniger, äußere mehr. zjede Zone hat eigene Transfergeschwindigkeit (Sektoren/Zeit)

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 17 Betriebssysteme: Ein- und Ausgabeverwaltung Festplattenmodell: Probleme Suchzeit (ms) Suchabstand (Zylinderzahl)  Nicht-lineare Kopfbewegung  Pufferwirkung und Bustransfer I/O-Anteil Zeit(ms )

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

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 19 Betriebssysteme: 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-Konfiguration Aber:  Festplattenparameter ändern sich pro Modell  Plattenmechanik, Puffergröße, Buseigenschaften in jedem Rechner unterschiedlich  jeder Treiber müsste manuell angepasst werden ! Besser: Hersteller optimiert internen Controller (adaptiv!), nach außen nur einheitliches virtuelles Gerät.

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 20 Betriebssysteme: 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 gewünscht schnelles Dateisystem (ca.10-fach) geringerer Platzbedarf (20%) RAM nicht direkt adressierbar (z.B. MS-DOS, 32 Bit BS-ab 4GB) robuster mobiler outdoor-Rechner (Erschütterungen)

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 21 Betriebssysteme: Ein- und Ausgabeverwaltung DRAM, Nand-FLASH SSD und HD-Speicher Preisentwicklung $ pro GByte Preisverfall HD: ~45% pro Jahr, Flash: >50% pro Jahr SSD Festplatte

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 22 Solid State Disks SSD schnell kompatibel durch gleichen Formfaktor (2,5“) kompatibel durch gleiche Schnittstelle bzw. Anschluss (SATA) Betriebssysteme: Ein- und Ausgabeverwaltung

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 23 SSD RAM-Disks Probleme und Nachteile Nur begrenzte Anzahl von Schreibzyklen möglich: , max 1Mio. Extra Löschzyklus nötig Interne Nutzungsverteilung: kein sicheres Löschen mögl.(Datenschutz?) Betriebssysteme: Ein- und Ausgabeverwaltung Lösungen  wear level-Algorithmen: Gleichmäßiges Beschreiben (Abnutzung) aller Zellen: interne Nutzungsverteilung und Reserveeinsatz durch Controller  echtes Löschen (BS-TRIM, internes garbage collection) ist parallel zum Schreiben auf anderen Zellen  Kein externes garbage collection (Defragmentierung) des Speichers  Häufig beschriebene Bereiche (Systemrettung, Hibernate, swap) nicht auf SSD (z.B. /user, /tmp), sondern nur read only-Programmanteile.  Cache-Funktionen sind unnötig: Bootoptimierung, SuperFetch, Prefetch für SSD abschalten

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 24 FRAGE Warum sollte man einen Treiber nicht für die Eigenschaften der angeschlossenen Geräteversion optimieren? Betriebssysteme: Ein- und Ausgabeverwaltung Antwort Weil dann das Information hiding-Prinzip der Schnittstelle des abstrakten Datentyps verletzt wird. Ein Treiber ist eine virtuelle Maschine! Nachteil: Bei jeder Modellversion wäre ein eigener Treiber nötig!

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 25 Betriebssysteme: Ein- und Ausgabeverwaltung Geräteschnittstellen: I/O mapping Keine dedizierten I/O-Kanäle, sondern I/O-mapping (memory 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

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 26 Betriebssysteme: Ein- und Ausgabeverwaltung Geräteschnittstellen Beispiel: Standard PC Hardware reale I/O-Adressen

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 27 Betriebssysteme: Ein- und Ausgabeverwaltung Beispiel Parallel Port - Datenpuffer Daten Register Byte Adresse: IOBase+0 (read+write) BitNamePinBufferBit value '0' meaningBit value '1' meaning 7D79TruePin low; data value '0'Pin high; data value '1' 6D68TruePin low; data value '0'Pin high; data value '1' 5D57TruePin low; data value '0'Pin high; data value '1' 4D46TruePin low; data value '0'Pin high; data value '1' 3D35TruePin low; data value '0'Pin high; data value '1' 2D24TruePin low; data value '0'Pin high; data value '1' 1D13TruePin low; data value '0'Pin high; data value '1' 0D02TruePin low; data value '0'Pin high; data value '1'

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 28 Betriebssysteme: Ein- und Ausgabeverwaltung Beispiel Parallel Port - Statusregister Status-Register IOBase+1 (Read Only) BitNamePinBufferBit value '0' meaningBit value '1' meaning 7BUSY11InvertedPin high: printer busyPin low: printer not busy 6-ACK10TruePin low; printer is asserting -ACK Pin high; printer is not asserting -ACK 5NO PAPER 12TruePin low; printer has paper Pin high; printer has no paper 4SELEC TED 13TruePin low; printer is not selected Pin high; printer is selected 3- ERROR 15TruePin low; printer error condition Pin high; printer no- error 2Undef 1 0

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 29 Betriebssysteme: Ein- und Ausgabeverwaltung Beispiel Parallel Port - Befehlsregister Control Register Adresse: IOBase+2 (read+write) BitNamePinBufferBit value '0' meaningBit value '1' meaning 7Unused Input mode --Normal (output) modeInput mode (PS/2 ports only) 4Interrupt enable --IRQ line driver disabled IRQ line driver enabled 3-SEL ECT 17InvertedPin high; not selectedPin low; printer selected 2-INITA LIZE 16TruePin low; initializes printer Pin high; does not initialize printer 1-AUTO FEED 14InvertedPin high; no auto-feedPin low; auto-feed enabled 0-STRO BE 1InvertedPin high; -STROBE inactive Pin low; -STROBE active

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 30 Betriebssysteme: Ein- und Ausgabeverwaltung Geräteschnittstellen: Interruptvektoren Gerät 0 Gerät 1 … Gerät 15 Interrupt- Controller Status register CPU Vector base register … Interrupt vector table Interrupt vector IRQ

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

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 32 Betriebssysteme: Ein- und Ausgabeverwaltung Geräteschnittstelle: FestplattenRegisterarten Befehlsregister (Write only) Kontrollregister mit Befehlscode für Funktionen Statusregister (Read only) Status mit Bitbedeutungen (z.B. Bit4=1  Lesen beendet) Adreßregister Angabe von GerätNr, Zylinder, Spur, Sektor, Platte, Kopf,.. Datenpuffer (Read/Write) Adresse für I/O, z.B. DMA-Transfer Interruptsystem Aufsetzen/Löschen eines Interrupts für Benachrichtigung „Befehl ausgeführt“ Zu viele Register: zu viel Adreßraum nötig. Abhilfe: Messages mit Befehlsheader + DMA-Transfer

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 33 Betriebssysteme: Ein- und Ausgabeverwaltung Geräteschnittstelle: Serielle Geräte Sequentielles Read/Write ohne Adressinformation (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)

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 34 Betriebssysteme: Ein- und Ausgabeverwaltung Geräteschnittstellen: Initialisierung Problem: zentrale Koordination der I/O-Adressen, Pufferadressen, Interrupt-Nummern 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 extended system configuration data Windows NT: Erstellung einer eigenen Liste bzw. Aufsetzen auf der vorigen Liste Unix (Linux): Aufsetzen auf der ESCD NEU: Unified Extensible Firmware Interface UEFI

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 35 Betriebssysteme: Ein- und Ausgabeverwaltung Geräteinitialisierung: PnP auf PCI PCI-Bus Spezifikation 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

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 36 Betriebssysteme: Ein- und Ausgabeverwaltung 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.

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 37 FRAGEN Jedes Subsystem benötigt zwei Arten von Angaben, um als memory-mapped device angesprochen werden zu können. Welche? Betriebssysteme: Ein- und Ausgabeverwaltung  I/O-Registeradressen  Interruptnummer Wozu gibt es das I/O mapping (memory-mapping) ? a)Schnelleres I/O b)Direkte Verbindung über I/O-Kanäle c)Einfachere Programmierung

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 38 Betriebssysteme: Ein- und Ausgabeverwaltung Energieverwaltung Gerätemodelle RAID-Konfigurationen Treiber: Unix und NT I/O-Schichtung

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 39 Betriebssysteme: Ein- und Ausgabeverwaltung Multiple Plattenspeicher: RAID RAID = Redundant Array of Inexpensive Disks Multiple Festplatten = 1 großer virtueller Plattenspeicher Vorteile : Schnelligkeit durch paralleles Lesen Potentielle Fehlertoleranz Inkrementelle Speichererweiterung möglich Beispiel: RAID 0 Partition = Streifen (Schnelligkeit),z.B. 64kB Datei

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 40 Betriebssysteme: 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 Mit Streifen: Raid 0/1- System

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 41 Betriebssysteme: Ein- und Ausgabeverwaltung 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! 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 Aber: Spindelsynchronisation nötig!

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 42 Betriebssysteme: Ein- und Ausgabeverwaltung 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

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 43 Ausfallwahrscheinlichkeiten Berechnung der System-Ausfallwahrscheinlichkeit Aufgabe: 2 Festplatten, RAID 0 P(Ausfall einer Platte) = 0,1 [pro Zeiteinheit] F1F2Prob 000,1*0,1 = 0,01 010,1*0,9 = 0,09 100,9*0,1 = 0,09 110,9*0,9 = 0,81 F1F2 RAID 0 = striping Systemausfall, wenn mind. 1 Platte defekt. P(Ausfall) = ? Also: P(Ausfall) = 0,01+0,09+0,09 = 0,19 Betriebssysteme: Ein- und Ausgabeverwaltung

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 44 Betriebssysteme: Ein- und Ausgabeverwaltung Energieverwaltung Gerätemodelle RAID-Konfigurationen Treiber: Unix und NT I/O-Schichtung

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 45 Betriebssysteme: 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

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 46 Betriebssysteme: 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

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 47 Betriebssysteme: Ein- und Ausgabeverwaltung Treiberschnittstelle: Windows NT Treiberklassen  Eingabegeräte (Human Interface Devices) Maus, Tastatur, Datenhandschuh,..  Standbildgerät e Scanner, Digitalcamera,...  Datenströme Videocamcorder, Audiorecorder,...  allgem. Klassentreiber und gerätespezif. Zusatz (Mini-Treiber) Anforderungen an NT-Treiber  Multiprozessorfähig (spin locks für kritische Abschnitte, reentrant- fähig)  Energieverwaltung (stand by, Hibernation,..)  Reaktion auf power failure: Spezifikation atomarer Teile, Geräte-setup  Ein- und Ausschalten im laufenden Betrieb (hot swappable devices)  PnP-fähig: Konfigurierbar bei IRQ, DMA-Kanal und Registeradressen

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 48 Betriebssysteme: 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 Treiber Eine fehlernotierende Prozedur (error logging) Auftrag an I/O Manager zur Fehlerprotokollierung

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 49 Betriebssysteme: 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 Geräte- objekt Partition0 Geräte- objekt Partition1 Treiberobjekt Read Write... Start I/O Cancel I/O Unload Devices unload driver read, write

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 50 Betriebssysteme: 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()

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 51 Betriebssysteme: Ein- und Ausgabeverwaltung Treiber Windows NT : Synchroner I/O Synchrone Ein-/Ausgabe Daten zum Gerät schreiben lt. IRP I/O Request Package IRP erzeugen und Treiber aufrufen I/O durchführen, dann Interrupt erzeugen Interrupt behandeln, in IRP Ergebnis notieren Systemaufruf abschließen und dabei Ergebnis (OK, Fehler) zurückgeben

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 52 Betriebssysteme: Ein- und Ausgabeverwaltung Treiber Windows NT: Asynchroner I/O Phase 1: Auftrag einleiten IRP in Geräte- Warteschlange einreihen IRP erzeugen und Treiber aufrufen Wartezustand zurückgeben Systemaufruf abschliessen und dabei Ergebnis (Wartezustand) zurückgeben

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 53 Betriebssysteme: Ein- und Ausgabeverwaltung Treiber Windows NT: Asynchroner I/O Phase 2: Interrupt Service ISR wird aufgerufen Interrupt erscheint und ruft dispatcher auf ISR setzt Interrupt zurück, legt DPC-Auftrag an, reiht ihn in Warteschlange ein und setzt DPC- Interrupt.

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 54 Betriebssysteme: Ein- und Ausgabeverwaltung Treiber Windows NT: Asynchroner I/O Phase 3: Auftragsbearbeitung DPC wird aufgerufen DPC Interrupt erscheint und ruft dispatcher auf DPC startet nächstes IRP und beendet Service Request

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 55 Betriebssysteme: Ein- und Ausgabeverwaltung Treiber Windows NT: Asynchroner I/O Phase 4: Datenübertragung zum Benutzer einleiten DPC ruft I/O-Manager auf zum Auftragsabschluss I/O-Manager notiert APC, um Service Request erst bei Erscheinen des Users zu beenden

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 56 Betriebssysteme: Ein- und Ausgabeverwaltung Treiber Windows NT: Asynchroner I/O Phase 5: Datenübertragung zum Benutzer abschliessen Die APC-ISR ist beim I/O Manager angesiedelt Beim nächsten Auftreten des Users erscheint ein APC-Interrupt APC-Methode schreibt Daten in den user space, setzt Dateiobjekt zu „signalisiert“ reiht user-APC in Warteschlange ein löscht IRP

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 57 Betriebssysteme: Ein- und Ausgabeverwaltung Treiber-Optimierungsstrategien Pufferung 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

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 58 Betriebssysteme: 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

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 59 Betriebssysteme: Ein- und Ausgabeverwaltung Energieverwaltung Gerätemodelle RAID-Konfigurationen Treiber I/O-Schichtung

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 60 Betriebssysteme: 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!)

© R.Brause, J.W.G-Universität Frankfurt a.M. Folie 61 Betriebssysteme: Ein- und Ausgabeverwaltung Energieverwaltung Architektur Zusammenspiel aus Betriebssystem und ACPI-Teilen

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