Wenn Sie kooperatives Multitasking verwenden und ein schlechtes Programm haben, dann haben Sie Recht.
In der realen Welt soll jedoch Folgendes passieren:
Kooperatives Multitasking: Ich nutze die CPU nicht für immer. Stattdessen gibt es einem anderen Programm nach einiger Zeit oder wenn es blockiert ist, eine Chance.
Die Antwort des Paulus beschreibt die letztere.
Präventives Multitasking (fast überall verwendet): Das Betriebssystem (nicht das Programm) gibt der CPU für kurze Zeit Zeit für ein Programm und nimmt es dann weg. Dies kann so einfach sein wie das Ausführen eines Timers und wenn dies abgelaufen ist, wird der Prozess angehalten und an das nächste wartende Profil / Programm übergeben.
Stellen Sie sich in Ihrem Fall ein Büro mit zwei Mitarbeitern und drei (oder mehr) Aufgaben vor. (Nennen wir sie Aufgabe-A, Aufgabe-B und Aufgabe-C).
Die erste Arbeit prüft die Anweisungen des Vorgesetzten, in denen es heißt:
- Stellen Sie einen Timer 10 Minuten. Wenn es nicht mehr funktioniert, setzen Sie es an das Ende der TODO-Liste und lesen Sie dieses Dokument weiter.
- Entfernen Sie als Nächstes den ersten Eintrag vom oberen Rand der TODO-Liste und beginnen Sie mit der Bearbeitung.
- Wiederholen.
Arbeiter 1 stellt den Timer ein und erhält die erste Aufgabe der TODO-Liste (in diesem Fall Aufgabe A).
Arbeiter 2 macht dasselbe: Er setzt einen Timer und holt das, was jetzt oben in der TODO-Liste steht. Da der Arbeiter 1 die Aufgabe A entfernt hat, beginnt der Arbeiter 2 nun mit Aufgabe B.
Zehn Minuten später geht der Timer aus. Arbeiter 1 hört auf, an Aufgabe A zu arbeiten und erhält die Anweisungen des Vorgesetzten. Diese geben an, dass die aktuelle Aufgabe am Ende der TODO-Liste steht. Wenn Sie die Anweisungen des Supervisors fortsetzen, wird der Timer neu gestartet und Sie können mit der Arbeit beginnen, die sich jetzt oben in der TODO-Liste befindet (dies ist Aufgabe C).
Worker 2 macht dasselbe und stoppt Task-B und beginnt mit dem Anfang der TODO-Liste (im Beispiel Task-A).
Usw.
Dies ist etwas vereinfacht. Aber es sollte Ihnen eine Vorstellung davon geben, wie zwei Stufen (Arbeiter) 100% der Zeit an drei oder mehr Aufgaben arbeiten können.
In echten Schedulern gibt es noch viel mehr Dinge. ZB Unterbrechungen (vergleiche es mit einem Telefon, das mitten in einer Aufgabe klingelt, und wie man damit umgeht), intelligente Zeitplanung (die gleiche Aufgabe demselben Arbeiter zu übertragen, wird wahrscheinlich dazu führen, dass sie schneller erledigt wird, da der Arbeiter bereits mit ihr vertraut ist) , I / O (Wenn ein Mitarbeiter ein Buch aus einer Bibliothek benötigt, wartet er nicht, bis der Timer abgelaufen ist, sondern fährt sofort mit der nächsten Aufgabe usw. fort.)