Betriebssysteme // Kapitel 13: I/O
Vergleiche Polling und Interrupts.
Polling: CPU fragt Gerät aktiv ab 'Bist du fertig?'. Gut für schnelle Reaktionen in Echtzeitsystemen, verschwendet aber CPU-Zeit. Interrupts: Gerät meldet sich bei der CPU. Effizienter für die CPU, aber führt zu nicht-deterministischen Unterbrechungen.
Was ist DMA (Direct Memory Access) und welchen Vorteil bringt es?
Ein Hardware-Mechanismus, der es Peripheriegeräten erlaubt, Daten direkt in den RAM zu schreiben/lesen, ohne die CPU zu belasten. Die CPU initiiert nur den Transfer.
Welches Sicherheitsproblem erzeugt DMA und wie wird es gelöst?
Ein DMA-Gerät kann auf den gesamten physischen RAM zugreifen (auch Kernel-Bereiche). Eine IOMMU (I/O Memory Management Unit) schränkt dies ein, indem sie dem Gerät nur bestimmte virtuelle Adressen zur Verfügung stellt.
Warum verwendet man bei der Grafikausgabe 'Double Buffering'?
Um 'Tearing' zu vermeiden. Das Bild wird in einen unsichtbaren Puffer gezeichnet. Erst wenn es fertig ist, wird synchron zum Monitor-Refresh auf diesen Puffer umgeschaltet.
Was macht ein Interrupt-Controller?
Er bündelt Interrupt-Leitungen verschiedener Geräte, priorisiert diese und leitet das Signal an die CPU weiter, damit diese weiß, welcher Treiber (ISR) ausgeführt werden muss.
Warum ist Polling in einem Echtzeitbetriebssystem (RTOS) oft akzeptabler als in einem Desktop-OS?
In einem RTOS ist Determinismus (Vorhersagbarkeit) wichtiger als Effizienz. Polling geschieht zu festen Zeitpunkten, während Interrupts den Programmfluss unvorhersehbar stören können.
Was ist das 'Screen Tearing'-Problem bei Grafikkarten und wie löst Double Buffering es?
Tearing entsteht, wenn der Monitor den Speicher ausliest, während die CPU/GPU gerade hineinschreibt (halb altes, halb neues Bild). Double Buffering nutzt zwei Speicherbereiche: Einen zum Anzeigen, einen zum Schreiben, und schaltet diese atomar um.
Warum stellt DMA (Direct Memory Access) ein potenzielles Sicherheitsrisiko dar?
Ein DMA-Controller kann Hardware-seitig auf den gesamten physischen RAM zugreifen, unter Umgehung der CPU und deren MMU-Schutzmechanismen. Bösartige Peripherie könnte so Kernel-Speicher auslesen oder manipulieren.
Wie schützt eine IOMMU (Input-Output Memory Management Unit) vor fehlerhaften DMA-Zugriffen?
Sie stellt der Peripherie virtuelle Adressen bereit und übersetzt diese in physische Adressen (analog zur MMU für Prozesse). Sie erlaubt dem Gerät nur Zugriff auf explizit freigegebene Speicherbereiche.