Skip to main content

Geräteklassen

Im Zuge seiner geräteunabhängigen Teile der Implementierung definiert die Geräteverwaltung des Betriebssystems unterschiedliche Geräteklassen. Zu den wichtigsten beiden Klassen gehören die blockorientierten Geräte, sowie die zeichenorientierten Geräte.


Blockorientierte Geräte

übertragen Daten jeweils in kompletten Blöcken, beim Lesen und Schreiben von diesem Gerät (zb. Festplatte)

→ Typische Blockgrößen liegen zwischen 512 und 32 768 Byte.
→ Jeder Datenblock ist direkt adressierbar.
→ BEISPIEL: Lade Datenblock Nr. 723 von Festplatte | Ändere fünfte Byte wie | Schreibe Datenblock Nr. 723 zurück auf Festplatte.
→ Es können also immer nur komplette Datenblöcke gelesen oder geschrieben werden.


Zeichenorientierte Geräte

erzeugen/empfangen Datenstrom. Zeichenfolge zum Gerät oder vom Gerät übertragen. Zeichen sind nicht adressierbar.

Beispiele für zeichenorientierte Geräte sind: Maus, Tastatur, Netzwerkkarte, ...


Schnittstelle für zeichenorientierte / blockorientierte Geräte
→ Geräteverwaltung definiert Standardschnittstelle, welche Treiber zeichenorientierten/blockorientierte Geräte unterstützen 
→ Darin vorgesehen sind beispielsweise Funktionen für: die Initialisierung des Geräts, das Lesen eines Zeichenstroms vom Gerät...
→ Diese Funktionen werden vom Gerätetreiber implementiert.


Zusammenarbeit von Treiber und Geräteverwaltung
→ ist ein zeichenorientiertes Gerät am System angeschlossen, so wird sein Treiber in den Hauptspeicher geladen
→ Der Treiber implementiert Funktionen (initDevice(), readBlock(), writeBlock(), handleInterrupt().

Durch das Laden des Treibers in den Hauptspeicher steht ab diesem Moment fest, ab welcher Adresse im Hauptspeicher der ausführbare Code der genannten Funktionen beginnt. Dies gilt für jeden geladenen Treiber, also für jedes unterstützte Gerät.