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.