3.4.4.4 Interruptbehandlung für ein Gerät

[gesichtete Version][gesichtete Version]
Keine Bearbeitungszusammenfassung
Zeile 76: Zeile 76:
<br />
<br />
== Aufgabe 3 ==
== Aufgabe 3 ==
<p>
<loop_area type="task">
<loop_area type="task">
<loop_task title="DMA und Interrupts - Wie war das noch mal?">
<loop_task title="DMA und Interrupts - Wie war das noch mal?">
Zeile 83: Zeile 82:
</p>
</p>
<p>
<p>
Wie wirkt sich der Einsatz eines DMA-Controllers auf die Anzahl der zu verarbeitenden Interrupts aus?
Wie wirkt sich der Einsatz eines DMA-Controllers auf die Anzahl der (vom Treiber) zu verarbeitenden Interrupts aus?
</p>
</p>
<p>
<p>
Zeile 90: Zeile 89:
</loop_task>
</loop_task>
</loop_area>
</loop_area>
<br />
== Aufgabe 4 ==
<loop_area type="task">
<loop_task title="Interruptverarbeitung und Interruptverarbeitung">
<p>
Du hast sicher schon erkannt: Die Interruptverarbeitung im Treiber unterscheidet sich je nachdem, ob ein DMA-Controller zum Einsatz kommt, oder nicht.
</p>
</p>
<p>
Dann stelle in einer Auflistung doch einmal gegenüber:
</p>
<p>
Welche Schritte oder Tätigkeiten muss der Treiber bei der Interruptverarbeitung durchführen, wenn:
# Kein DMA-Controller zum Einsatz kommt, oder
# Ein DMA-Controller und DMA-fähige Geräte zum Einsatz kommen.
</p>
</loop_task>
</loop_area>


<br />
<br />

Version vom 19. November 2014, 17:05 Uhr

Interruptbehandlung für ein Gerät

Aus dem Abschnitt Datentransfer und Interrupts ist bereits das folgende Video bekannt:

video


Es geht u.a. auf eine Interruptbehandlungsroutine ein, welche im Video ganz allgemein als ein "Teil des Betriebssystems" bezeichnet wird (ISR #14 ab Minute 1:44).

Diese allgemeine Beschreibung wird nun etwas konkretisiert:


Wichtig

Eine Interruptbehandlungsroutine ist Teil eines Gerätetreibers!

(Und der Treiber ist Teil der Geräteverwaltung, welche wieder ein Teil des Betriebssystems ist.)


Aufgabe 1

Aufgabe

Betrachte noch einmal die bereits erläuterten Tätigkeiten eines Treibers.

Welche der dort aufgelisteten Tätigkeiten beinhaltet die Interruptbehandlung für ein Gerät?

Besteht die Interruptbehandlung vielleicht aus mehr als nur einer Tätigkeit?


Aufgabe 2

Aufgabe

Wenn du in der vorangegangenen Aufgabe die Tätigkeiten identifiziert hast, welche durch die vom Treiber bereitgestellte Interruptbehandlungsroutine durchgeführt werden, dann kannst du sicher auch die folgende Frage beantworten:

Warum kann diese Tätigkeiten nur der Treiber vollständig und korrekt durchführen?


Interruptbehandlung bei einzeln übertragenen Datenwörtern

Das oben eingebundene Video verdeutlicht die Interruptbehandlung bei einzeln übertragenen Datenwörtern. Dabei hatte ein Datenwort gerade einmal die Breite des Datenbusses.

Im Abschnitt Datentransfer und Interrupts findet sich zudem eine Auflistung vieler durchzuführender Schritte, die bei der Übertragung jedes einzelnen Datenwortes anfallen.

Moderne Systeme arbeiten jedoch schon lange nicht mehr nach diesem Verfahren, sondern es kommt ein DMA-Controller zum Einsatz.


Interruptbehandlung bei Einsatz eines DMA-Controllers

Auf der Seite zum DMA-Controller wurde erläutert, wie sich der Einsatz eines DMA-Controllers auf die Anzahl der zu verarbeitenden Interrupts auswirkt.


Aufgabe 3

Aufgabe

Erläutere in einem Satz:

Wie wirkt sich der Einsatz eines DMA-Controllers auf die Anzahl der (vom Treiber) zu verarbeitenden Interrupts aus?

(Du kannst für diese Aufgabe vom Standardbeispiel ausgehen: Es große Datei soll von der Festplatte in den Hauptspeicher kopiert werden.)


Aufgabe 4

Aufgabe

Du hast sicher schon erkannt: Die Interruptverarbeitung im Treiber unterscheidet sich je nachdem, ob ein DMA-Controller zum Einsatz kommt, oder nicht.

Dann stelle in einer Auflistung doch einmal gegenüber:

Welche Schritte oder Tätigkeiten muss der Treiber bei der Interruptverarbeitung durchführen, wenn:

  1. Kein DMA-Controller zum Einsatz kommt, oder
  2. Ein DMA-Controller und DMA-fähige Geräte zum Einsatz kommen.


Aber nicht jedes Gerät ist DMA-fähig!

- to do -