Hiram
Um das Konzept des präemptiven und nicht präemptiven Schedulings zu verstehen, ist es notwendig, die Umstände zu erwähnen, unter denen CPU-Scheduling-Entscheidungen stattfinden können. Diese vier Umstände sind unten angegeben.
(1) Wenn ein Prozess aus dem laufenden Zustand in den Wartezustand eintritt.
(2) Wenn ein Prozess aus dem Wartezustand in den Bereitschaftszustand eintritt.
(3) Wenn ein Prozess aus dem laufenden Zustand in den Bereitschaftszustand übergeht.
(4) Wenn ein Prozess endet.
Wenn wir diese vier Umstände beachten, kommen wir zu dem Punkt, dass ein neuer Prozess ausgeführt werden muss, da in den Umständen eins und vier keine Planungschancen bestehen, sondern zwischen den Umständen zwei und drei eine Auswahlmöglichkeit besteht.
Ein Scheduling-Schema wird als nicht präemptiv bezeichnet, wenn es unter den Umständen eins und vier stattfindet, und ein Scheduling-Schema wird als präemptiv bezeichnet, wenn es unter den Umständen 2 und 3 stattfindet. Solaris 2 und Windows 2000, wo beide Systeme Threads präemptiv planen, Prioritätsbasierte Planungsalgorithmen einschließlich Unterstützungen für die Echtzeit-Threads.
Die präemptive Planung hat einen Nachteil. Angenommen, zwei Prozesse teilen Daten. Ein Prozess aktualisiert die Daten und wird mitten in seiner Arbeit und dem Start des zweiten Prozesses vorweggenommen. Der zweite Prozess versucht, die Daten zu lesen, die von Prozess 1 aktualisiert wurden, aber Prozess 1 wurde vorzeitig beendet. Dies bedeutet, dass Prozess 2 versucht, auf die Daten zuzugreifen, die sich in einem inkonsistenten Zustand befinden.
Dämmerung
Es gibt vier Bedingungen, unter denen eine CPU-Planung stattfinden kann. Sie sind: 1. Wenn ein Prozess vom laufenden Zustand in den Wartezustand wechselt 2. Wenn ein Prozess vom laufenden Zustand in den Bereitschaftszustand wechselt 3. Wenn ein Prozess vom „Wartezustand in den Bereitschaftszustand“ wechselt 4. Wenn a Prozess beendet Wenn nur die Bedingungen 1 und 4 zutreffen, wird das Scheduling als nicht präemptiv bezeichnet. Alle anderen Schedulings sind präemptiv. Preemption bedeutet im Grunde, dass ein Prozess zwangsweise aus der CPU entfernt werden kann, auch wenn er die CPU nicht freigeben möchte, dh es ist wird noch ausgeführt, aber ein Prozess mit höherer Priorität benötigt die CPU.Sobald ein Prozess CPU- bekommt, ist der einfachste Ansatz, dem Prozess zu erlauben, die CPU weiter zu verwenden, bis er die CPU freiwillig abgibt, zB indem er einen IO-Transfer anfordert.E/A-Interrupts können die CPU von Zeit zu Zeit stehlen. Nach jedem Interrupt geht die Kontrolle an den Prozess zurück, der zum Zeitpunkt seines Auftretens ausgeführt wurde. Dies wird als nicht-präemptiver Ansatz bezeichnet. In einem präemptiven Schema kann ein laufender Prozess durch ein externes Ereignis anstatt durch seine eigene Aktion gezwungen werden, die CPU aufzugeben (und somit zur Bereitschaftsliste zurückzukehren). Solche externen Ereignisse können eine oder beide der folgenden Arten sein: • Ein Prozess mit höherer Priorität dringt von außen in das System ein. • Ein Prozess mit höherer Priorität, der sich im Wartezustand befand, wird bereit. Dies könnte das Ergebnis eines E/A-Interrupts sein, der einen wartenden Prozess in die Bereitschaftsliste verschiebt.ein laufender Prozess kann eher durch ein externes Ereignis als durch seine eigene Aktion gezwungen werden, die CPU auszugeben (und somit zur Bereitschaftsliste zurückzukehren). Solche externen Ereignisse können eine oder beide der folgenden Arten sein: • Ein Prozess mit höherer Priorität dringt von außen in das System ein. • Ein Prozess mit höherer Priorität, der sich im Wartezustand befand, wird bereit. Dies könnte das Ergebnis eines E/A-Interrupts sein, der einen wartenden Prozess in die Bereitschaftsliste verschiebt.ein laufender Prozess kann eher durch ein externes Ereignis als durch seine eigene Aktion gezwungen werden, die CPU auszugeben (und somit zur Bereitschaftsliste zurückzukehren). Solche externen Ereignisse können eine oder beide der folgenden Arten sein: • Ein Prozess mit höherer Priorität dringt von außen in das System ein. • Ein Prozess mit höherer Priorität, der sich im Wartezustand befand, wird bereit. Dies könnte das Ergebnis eines E/A-Interrupts sein, der einen wartenden Prozess in die Bereitschaftsliste verschiebt.Dies könnte das Ergebnis eines E/A-Interrupts sein, der einen wartenden Prozess in die Bereitschaftsliste verschiebt.Dies könnte das Ergebnis eines E/A-Interrupts sein, der einen wartenden Prozess in die Bereitschaftsliste verschiebt.
Jerel
Die meisten Betriebssysteme haben ungefähr drei verschiedene Arten von Schedulern, nämlich langfristige, mittelfristige und kurzfristige. Ein kurzfristiger Scheduler kann präventiv sein, was bedeutet, dass er in der Lage ist, Prozesse zwangsweise aus einer Zentraleinheit (CPU) zu entfernen, wenn er entscheidet, diese bestimmte CPU einem anderen Job zuzuweisen. Es könnte auch nicht präventiv sein, in welchem Fall der kurzfristige Scheduler nicht in der Lage sein wird, alle Jobprozesse von dieser bestimmten Zentraleinheit zu erzwingen.
Ein Job-Scheduler ist nichts anderes als eine Unternehmenssoftwareanwendung. Es ist für alle unbeaufsichtigten Hintergrundausführungen verantwortlich, die allgemein als Stapelverarbeitung bekannt sind. Heutige Job-Scheduler bieten in der Regel eine grafische Benutzeroberfläche sowie einen Single Point of Control, der sowohl zur Definition als auch zur Überwachung der Hintergrundausführungen in einem Computernetzwerk verwendet werden kann.
Kailey
CPU-Scheduler sind dafür verantwortlich, die CPU den Prozessen zuzuordnen, die sich im Speicher befinden und zur Ausführung bereit sind. Es werden zwei verschiedene Schemata verwendet, die das Scheduling vorschlägt.
Einer ist präemptiv und der andere ist nicht präemptiv. Wenn im
Preemptive-Schema ein Prozess von der CPU ausgeführt wird und ein anderer Prozess ankommt, der eine kürzere CPU-Burst-Zeit hat als die verbleibende Zeit für den laufenden Prozess, dann wird der bereits laufende Prozess vorzeitig beendet (blockiert) und der neue Prozess wird ausgeführt . Dieses Schema wird auch als Shortest Remaining Time First (SRTF) bezeichnet.
Beim
Non-Preemptive- Schema kann der Prozess nach erfolgter Zuweisung des Prozesses nicht in der Mitte blockiert werden.