2016-07-12 12 views
1

Ich bin mir nicht sicher, wie Round Robin Planung mit E/A-Operationen funktioniert. Ich habe gelernt, dass CPU-gebundene Prozesse von der Round-Robin-Planung bevorzugt werden, aber was passiert, wenn ein Prozess seine Zeitscheibe vorzeitig beendet?Round Robin Scheduling und IO

Nehmen wir an, wir vernachlässigen den Dispatching-Prozess selbst und ein Prozess beendet seine Zeitscheibe früh, wird der Scheduler einen anderen Prozess planen, wenn seine CPU gebunden ist, oder der aktuelle Prozess seine IO-Operation startet, und da dies nicht CPU-gebunden ist, wird sofort zu einem anderen (CPU-gebundenen) Prozess wechseln? Und wenn CPU-gebundene Prozesse bevorzugt werden, plant der Scheduler ALLE CPU-gebundenen Prozesse bis zum Ende und plant erst danach die E/A-Prozesse?

Bitte helfen Sie mir zu verstehen.

Antwort

1

Es gibt zwei unterschiedliche Schedulern: die CPU (Prozess-/Thread ...) Scheduler und die I/O Scheduler (s).

CPU-Scheduler verwenden in der Regel einige hybride Algorithmen, weil sie regelmäßig sowohl Vorkaufsrecht als auch Prozesse treffen, die freiwillig einen Teil ihrer Zeitscheibe aufgeben. Sie müssen Arbeiten mit höherer Priorität schnell bedienen, während sie niemanden verhungern. (Eine Studie des aktuellen Linux-Scheduler ist meist interessant. Es gibt mehrere haben.)

CPU-Scheduler Prozesse entweder als „in erster Linie‚I/O-bound‘“ oder „in erster Linie‚CPU-bound‘“ identifizieren zu diesem Zeitpunkt, wissen, dass ihre Eigenschaften ändern können und tun. Wenn Ihr Prozess wiederholt Vollzeitscheiben verbraucht, wird er als an die CPU gebunden betrachtet.

E/A-Scheduler versuchen, die E/A-Anforderungswarteschlangen für maximale Effizienz zu bestellen und neu zu ordnen. Zum Beispiel, um den Lese-/Schreibkopf eines physikalischen Laufwerks effizient in einer einzigen Richtung zu bewegen. (Die zwei Komponenten der Plattenlaufwerkverzögerung sind "Suchzeit" und "Rotationslatenz", wobei "Suchzeit" bei weitem die schlechteste der beiden ist. Progegen, Solid-State-Laufwerke haben ein sehr unterschiedliches Timing.) I/O-Scheduler müssen auch die Kanäle (Plattenschnittstellenkarten, Verkabelung, usw.) beachten, die Zugriff auf jedes Gerät bieten: Sie können nicht einfach beobachten, was ein Laufwerk macht. Wie beim CPU-Scheduler müssen Anfragen effizient behandelt, aber niemals "ausgehungert" werden. Die I/O-Scheduler von Linux stehen auch für Ihre Studie zur Verfügung.

"Pure Round-Robin", als Terminierungsdisziplin, bedeutet einfach, dass alle Anfragen die gleiche Priorität haben und nacheinander in der Reihenfolge bearbeitet werden, in der sie ursprünglich eingereicht wurden. Sehr hübsche Vögel, obwohl sie sind, trifft man Pure Robins im wirklichen Leben selten.

Verwandte Themen