USB Treiber
Zunächst einmal ist der USB (Universal Serial Bus) dazu da um externe Geräte mit einem Computer zu verbinden, zum Beispiel Drucker, Faxgeräte oder externe Speichermedien wie ein USB Stick oder ein MP3 Player. Jedes Gerät, das mit solch einem Bus versehen ist, bringt auch die nötige Software mit sich. Diese Software wird auch USB Treiber genannt. Erst durch sie kann der jeweilige Computer den USB erkennen und funktionstüchtig machen.
Bei den USB Treibern unterscheidet man zwischen USB Gerätetreibern, USB Bustreibern und USB Host Controller Treiber. Ein USB Gerätetreiber hat die Aufgabe anfragen an den USB Bustreiber zu stellen. Diese Anfragen werden auch "Requests" genannt. Für diesen Vorgang verwendet der Treiber "I/O-Request-Packets", kurz IRP. Die IRPs veranlassen dann einen Transfer zwischen USB Geräten wie Tastaturen.
Die USB Bustreiber erhält die IRPs von dem USB Gerätetreiber und erzeugt der Anfrage nach einen Transfer, die abhängig von dem Übertragungsrahmen, auch "Frame" genannt, innerhalb einer Millisekunde möglich sind. Dabei erkennt der Treiber zum Beispiel die mögliche die Abstände zwischen den Zugriffen oder die Datenmenge pro Frame. Die Eigenschaften der einzelnen Geräte werden dabei in der Konfigurationsphase aufgelesen. Und zu guter Letzt kommt der USB Host Controller Treiber. Er führt sozusagen einen Stundenplan der einzelnen Transaktionen und organisiert außerdem die zeitliche Abfolge.
Dabei schreibt er eine Liste von Transaktionen auf (Scheduling= engl. schedule= Stundenplan). Aber in der Liste sind nur die noch nicht ausgeführten Transaktionen zu sehen. Der USB Treiber definiert dabei die Reihenfolge der Transaktionen in Richtung des angeschlossenen Gerätes. Er hat sogar die Möglichkeit den Datentransfer in mehrere kleinere Transaktionen aufzuteilen. Die Übertragungsrate hängt dabei ganz von den jeweiligen Eigenschaften des Gerätes ab, da spielen zum Beispiel die Busbelastung oder die Transferart eine Rolle.