Heim > häufiges Problem > Die kleinste Einheit der Prozessorplanung

Die kleinste Einheit der Prozessorplanung

(*-*)浩
Freigeben: 2019-10-26 10:59:08
Original
10075 Leute haben es durchsucht

Die Grundeinheit der CPU-Planung ist der Thread. Ein Thread ist die kleinste Einheit, mit der das Betriebssystem die Operationsplanung durchführen kann.

Die kleinste Einheit der Prozessorplanung

Ein Thread bezieht sich auf einen einzelnen sequenziellen Kontrollfluss in einem Prozess. In einem Prozess können mehrere Threads gleichzeitig ausgeführt werden, und jeder Thread führt parallel unterschiedliche Aufgaben aus. In Unix System V und SunOS werden sie auch als Lightweight-Prozesse bezeichnet. Lightweight-Prozesse beziehen sich jedoch eher auf Kernel-Threads, während Benutzer-Threads als Threads bezeichnet werden. (Empfohlenes Lernen: Web-Frontend-Video-Tutorial)

CPU-Planer

Jedes Mal, wenn die CPU im Leerlauf ist, muss der Vorgang ausgewählt werden Die Bereitschaftswarteschlange stellt einen Prozess dar, der ausgeführt werden soll. Die Prozessauswahl erfolgt durch einen Kurzzeitplaner oder CPU-Scheduler. Der Scheduler wählt einen ausführbaren Prozess aus dem Kernel aus und weist ihm die CPU zu.

Die Bereitschaftswarteschlange muss keine FIFO-Warteschlange (First-In-First-Out) sein. Bereite Warteschlangen können als FIFO-Warteschlangen, Prioritätswarteschlangen, Bäume oder einfache ungeordnete verknüpfte Listen implementiert werden. Vom Konzept her werden jedoch alle Prozesse in der Bereitschaftswarteschlange in die Warteschlange gestellt, um auf ihre Ausführung auf der CPU zu warten. Die Datensätze in der Warteschlange sind normalerweise Prozesskontrollblöcke (PCBs).

Präventive Planung

CPU-Planungsentscheidungen können in den folgenden 4 Umgebungen getroffen werden:

Wenn sich ein Prozess vom laufenden Prozess ändert state Wechselt in einen Wartezustand (z. B. eine E/A-Anfrage oder der Aufruf von „wait“, um auf die Beendigung eines untergeordneten Prozesses zu warten).

Wenn ein Prozess vom laufenden Zustand in den Bereitschaftszustand wechselt (z. B. wenn ein Interrupt auftritt)

Wenn ein Prozess vom Wartezustand in den Bereitschaftszustand wechselt (z. B. I/O abgeschlossen)

Wenn ein Prozess beendet wird

Für die Fälle 1 und 4 gibt es keine andere Wahl als die Planung. Ein neuer Prozess (falls bereits ein Prozess in der Bereitschaftswarteschlange vorhanden ist) muss zur Ausführung ausgewählt werden. Für die Fälle 2 und 3 gibt es jedoch eine Wahlmöglichkeit.

Wenn die Planung nur in der 1. und 4. Situation erfolgen kann, wird der Planungsplan als nichtpräventiv oder kooperativ bezeichnet; andernfalls wird der Planungsplan als präemptiv bezeichnet. Bei der nicht präemptiven Planung nutzt der Prozess, sobald die CPU einem Prozess zugewiesen ist, immer die CPU, bis der Prozess beendet wird oder in einen Wartezustand wechselt.

Interrupts können jederzeit auftreten und können vom Kernel nicht immer ignoriert werden. Daher müssen die von Interrupts betroffenen Codesegmente vor gleichzeitigem Zugriff geschützt werden. Um zu verhindern, dass mehrere Prozesse gleichzeitig auf diese Codesegmente zugreifen, müssen Interrupts beim Betreten deaktiviert und Interrupts beim Verlassen wieder aktiviert werden.

Das obige ist der detaillierte Inhalt vonDie kleinste Einheit der Prozessorplanung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage