Shortest-Processing-Time

Shortest-Processing-Time

Shortest-Job-First (SJF) ist ein nonpräemptives Scheduling-Verfahren, das eingesetzt wird, um rechenwillige Threads oder/und Prozesse auf die physischen Prozessoren des Rechners zu verteilen.

Abwandlungen dieses Scheduling-Verfahrens sind

  • Shortest-Processing-Time (SPT) auch bekannt als Shortest-Remaining-Time-Next (SRTN)
Dabei handelt es sich um eine präemptive Version von SJF
  • Shortest-Process-Next (SPN)
Für interaktive Prozesse

Die Grundlage des SJF-Verfahrens ist eine Rangliste, ähnlich dem FIFO-Verfahren. Hierbei wird die Länge des CPU-Bursts (Rechenzeit) zur Bestimmung der Rangfolge herangezogen. Threads mit einer kurzen Burstlänge werden den längeren vorgezogen. Folglich kann es zu dem Problem führen, dass ein Thread mit einem langen CPU-Burst fast nie zum Zuge kommt. Allerdings stößt man leicht auf derartige Probleme, sobald man Prioritäten bildet. Sind mehrere CPU-Bursts gleich lang, kommt es dem FCFS-Verfahren gleich.

Gegenüber dem FCFS-Verfahren hat SJF den Vorteil, dass es den nachteiligen Konvoi-Effekt vermeidet. Weiterhin lässt es sich beweisen, dass SJF die Wartezeit auf ein Optimum bringt. Dem gegenüber steht der große Nachteil, dass das Verfahren praktisch nicht implementierbar ist, da die CPU-Burstlängen in der Regel unbekannt sind. Allerdings sind näherungsweise Implementierungen möglich.

Hinter der Approximation des SJF Verfahrens steckt eine simple Idee. Da die Länge des künftigen CPU-Bursts nicht bekannt ist, kann man beobachten, wie sich ein Thread in der Vergangenheit verhalten hat, in der Hoffnung er wird sich in der Zukunft ähnlich verhalten.

Dabei ist Burstgeschätzt(n + 1) = α · Burstgemessen(n) + (1 − α) · Burstgeschätzt(n) Mit der Veränderlichen α lässt sich die Gewichtung der vergangenen Messungen festlegen. Werte nahe der 1 weisen der Vergangenheit einen geringen Stellenwert zu.

SJF lässt sich präemptiv (dieser Algorithmus nennt sich dann Shortest Remaining Time Next) und nicht präemptiv implementieren. Wobei bei der nicht präemptiven Implementierung der Threadwechsel erst nach einer freiwilligen Abgabe durch den Thread selber oder nach einer blockierenden Operation (z. B. E/A) bzw. durch Ablauf der Lebensbedingung des Threads oder/und Prozesses stattfindet. D. h. es findet keine automatische Unterbrechung wie z. B. bei Round-Robin-Verfahren statt.

SJF kann auch für interaktive Prozesse abgewandelt werden. Man spricht dann vom Shortest-Process-Next. Als Alternative gibt es das preämtive Shortest-Remaing-Time, das auf Shortest-Process-Next basiert.

Beispiel

Prozess Ankunftszeit Dauer
A 0 4
B 2 7
C 3 6
D 9 2
E 16 1


Shortest Process Next, Beispiel

Beim fünften Abarbeitungsschritt stehen Prozess B und C bereit. Da C nur 6 Schritte, B jedoch 7 Schritte zur Fertigstellung benötigt, wird C zuerst ausgeführt.

Zu Zeitpunkt 11 wird der nur 2 Schritte lange Prozess D dem 7 Schritte Prozess B vorgezogen.

Zu Zeitpunkt 13 sind Prozesse A, C und D abgearbeitet. Prozess E gibt es noch nicht, so dass Prozess B ausgeführt werden kann.


Wikimedia Foundation.

Игры ⚽ Нужно сделать НИР?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Shortest-Remaining-Time — Ein Prozess Scheduler (Scheduler = Steuerprogramm) ist eine Arbitrationslogik, der die zeitliche Ausführung mehrerer Prozesse in Betriebssystemen regelt. Prozess Scheduler kann man grob in unterbrechende (preemptive) und nicht unterbrechende (non …   Deutsch Wikipedia

  • Shortest-Job-First — (SJF) ist ein nonpräemptives Scheduling Verfahren, das eingesetzt wird, um rechenwillige Threads oder/und Prozesse auf die physischen Prozessoren des Rechners zu verteilen. Abwandlungen dieses Scheduling Verfahrens sind Shortest Processing Time… …   Deutsch Wikipedia

  • Shortest-Process-Next — Shortest Job First (SJF) ist ein nonpräemptives Scheduling Verfahren, das eingesetzt wird, um rechenwillige Threads oder/und Prozesse auf die physischen Prozessoren des Rechners zu verteilen. Abwandlungen dieses Scheduling Verfahrens sind… …   Deutsch Wikipedia

  • Shortest-Job-Next — Shortest Job First (SJF) ist ein nonpräemptives Scheduling Verfahren, das eingesetzt wird, um rechenwillige Threads oder/und Prozesse auf die physischen Prozessoren des Rechners zu verteilen. Abwandlungen dieses Scheduling Verfahrens sind… …   Deutsch Wikipedia

  • Time — This article is about the measurement. For the magazine, see Time (magazine). For other uses, see Time (disambiguation). The flow of sand in an hourglass can be used to keep track of elapsed time. It also concretely represents the present as… …   Wikipedia

  • SPT-Regel — Shortest Processing Time; kürzeste Operationszeit; ⇡ Prioritätsregel im Rahmen der Maschinenbelegungsplanung: Der Auftrag mit der kürzesten Bearbeitungszeit (Operationszeit) auf der jeweiligen Betriebsmittelgruppe wird als Erster dort bearbeitet …   Lexikon der Economics

  • dispatching rules — Rules used to decide the priorities for fulfilling orders. Examples include: • first come first served (FCFS); • first in first out (FIFO) often seen as a fair rule, especially by the customer, but in practice it leads to overall inefficiency; •… …   Big dictionary of business and management

  • SPT — is an abbreviation for the following:*Shortest path tree *System of Phases in Translation an international translation system adopted by the 4th international translators conference held in Bruxel in 2003, that ensures the best translation… …   Wikipedia

  • SPT — Die Abkürzung SPT bezeichnet eine Zuteilungsstrategie zur Vergabe von Rechenzeit, siehe Shortest Processing Time Shortest Path Tree, ein Routingverfahren in Computernetzwerken, siehe MOSPF ein elektrisches Antriebssystem für Satelliten, siehe… …   Deutsch Wikipedia

  • Scheduling (production processes) — Scheduling is an important tool for manufacturing and engineering, where it can have a major impact on the productivity of a process. In manufacturing, the purpose of scheduling is to minimize the production time and costs, by telling a… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”