Betriebssystemtheorie/ Scheduling/ Modell für Scheduling

Aus Wikibooks


Das gängige Modell, mit dem Scheduler beschrieben werden, besteht aus 3 Komponenten.

Job
Ein Job ist eine einzelne Aufgabe, die vom Scheduler bedient werden will. Jobs werden vom Betriebssystem durch Threads implementiert.
Ressource
Eine Ressource ist ein Betriebsmittel und wird vom Scheduler vergeben.
Algorithmus
Ein Algorithmus implementiert die Strategie eines Schedulers. Er legt fest, welche Jobs in welcher Reihenfolge eine Ressource bekommen und fungiert somit als Bindeglied zwischen den Beiden.

Obwohl nicht absolut notwendig, soll zur Vollständigkeit hier auch noch der Begriff des Tasks definiert werden.

Task
Tasks sind Gruppen von Jobs. Man kann jeden Task im System als separates Problem betrachten, welches unabhängig von allen anderen Tasks besteht. Tasks werden vom Betriebssystem durch Prozesse implementiert.

In diesem Modell gelten alle Jobs ständig als rechenwillig. Um gerechnet zu werden, benötigt ein Job eine bestimmte Menge an Ressourcen. Die Ressourcen werden vom Scheduling-Algorithmus an die Jobs verteilt. Genau dann, wenn ein Job alle nötigen Ressourcen hält, folgt daraus, dass er ausgeführt wird. Dabei ist es unerheblich, ob er den Prozessor vor einer anderen Ressource bekommt.

Aus Gründen der Effizienz ist es jedoch sinnvoll, den Prozessor als letzte Ressource zu verteilen. Der Begriff Busy Waiting bezeichnet einen Zustand, in dem ein Job einen Prozessor hält, aber nicht ausgeführt wird, da er auf eine andere Ressource warten muss. Verständlicherweise sollte dieser Zustand vermieden werden. Nicht nur, dass der Job Rechenzeit verschwendet, er blockiert auch den Prozessor für die Jobs, die seine fehlenden Ressourcen halten.

Die Theorie des Scheduling existiert unabhängig von Betriebssystemen. Obwohl eine einheitliche Nomenklatur schön wäre, werden hier andere Begriffe genutzt. Im weiteren Kapitel werden deshalb die Begriffe Ressource, Job und Task benutzt, statt ihrer System-internen Umsetzungen.