Unser zu entwerfendes Software-System soll es gestatten, daß mehrere Prozesse (Tasks) gleichzeitig Leseanforderungen an eine Platte abgeben. Bei der Platte handelt es sich um ein Gerät, das die Daten in Form von Sektoren auf konzentrisch angeordneten Spuren abgespeichert hat (vgl. Abbildung 18.18).
Abbildung: Magnetplatte mit Schreib-Leseköpfen
Ein Task, der eine Leseoperation durchführt, ist so lange blockiert, bis er die Daten vom (zu entwerfenden) Platten-Treiber übergeben erhält.
Die Magnetplatte (bzw. eigentlich der Platten-Treiber) kennt als einzige Operation:
Da wir einen möglichst schnellen Zugriff auf die Platte realisieren wollen, folgt aus diesen Eigenschaften, daß wir die Bewegungsrichtung des Lese-Schreibkopfes nicht oft umkehren wollen. Zu diesem Behufe wollen wir alle Leseanforderungen nach Spur- und Sektornummer sortieren und den Lese-Schreibkopf in bezug auf diese Ordnung auf- beziehungsweise absteigend bewegen. Der Lese-Schreibkopf bewegt sich also wie ein Autoscheibenwischer über die Plattenoberfläche und erledigt alle angefallenen Leseaufträge. Es soll natürlich möglich sein, Leseanforderungen, die eintreffen, während der Lese-Schreibkopf sich in eine bestimmte Richtung bewegt, zu behandeln, falls der Lese-Schreibkopf den anzusprechenden Sektor ohnehin passieren würde.