CPU-Planung Algorithms in Operating Systems

โšก Intelligente Zusammenfassung

Die CPU-Planung bestimmt, welchen bereiten Prozess das Betriebssystem als nรคchstes ausfรผhrt.ping Der Prozessor wird ausgelastet und die Leistung durch Algorithmen wie First Come First Serve, Shortest Job First, Priority und Round Robin verbessert.

  • ๐Ÿ”„ Definition: Die CPU-Planung wรคhlt einen Prozess aus der Warteschlange aus, sobald die CPU ansonsten im Leerlauf wรคre.
  • ๏ธ Arten: Bei der prรคemptiven Planung kann ein laufender Prozess unterbrochen werden, wรคhrend bei der nicht-prรคemptiven Planung gewartet wird, bis dieser die CPU freigibt.
  • ๐Ÿ“Š Kriterien: Gute Algorithmen maximieren die CPU-Auslastung und den Durchsatz bei gleichzeitiger Minimierung von Warte-, Antwort- und Bearbeitungszeiten.
  • ๐Ÿงฎ Algorithms: FCFS, SJF, Shortest Remaining Time, Priority, Round Robin und Multilevel Queue eignen sich jeweils fรผr unterschiedliche Arbeitslasten.
  • ๐Ÿšฆ Dispatcher: Der Dispatcher fรผhrt den Kontextwechsel durch, der die CPU-Kontrolle an den ausgewรคhlten Prozess รผbergibt.
  • ๐Ÿค– KI-Perspektive: Maschinelles Lernen optimiert die Terminplanung, und Copilot hilft beim Codieren und Testen der Planungsalgorithmen.

CPU-Planung Algorithms in Operating Systems

Was ist CPU-Planung?

CPU-Planung Die CPU-Planung bestimmt, welcher Prozess die CPU zur Ausfรผhrung nutzt, wรคhrend ein anderer Prozess wartet. Ihre Hauptaufgabe ist es, sicherzustellen, dass das Betriebssystem bei Leerlauf der CPU mindestens einen der in der Warteschlange befindlichen Prozesse zur Ausfรผhrung auswรคhlt. Diese Auswahl trifft der CPU-Scheduler, der einen der im Speicher befindlichen, ausfรผhrungsbereiten Prozesse auswรคhlt.

Arten der CPU-Planung

Hier sind zwei Arten von Terminplanungsmethoden:

Arten der CPU-Planung

Prรคventive Planung

Bei der prรคemptiven Aufgabenplanung werden die Aufgaben meist anhand ihrer Prioritรคten zugewiesen. Manchmal ist es wichtig, eine Aufgabe mit hรถherer Prioritรคt vor einer anderen Aufgabe mit niedrigerer Prioritรคt auszufรผhren, selbst wenn die Aufgabe mit niedrigerer Prioritรคt noch lรคuft. Die Aufgabe mit niedrigerer Prioritรคt wird fรผr eine gewisse Zeit angehalten und fortgesetzt, sobald die Aufgabe mit hรถherer Prioritรคt ihre Ausfรผhrung abgeschlossen hat.

Nicht-prรคventive Planung

Bei dieser Scheduling-Methode wird die CPU einem bestimmten Prozess zugewiesen. Der Prozess, der die CPU belegt, gibt sie entweder durch Kontextwechsel oder durch Beendigung wieder frei. Es ist die einzige Methode, die auf verschiedenen Hardwareplattformen eingesetzt werden kann, da sie im Gegensatz zum prรคemptiven Scheduling keine spezielle Hardware (z. B. einen Timer) benรถtigt.

Wann ist die Terminplanung prรคemptiv bzw. nicht-prรคemptiv?

Um festzustellen, ob die Terminplanung prรคemptiv oder nicht-prรคemptiv ist, berรผcksichtigen Sie diese vier Parameter:

  1. Ein Prozess wechselt vom laufenden in den wartenden Zustand.
  2. Ein bestimmter Prozess wechselt vom Zustand โ€žLรคuftโ€œ in den Zustand โ€žBereitโ€œ.
  3. Ein bestimmter Prozess wechselt vom Wartezustand in den Bereitschaftszustand.
  4. Ein Prozess hat seine Ausfรผhrung abgeschlossen und wird beendet.

Wenn nur die Bedingungen 1 und 4 zutreffen, spricht man von einer nicht-prรคemptiven Terminplanung. Alle anderen Terminplanungssituationen sind prรคemptiv.

Wichtige Begriffe der CPU-Planung

  • Burstzeit/Ausfรผhrungszeit: Die Zeit, die ein Prozess zur vollstรคndigen Ausfรผhrung benรถtigt. Sie wird auch Laufzeit genannt.
  • Ankunftszeit: Der Zeitpunkt, an dem ein Prozess in den Bereitschaftszustand eintritt.
  • Endzeit: Der Zeitpunkt, an dem ein Prozess abgeschlossen ist und das System verlรคsst.
  • Multiprogrammierung: Eine Reihe von Programmen, die gleichzeitig im Speicher vorhanden sein kรถnnen.
  • Arbeitsplรคtze: Ein Programmtyp ohne jegliche Benutzerinteraktion.
  • Benutzer: Eine Art Programm, das Benutzerinteraktion erfordert.
  • Verarbeiten: Die Referenz, die sowohl fรผr eine Stelle als auch fรผr einen Benutzer verwendet wird.
  • CPU/IO-Burst-Zyklus: Charakterisiert die Prozessausfรผhrung, die zwischen CPU- und E/A-Aktivitรคt wechselt. Die CPU-Zeiten sind รผblicherweise kรผrzer als die E/A-Zeiten.

CPU-Planungskriterien

Ein CPU-Planungsalgorithmus versucht Folgendes zu maximieren und zu minimieren:

CPU-Planungskriterien

Maximieren

CPU-Auslastung: Die CPU-Auslastung ist die Hauptaufgabe des Betriebssystems, die CPU optimal auszulasten. Sie kann zwischen 0 und 100 Prozent liegen. Bei einem Echtzeitbetriebssystem (RTOS) variiert sie jedoch zwischen 40 Prozent fรผr ein Low-Level-System und 90 Prozent fรผr ein High-Level-System.

Durchsatz: Die Anzahl der Prozesse, die pro Zeiteinheit ihre Ausfรผhrung abschlieรŸen, wird als Durchsatz bezeichnet. Wenn die CPU also mit der Ausfรผhrung eines Prozesses beschรคftigt ist, wird Arbeit verrichtet, und die pro Zeiteinheit geleistete Arbeit wird als Durchsatz bezeichnet.

Minimieren

Wartezeit: Die Wartezeit ist die Zeitspanne, die ein bestimmter Prozess in der Warteschlange warten muss.

Reaktionszeit: Es handelt sich um die Zeitspanne von der Einreichung der Anfrage bis zum Erhalt der ersten Antwort.

Seitenwechsel: Die Durchlaufzeit ist die Zeitspanne, die zur Ausfรผhrung eines bestimmten Prozesses benรถtigt wird. Sie umfasst die Wartezeit fรผr den Speicherzugriff, die Wartezeit in der Warteschlange und die Ausfรผhrungszeit auf der CPU. Die Zeitspanne zwischen der Prozessรผbermittlung und dem Abschluss des Prozesses ist die Durchlaufzeit.

Intervall-Timer

Die Timer-Unterbrechung ist eine Methode, die eng mit der Vorbelegung zusammenhรคngt. Wenn ein bestimmter Prozess die CPU-Zuteilung erhรคlt, kann ein Timer auf ein bestimmtes Intervall eingestellt werden. Sowohl die Timer-Unterbrechung als auch die Vorbelegung zwingen einen Prozess dazu, die CPU zurรผckzugeben, bevor sein CPU-Burst abgeschlossen ist.

Die meisten Betriebssysteme mit mehreren Programmen verwenden eine Art Timer, um zu verhindern, dass ein Prozess das System fรผr immer blockiert.

Was ist Dispatcher?

Der Dispatcher ist ein Modul, das die CPU-Steuerung fรผr den Prozess รผbernimmt. Er muss schnell sein, um bei jedem Kontextwechsel ausgefรผhrt werden zu kรถnnen. Die Dispatch-Latenz ist die Zeit, die der CPU-Scheduler benรถtigt, um einen Prozess zu beenden und einen anderen zu starten.

Vom Disponenten ausgefรผhrte Funktionen:

  • Kontextwechsel.
  • Wechsel in den Benutzermodus.
  • An die richtige Stelle im neu geladenen Programm wechseln.

Arten der CPU-Planung Algorithms

Es gibt hauptsรคchlich sechs Arten von Prozessplanungsalgorithmen:

  1. Wer zuerst kommt, mahlt zuerst (FCFS)
  2. Shortest-Job-First (SJF)-Planung
  3. Kรผrzeste verbleibende Zeit
  4. Prioritรคtsplanung
  5. Round-Robin-Planung
  6. Mehrstufige Warteschlangenplanung

Planung Algorithms

Planung Algorithms

Wer zuerst kommt, malt zuerst

FCFS steht fรผr Wer zuerst kommt, malt zuerstEs handelt sich um den einfachsten und unkompliziertesten CPU-Scheduling-Algorithmus. Bei diesem Algorithmus erhรคlt der Prozess, der die CPU anfordert, diese zuerst. Dieses Scheduling-Verfahren kann mithilfe einer FIFO-Warteschlange umgesetzt werden.

Sobald ein Prozess in die Warteschlange eintritt, wird sein Prozesskontrollblock (PCB) mit dem letzten Prozess der Warteschlange verknรผpft. Wenn die CPU frei wird, sollte sie daher dem Prozess am Anfang der Warteschlange zugewiesen werden.

Merkmale der FCFS-Methode

  • Es handelt sich um einen nicht-prรคemptiven Scheduling-Algorithmus.
  • Auftrรคge werden immer nach dem Prinzip โ€žWer zuerst kommt, mahlt zuerstโ€œ ausgefรผhrt.
  • Es ist einfach zu implementieren und zu verwenden.
  • Allerdings weist diese Methode eine schlechte Leistung auf und die allgemeine Wartezeit ist recht hoch.

Kรผrzeste verbleibende Zeit

SRT steht fรผr โ€žShortest Remaining Timeโ€œ (kรผrzeste verbleibende Zeit). Es ist auch als prรคemptives Scheduling (SJF) bekannt. Bei dieser Methode wird der Prozess derjenigen Aufgabe zugewiesen, die am nรคchsten an ihrer Fertigstellung ist. Dadurch wird verhindert, dass ein neuerer, bereiter Prozess die Fertigstellung eines รคlteren Prozesses verzรถgert.

Merkmale der SRT-Planungsmethode

  • Diese Methode wird hauptsรคchlich in Batch-Umgebungen angewendet, in denen kurzen Auftrรคgen Vorrang eingerรคumt werden muss.
  • Dies ist keine ideale Methode zur Implementierung in einem gemeinsam genutzten System, in dem die benรถtigte CPU-Zeit unbekannt ist.
  • Jedem Prozess ist die Lรคnge seines nรคchsten CPU-Bursts zugeordnet, sodass das Betriebssystem diese Lรคngen nutzt, um den Prozess mit der kรผrzestmรถglichen Zeit einzuplanen.

Prioritรคtsbasierte Planung

Prioritรคtsplanung ist eine Methode zur prioritรคtsbasierten Prozessplanung. Dabei wรคhlt der Scheduler die zu bearbeitenden Aufgaben entsprechend ihrer Prioritรคt aus.

Die Prioritรคtsplanung unterstรผtzt das Betriebssystem bei der Prioritรคtsvergabe. Prozesse mit hรถherer Prioritรคt werden zuerst ausgefรผhrt, wรคhrend Aufgaben mit gleicher Prioritรคt nach dem Round-Robin- oder FCFS-Prinzip abgearbeitet werden. Die Prioritรคt kann anhand von Speicherbedarf, Zeitanforderungen und anderen Faktoren festgelegt werden.

Round-Robin-Planung

Round Robin ist einer der รคltesten und einfachsten Scheduling-Algorithmen. Sein Name leitet sich vom Round-Robin-Prinzip ab, bei dem jeder Teilnehmer abwechselnd die gleiche Menge an Ressourcen erhรคlt. Er wird hauptsรคchlich fรผr das Scheduling in Multitasking-Systemen eingesetzt. Diese Methode trรคgt dazu bei, dass Prozesse ohne Wartezeiten ausgefรผhrt werden.

Merkmale der Round-Robin-Planung

  • Round Robin ist ein hybrides, taktgesteuertes Modell.
  • Der fรผr die Bearbeitung einer bestimmten Aufgabe vorgesehene Zeitrahmen sollte minimal sein. Er kann jedoch je nach Prozess variieren.
  • Es verhรคlt sich wie ein Time-Sharing-System, das auf jeden Prozess innerhalb eines bestimmten Zeitlimits reagiert.

Kรผrzester Job zuerst

SJF (Shortest Job First) ist ein Scheduling-Algorithmus, bei dem der Prozess mit der kรผrzesten Ausfรผhrungszeit als nรคchster Prozess ausgewรคhlt wird. Dieses Scheduling-Verfahren kann prรคemptiv oder nicht-prรคemptiv sein. Es reduziert die durchschnittliche Wartezeit fรผr andere, auf die Ausfรผhrung wartende Prozesse erheblich.

Merkmale der SJF-Planung

  • Jedem Auftrag ist eine Zeiteinheit fรผr die Erledigung zugeordnet.
  • Bei dieser Methode wird, wenn die CPU verfรผgbar ist, der nรคchste Prozess oder Auftrag mit der kรผrzesten Ausfรผhrungszeit zuerst ausgefรผhrt.
  • Die Umsetzung erfolgt mit einer nicht-prรคemptiven Strategie.
  • Dieser Algorithmus eignet sich fรผr die Stapelverarbeitung, bei der das Warten auf den Abschluss der Auftrรคge nicht kritisch ist.
  • Es verbessert die Arbeitsleistung, indem es zuerst kรผrzere Auftrรคge ausfรผhrt, die meist eine kรผrzere Bearbeitungszeit haben.

Planung von Warteschlangen auf mehreren Ebenen

Dieser Algorithmus teilt die Warteschlange fรผr bereite Prozesse in mehrere separate Warteschlangen auf. Dabei werden Prozesse anhand spezifischer Prozesseigenschaften, wie z. B. Prozessprioritรคt, SpeichergrรถรŸe usw., einer Warteschlange zugeordnet.

Dies ist jedoch kein unabhรคngiger Scheduling-Algorithmus, da er andere Algorithmen benรถtigt, um die Jobs zu planen.

Merkmale der mehrstufigen Warteschlangenplanung

  • Fรผr Prozesse mit gemeinsamen Eigenschaften sollten mehrere Warteschlangen gefรผhrt werden.
  • Jede Warteschlange kann ihren eigenen separaten Planungsalgorithmus haben.
  • Jedem Warteschlangenbereich werden Prioritรคten zugewiesen.

Der Zweck eines Scheduling-Algorithmus

Hier sind die Grรผnde fรผr die Verwendung eines Planungsalgorithmus:

  • Die CPU nutzt Scheduling, um ihre Effizienz zu verbessern.
  • Es hilft Ihnen dabei, Ressourcen auf konkurrierende Prozesse zu verteilen.
  • Die maximale Auslastung der CPU kann durch Multiprogrammierung erreicht werden.
  • Die auszufรผhrenden Prozesse werden in der Warteschlange gespeichert.

Hรคufig gestellte Fragen

Es gibt keinen allgemein besten Algorithmus. Shortest Job First (SJF) bietet die kรผrzeste durchschnittliche Wartezeit und ist nachweislich optimal, benรถtigt aber bekannte Ausfรผhrungszeiten und kann lange Auftrรคge vernachlรคssigen. Round Robin ist fรผr Time-Sharing-Systeme fairer.

Ein Prozess, der aufgrund von CPU-Verhungern unbegrenzt warten muss, weil Prozesse mit hรถherer Prioritรคt oder kรผrzerer Ausfรผhrungszeit immer zuerst die CPU erhalten, ist ein hรคufiges Problem. Dies tritt oft bei der Prozessplanung mit Prioritรคt und dem kรผrzesten Job zuerst auf, da lange oder niedrigpriorisierte Prozesse unter Umstรคnden nie ausgefรผhrt werden.

Die sogenannte โ€žAgingโ€œ-Technik erhรถht schrittweise die Prioritรคt von Prozessen, die lange gewartet haben. Dadurch wird ein Verhungern von Prozessen bei prioritรคtsbasierter Ablaufplanung verhindert, da selbst ein Prozess mit niedriger Prioritรคt schlieรŸlich eine ausreichend hohe Prioritรคt erreicht, um ausgefรผhrt zu werden.

Der Kontextwechsel speichert den Zustand des aktuellen Prozesses und lรคdt den Zustand eines anderen Prozesses aus dessen Prozesskontrollliste (PCB), sodass die Ausfรผhrung spรคter fortgesetzt werden kann. Es handelt sich dabei um reinen Planungsaufwand, der vom Dispatcher bei jedem Prozesswechsel bewรคltigt wird.

Der langfristige (Job-)Scheduler steuert, wie viele Prozesse in die Warteschlange aufgenommen werden und legt den Grad der Multiprogrammierung fest. Der kurzfristige (CPU-)Scheduler wรคhlt den nรคchsten auszufรผhrenden Prozess aus und wird deutlich hรคufiger ausgefรผhrt.

Linux verwendet den EEVDF-Scheduler, der den Completely Fair Scheduler (CFS) im Kernel 6.6 ersetzt hat. Windows verwendet einen prรคemptiven, prioritรคtsbasierten Scheduler mit Round-Robin-Zeitscheiben innerhalb jeder Prioritรคtsstufe.

Maschinelle Lernmodelle prognostizieren Prozessspitzenzeiten und optimieren oder wรคhlen Planungsstrategien aus, um Wartezeiten und Energieverbrauch zu reduzieren. Diese KI-gestรผtzten Planungssysteme werden fรผr Rechenzentren, Cloud-Server und Echtzeitsysteme untersucht.

Ja. GitHub Copilot kann FCFS-, SJF-, Prioritรคts- und Round-Robin-Code sowie Gantt-Diagramme und Wartezeitberechnungen generieren. รœberprรผfen Sie stets die Sonderfรคlle, die Regeln zur Auflรถsung von Gleichstรคnden und die Formeln zur Berechnung der durchschnittlichen Wartezeit, bevor Sie sich auf die Ergebnisse verlassen.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: