Blockorientiert Jeder Block kann unabhängig gelesen und geschrieben werden. Festplatten, CD-ROMs, USB-Sticks, etc. Zeichenorientiert Keine Struktur, nicht adressierbar, Daten werden als Folge von Zeichen oder Bytes gelesen oder geschrieben. Drucker, Netzwerkkarten, Mäuse, Tastaturen, etc.
Blockorientiert Jeder Block kann unabhängig gelesen und geschrieben werden. Festplatten, CD-ROMs, USB-Sticks, etc. Zeichenorientiert Keine Struktur, nicht adressierbar, Daten werden als Folge von Zeichen oder Bytes gelesen oder geschrieben. Drucker, Netzwerkkarten, Mäuse, Tastaturen, etc.
Controller Controller bilden die Schnittstelle zwischen Computer und Gerät. Die Schnittstellen i.d.r. standardisiert (ANSI, ISO, IEEE oder De-Facto Standards wie IDE, SATA, SCSI, USB, FireWire) Wandeln z.b. serielle Datenströme von Festplatten in Blöcke um oder erzeugen aus dem Inhalt des Bildschirmspeichers die Signale für einen Bildschirm.
Zugriff auf die E-/A-Geräte E-/A Controller besitzen in de Regel Datenpuffer und Steuerregister. Für den Zugriff auf die Register gibt es prinzipiell 2 Möglichkeiten E-/A-Ports Jedem Register wird eine Portnummer zugewiesen. Nur das Betriebssystem hat Zugriff auf diese Ports. Memory-Mapped E-/A Jedem Register wird eine Speicheradresse zugewiesen.
Direct Memory Access (DMA) Direkter Zugriff durch die CPU verbraucht viele CPU Resourcen Bei DMA unterstützt die Hardware den Datentransfer vom Gerät zum Hauptspeicher. Der DMA Controller hat Zugriff auf den Systembus und erhält als Parameter nur die Anfangsadressen und die Menge der zu übertragenden Daten.
Interrupts Über Interrupts kann der E-/A-Controller die CPU benachrichtigen, wenn eine Datenübertragung beendet ist. Interrupts entlasten die CPU, da kein aktives Warten erforderlich ist. Bei einen Interrupt unterbricht die CPU die aktuelle Ausführung und führt die entsprechende Interruptroutine aus.
Softwarekonzepte bei der Ein- und Ausgabe Programmierte Ein- und Ausgabe Interruptgesteuerte Ein- und Ausgabe Werden in den Kern-Adressraum kopiert Übertragung wird durch aktives Warten gesteuert Für jede Übertragung wird ein Interrupt erzeugt Ein Interrupt pro Byte oder Wort Direct Memory Access Übertragung in Blöcken Reduzierung der Interrupts und Entlastung der CPU
Schichten der Ein-/Ausgabesoftware
Unterbrechungsroutinen Sichern die Register, die nicht schon durch die Hardware gesichert wurden Erzeugen den Prozesskontext für die Unterbrechungsroutine (TLB, MMU, Seitentabellen, Stack) Bestätigen des Interrupts Kopieren der aktuellen Register in die Prozesstabelle Aufrufen der Unterbrechungsroutine Auswählen des nächsten Prozesses, setzen des Kontextes für diesen Prozess und starten des Prozesses
Gerätetreiber
Geräteunabhängige Ein-/Ausgabe-Software Einheitliche Schnittstelle für Gerätetreiber Pufferung Fehlerbericht Anforderung und Freigabe von exklusiv zugewiesenen Geräten Geräteunabhängige Blockgrößen
Plattenspeicher Adressierung über Spur, Sektor, Zylinder Aus Kompatibilitätsgründen sind Maximalwerte 65.536, 16, 63 gegeben Stimmt in der Regel nicht mit den physikalischen Eigenschaften überein. oder Logische Blockadressierung fortlaufend ab 0.
RAID (Redundant Array of Inexpensive Disks) Erhöhte Geschwindigkeit, da mehrere Platten parallel verwendet werden. Höhere Sicherheit, da Daten redundant gespeichert werden.
RAID (Redundant Array of Inexpensive Disks) Erhöhte Geschwindigkeit, da mehrere Platten parallel verwendet werden. Höhere Sicherheit, da Daten redundant gespeichert werden.
Strategieren zur Steuerung des Plattenarms Relevante Parameter Zeit für Kopfpositionierung Rotationsverzögerung Dauer der Übertragung Methoden First Come First Served Shortest Seektime First Aufzugalgorithmus