Ist die Planung durch ein bestimmtes Betriebssystem eindeutig?

311
radhika

Ich wollte nur fragen, dass auf einem bestimmten Betriebssystem die Implementierung eines Scheduling-Algorithmus einzigartig ist. Nehmen wir an, ich implementiere Round-Robin in meinem Betriebssystem. Daher wird jede Task in meinem System auf der Grundlage der Zeit ausgeführt, die von festgelegt wurde der Scheduler oder nur, wenn die Ressourcen geringer sind, würden je nach Zeitscheibe nur die Threads oder Prozesse innerhalb des Systems ausgeführt.

Wenn Round-Robin-Algo verwendet wird, gibt es auch den Fall, dass SJF oder SRTF ebenfalls implementiert werden kann. Wie entscheidet dann der Scheduler, welche Algo-Instanz für die Ausführung eines bestimmten Threads oder Prozesses verwendet wird?

0
Bitte Korrekturlesen und Frage korrigieren. ctrl-alt-delor vor 7 Jahren 0

1 Antwort auf die Frage

0
robbat2

Bei "meinem Betriebssystem" schreibst du selbst eins? Was Sie wirklich fragen "Sind Planungsalgorithmusimplementierungen deterministisch?"

Und die Antwort darauf wäre: Nun, es kommt auf Ihre Implementierung an :-)

Sowohl für SJF (kürzeste Zeit zuerst, für diejenigen, die es nicht wissen) als auch für SRTF (kürzeste verbleibende Zeit zuerst) können Fälle auftreten, in denen mehrere Prozesse, die auf die Planung warten, identische Gewichte haben, und es liegt an der Scheduler-Implementierung, zwischen ihnen zu entscheiden.

Bei einem naiven Zeitplan kann immer derjenige mit der niedrigsten PID ausgewählt werden. Ein intelligenter Zeitplaner kann einen Prozess bestrafen, der scheinbar immer wiederkommt, und irgendwo in der Mitte befindet sich der Zeitplaner, der versucht, Round-Robin zu machen.

Wäre es möglich, einen wirklich deterministischen Scheduler zu schreiben? Ja, sicherlich eine Möglichkeit, aber ein bisschen Zufall bei der Auswahl des nächsten Prozesses (aus einer Reihe von zufälligen Optionen) zum Ausführen wird wahrscheinlich nicht schaden, insbesondere nicht. wenn es nicht deklarierte Deadlocks zwischen Prozessen gibt.