Greift nach jedem Zeitabschnitt/Quantum ein Betriebssystem ein?

Greift nach jedem Zeitabschnitt/Quantum ein Betriebssystem ein?

Greift das Betriebssystem im Rahmen der Prozessplanung nach jedem Zeitabschnitt/Quantum ein? Wenn der Computer beispielsweise im Leerlauf ist und 4 Aufgaben eintreffen: t1, t2, t3 und t4, und diese nach dem Prinzip „Wer zuerst kommt, mahlt zuerst“ geplant werden, würden wir normalerweise davon ausgehen, dass t1, t2, t3, t4 in der CPU liegen, aber ist das nicht eine Vereinfachung? Denn wenn wir sagen würden, dass t1, OS, t2, OS, t3 OS t4 tatsächlich passieren würde? Wenn das stimmt, greift das Betriebssystem nach jedem Zeitabschnitt (auch bekannt als Quantum) ein, ist das dann nicht sehr ineffizient?

Antwort1

Nicht unbedingt. Normalerweise senkt der Scheduler die dynamische Priorität einer Aufgabe, nachdem ihr Quantum abgelaufen ist, aber wenn es immer noch die Aufgabe mit der höchsten Priorität ist, erhält sie eine andere. Im Allgemeinen gilt jedoch: Wenn die Aufgabe lange genug ausgeführt wurde, übernimmt das Betriebssystem und wechselt zu einer anderen. Warum sollte das ineffizient sein?

Antwort2

Ich glaube, dass in modernen Betriebssystemen die Zeitscheiben eine variable Länge haben. Der Scheduler wird nach der Bearbeitung jedes Interrupts (Tastatur, Maus, Touchscreen, Netzwerk, Festplattenübertragung abgeschlossen, ...) sowie der Timer-Interrupts aufgerufen.

Grob gesagt ist der Scheduler so konzipiert, dass er den gleitenden Durchschnitt der Zeit zwischen den blockierenden Systemaufrufen eines Prozesses schätzt. Bevor der Scheduler die Kontrolle an Prozess X übergibt, richtet er einen Timer ein, der zu einem Zeitpunkt unterbricht, der nur geringfügig länger ist als der gleitende Durchschnitt von Prozess X. Wenn der Scheduler die Zeit bis zum nächsten blockierenden Systemaufruf gut schätzt, wird ein großer Teil der Prozesse die CPU tatsächlich freiwillig freigeben, indem er einen blockierenden Systemaufruf ausführt.

Das Ziel besteht darin, interaktive Prozesse dazu zu bringen, ein wenig zu rechnen, einen blockierenden Systemaufruf zu tätigen, um einige Daten von einem langsamen Gerät anzufordern, und dann neu zu planen, sobald die Daten zurückgegeben werden. Wenn der Scheduler zwischen der Planung zweier Prozesse entscheiden muss, wird er, wenn alle anderen Bedingungen gleich sind, den Prozess bevorzugen, der häufiger blockierende Systemaufrufe tätigt. Dadurch wird tendenziell die Anzahl gleichzeitiger blockierender E/A-Anfragen maximiert, was den Gesamtsystemdurchsatz verbessert.

verwandte Informationen