<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Shortest-Job-Next</id>
	<title>Shortest-Job-Next - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Shortest-Job-Next"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Shortest-Job-Next&amp;action=history"/>
	<updated>2026-05-28T21:41:59Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Shortest-Job-Next&amp;diff=51417&amp;oldid=prev</id>
		<title>imported&gt;Esther Phalcard: nicht präemptiv vs nicht-präemptiv verdeutlicht</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Shortest-Job-Next&amp;diff=51417&amp;oldid=prev"/>
		<updated>2025-10-13T16:25:55Z</updated>

		<summary type="html">&lt;p&gt;nicht präemptiv vs nicht-präemptiv verdeutlicht&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Shortest-Job-Next&amp;#039;&amp;#039;&amp;#039; (SJN) oder &amp;#039;&amp;#039;&amp;#039;Shortest-Job-First&amp;#039;&amp;#039;&amp;#039; (SJF) ist ein [[Scheduling#Präemptive und nicht-präemptive Verfahren|nonpräemptives]] [[Prozess-Scheduler|Scheduling]]-Verfahren, das eingesetzt wird, um rechenwillige [[Thread (Informatik)|Threads]] oder/und [[Prozess (Informatik)|Prozesse]] auf die physischen [[Prozessor]]en des [[Computer|Rechners]] zu verteilen.&amp;lt;ref name=&amp;quot;ostep-1&amp;quot;&amp;gt;{{Internetquelle |autor=Remzi H. Arpaci-Dusseau, Andrea C. Arpaci-Dusseau |url=https://pages.cs.wisc.edu/~remzi/OSTEP/cpu-sched.pdf |titel=Operating Systems: Three Easy Pieces |hrsg=Arpaci-Dusseau Books |datum=2014 |abruf=2021-01-09 |format=PDF; 116&amp;amp;nbsp;kB}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Abwandlungen dieses Scheduling-Verfahrens sind&lt;br /&gt;
* Shortest-Processing-Time (&amp;#039;&amp;#039;&amp;#039;SPT&amp;#039;&amp;#039;&amp;#039;) auch bekannt als Shortest-Remaining-Time-Next (&amp;#039;&amp;#039;&amp;#039;SRTN&amp;#039;&amp;#039;&amp;#039;)&lt;br /&gt;
::Dabei handelt es sich um eine [[Scheduling#Präemptive und nicht-präemptive Verfahren|präemptive]] Version von SJF&lt;br /&gt;
* Shortest-Process-Next (&amp;#039;&amp;#039;&amp;#039;SPN&amp;#039;&amp;#039;&amp;#039;)&lt;br /&gt;
::Für interaktive Prozesse&lt;br /&gt;
&lt;br /&gt;
Die Grundlage des SJF-Verfahrens ist eine Rangliste, ähnlich dem [[First In – First Out|FIFO]]-Verfahren. Hierbei wird die Länge des [[CPU-Burst]]s (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.&lt;br /&gt;
Sind mehrere CPU-Bursts gleich lang, kommt es dem [[First In – First Out|FCFS]]-Verfahren gleich.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
Demgegenü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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Dabei ist Burst&amp;lt;sub&amp;gt;geschätzt&amp;lt;/sub&amp;gt;(&amp;#039;&amp;#039;n&amp;#039;&amp;#039; + 1) = α · Burst&amp;lt;sub&amp;gt;gemessen&amp;lt;/sub&amp;gt;(&amp;#039;&amp;#039;n&amp;#039;&amp;#039;) + (1 − α) · Burst&amp;lt;sub&amp;gt;geschätzt&amp;lt;/sub&amp;gt;(&amp;#039;&amp;#039;n&amp;#039;&amp;#039;)&lt;br /&gt;
Mit der Veränderlichen α lässt sich die Gewichtung der vergangenen Messungen festlegen. Werte nahe der 1 weisen der Vergangenheit einen geringen Stellenwert zu.&lt;br /&gt;
&lt;br /&gt;
SJF lässt sich [[Präemptives Multitasking|präemptiv]] (dieser [[Algorithmus]] wird Shortest Remaining Time Next genannt) und nicht-präemptiv [[Implementierung|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.&amp;amp;nbsp;B. E/A) bzw. durch Ablauf der Lebensbedingung des Threads oder/und Prozesses stattfindet. D.&amp;amp;nbsp;h., es findet keine automatische Unterbrechung wie z.&amp;amp;nbsp;B. bei [[Round Robin (Informatik)|Round-Robin]]-Verfahren statt.&lt;br /&gt;
&lt;br /&gt;
SJF kann auch für interaktive Prozesse abgewandelt werden. Man spricht dann vom Shortest-Process-Next. Als Alternative gibt es das präemptive Shortest-Remaing-Time, das auf Shortest-Process-Next basiert.&lt;br /&gt;
&lt;br /&gt;
== Beispiel ==&lt;br /&gt;
&lt;br /&gt;
 {|&lt;br /&gt;
 | Prozess&lt;br /&gt;
 | Ankunftszeit&lt;br /&gt;
 | Dauer&lt;br /&gt;
 |-&lt;br /&gt;
 | A&lt;br /&gt;
 | 0&lt;br /&gt;
 | 4&lt;br /&gt;
 |-&lt;br /&gt;
 | B&lt;br /&gt;
 | 2&lt;br /&gt;
 | 7&lt;br /&gt;
 |-&lt;br /&gt;
 | C&lt;br /&gt;
 | 3&lt;br /&gt;
 | 6&lt;br /&gt;
 |-&lt;br /&gt;
 | D&lt;br /&gt;
 | 9&lt;br /&gt;
 | 2&lt;br /&gt;
 |-&lt;br /&gt;
 | E&lt;br /&gt;
 | 16&lt;br /&gt;
 | 1&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
[[Datei:Spn.svg|links|mini|250px|Shortest Process Next, Beispiel]]&lt;br /&gt;
&lt;br /&gt;
Beim&lt;br /&gt;
fünften Abarbeitungsschritt ist Prozess A abgeschlossen und es stehen Prozess B und C zur Auswahl bereit. Da C nur 6&lt;br /&gt;
Schritte, B jedoch 7 Schritte zur Fertigstellung benötigt, wird C&lt;br /&gt;
zuerst ausgeführt.&lt;br /&gt;
&lt;br /&gt;
Zu Zeitpunkt 11 wird der nur 2 Schritte lange Prozess D dem 7 Schritte Prozess B vorgezogen.&lt;br /&gt;
&lt;br /&gt;
Zu Zeitpunkt 13 sind Prozesse A, C und D abgearbeitet. Prozess E gibt es noch nicht, so dass Prozess B ausgeführt werden kann.&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Betriebssystemtheorie]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Esther Phalcard</name></author>
	</entry>
</feed>