07_Geräte Flashcards
1
Q
Geräte
Hardwareabstraktion
A
- Aufgabe des BS: Verallgemeinerung der Geräteeigenschaften
- Kernel soll allgemeingültig sein (unabhängig von Hardware)
-
Gerätetreiber im BS bieten dem Kernel allgemeine Geräteschnittstelle an -> vom Kernel den Anwendungen/Anwendungsbibliotheken angeboten
- verbergen herstellerspezifische Eigenschaften vor BS
- Geräte = alle am Rechner angeschlossene Peripherie
- z.B. CPU hat auch Treiber, um Statusinformationen (Hitze, Auslastung) zu überwachen u. zum Stromsparen Takt herunterzusetzen/Kerne abzuschalten
2
Q
Geräte
Aufgabe des I/O-Systems des BS
A
- Bereitstellung allgemeiner Funktionen zur Gerätebedienung – Abstraktion der Gerätefunktionen
- Koordinierung der Gerätenutzung durch Prozesse
- Schutz vor unberechtigten Gerätezugriffen
- Unterstützung für Gerätekonfigurationsmanagement
- statisch, d.h. vor dem Systemeinsatz
- dynamisch, d.h. zur Laufzeit
3
Q
Geräte
Gerätekonfiguration
A
statische Konfiguration
- Zusammensetzung des Gerätespektrums vor einer Neuübersetzung des Kerns parametriert
- im endgültigen Betriebssystem nur Gerätetreiber vorhanden, die auch verwendet werden
- Kernel kann statisch gebunden werden
- z.B. Festplattentreiber für Boot-Device
dynamische Konfiguration
- Treiber zur Laufzeit geladen und entladen
- beim Hochfahren versucht jeder Gerätetreiber, seine Geräte zu finden
- kein Erfolg: aus Kernel entfernt/nicht aufgenommen
- erfolgt mit fertig kompilierten Kern -> Gerätetreiber müssen dynamisch eingebunden werden o. Einsprünge in Gerätetreiber über Sprungtabellen hergestellt
- z.B. USB-Devices
4
Q
Geräte
Geräte-Arten
A
Standardgeräte
- z.B. Drucker, Plotter, Platten
- kein direkter Zugriff durch Anwenderprozesse
- indirekter Zugriff durch höhere Dienste, die ein oder mehrere Geräte exklusiv besitzen
Spezialgeräte
- z.B. Sensoren, Aktuatoren (Fühler, Stellglieder)
- sind Bestandteil einer Anwendung -> Anwender für Erstellung der E/A-Software und deren Integration in BS verantwortlich
- direkter Zugriff durch Anwendungssoftware unentbehrlich
5
Q
Geräte
Abstrakte Geräte
A
- im BS allgemeine Schnittstelle für Gerätetreiber mit standardisierter Schnittstelle
- möglichst kleiner Umfang von Funktionsaufrufen für alle Gerätefunktionen:
- DeviceId=OpenDevice (Gerätename, Betriebsparameter)
- CloseDevice(DeviceId)
- Ergebnis=Read (DeviceId, from, Länge)
- Ergebnis=Write (DeviceId, from, Länge)
- Status= DeviceStatus (DeviceId)
- CreateDevice (Gerätename, Treiber, Anschlußadressen)
- DeleteDevice (Gerätename) -> Gerät zur Laufzeit einbinden/entfernen
6
Q
Geräte
Implementierung der Gerätetreiber
A
Standardgeräte: Implementierung der Treiber kann im Kern erfolgen
Spezialhardware: aufwändiger Systemtest i.d.R. nicht möglich -> Realisierung des Treibers in Anwendungssoftware
- Hardwareadressen des Geräts in Adressraum der Anwendung gemappt
- Ansprechen des Geräts für Anwendung wie Lesen/ Schreiben von Speicheradressen
- Schwierigkeit: Weiterleiten des u.U. vorhandenen Geräteinterrupts dar -> Lösung: Signale zur Anwendung
7
Q
Geräte in UNIX
A
- wie Dateien im System abgebildet
- nahezu alle Gerätefunktionen über dieselben Systemaufrufe wie für Dateien genutzt
- Aufruf für die Ausgabe: “write(..)”, für Eingabe: “read(..)”
8
Q
Geräte in UNIX
Kern-Architektur für die Geräteansteuerung
A
Netzwerkgeräte
- bilden mit TCP/IP-Stack eine Säule
- vom Anwender über Socket-Schnittstelle ansprechbar
Blockgeräte:
- Block-Buffer-Cache als schneller Zwischenspeicher
- Anwenderschnittstelle = Dateisystem-Schnittstelle (plain files)
- cooked disk interface = direkte Schnittstelle zur Festplatte als Datei = Eintrag in /dev
Zeichenorientierte Geräte:
- Zugriff i.d.R. über “cooked”-Schnittstelle d. Gerätetreiber
- wesentliche Behandlungen von Zeichen in Treiber integriert (z. B. Editieren in Eingabezeilen)
- cooked tty = Zeichenvorverarbeitung (line discipline)
- kann parametrisiert werden
- z.B. Ausschalten des Zeicheneditierens durch in Konsole (Zeichen anzeigen, löschen, …)
9
Q
Geräte in Unix
Treiberadressierung (Block Devices)
A
- Header d. Treiber enthalten Informationen, wo Funktionen im Code liegen -> Verweise in Tabelle
-
Major-Number: Index in Treibereinsprungtabelle (Block Device Switch Table)
- gleich bei Geräten mit gleicher Schnittstelle (z.B. Festplatte und SSD haben beide SATA-Schnittstelle)
-
Minor-Number: Parameter für den Treiber
- identifiziert das Teilgerät, z.B. Festplattenpartition