Die Auswahl, welcher Prozess die CPU -Zeit als nächstes erhält, ist eine komplexe Entscheidung, die der Scheduler des Betriebssystems getroffen hat. Mehrere Eigenschaften von Prozessen beeinflussen diese Entscheidung, und die relative Bedeutung dieser Eigenschaften hängt von der verwendeten Planungsalgorithmus ab. Hier sind einige wichtige Eigenschaften:
* Priorität: Jedem Prozess wird häufig eine Prioritätsniveau zugewiesen. Prozesse mit höherer Priorität erhalten im Allgemeinen die CPU-Zeit vor der niedrigeren Priorität. Prioritäten können statisch (z. B. basierend auf dem Prozesstyp) oder dynamisch (z. B. auf der Grundlage der Ressourcennutzung oder der Wartezeit) zugewiesen werden.
* CPU -Burstzeit (oder geschätzte CPU -Burst -Zeit): Kurz- und Kurzzeitprozesse werden häufig bevorzugt, um die durchschnittliche Wartezeit zu minimieren (wie bei der ersten Planung von kürzester Arbeiten). Die genaue Vorhersage der Burst -Zeit kann jedoch eine Herausforderung sein.
* Ankunftszeit: Die Zeit, in der ein Prozess bereit ist, um die Planungsentscheidungen zu beeinflussen. Einige Algorithmen priorisieren Prozesse, die am längsten gewartet haben (z. B. Erstkomente, erstklassig).
* Speicheranforderungen: Prozesse mit großen Speicheranforderungen können bestraft werden, wenn das Speicher knapp ist, da die CPU zu einem übermäßigen Austausch oder Paging führen kann und das gesamte System verlangsamt.
* I/O gebunden gegen CPU gebunden: I/O-gebundene Prozesse warten häufig auf E/A-Operationen (Disk-Zugriff, Netzwerkkommunikation), während CPU-gebundene Prozesse die CPU ständig nutzen. Scheduler bevorzugen häufig I/O/O-gebundene Prozesse, um die Reaktionsfähigkeit des Gesamtsystems zu verbessern, da sie die CPU häufig freigeben.
* Alterung: Die Wartezeit eines Prozesses könnte seine Priorität im Laufe der Zeit erhöhen. Dieses "Altern" verhindert, dass Prozesse auf unbestimmte Zeit hungern.
* Prozesszustand: Nur Prozesse im "Ready" -Zustand sind für die CPU -Zuordnung berechtigt. Prozesse, die auf E/A oder anderen Ereignissen blockiert sind, werden nicht berücksichtigt.
* Ressourcenverbrauch (einschließlich CPU -Nutzung): Einige Scheduler betrachten die Geschichte eines Prozesses zur CPU -Nutzung. Prozesse, die die CPU abgeholt haben, könnten vorübergehend entbilligt werden, um die Fairness zu gewährleisten.
* Echtzeitbeschränkungen: Für Echtzeit-Betriebssysteme sind Fristen von entscheidender Bedeutung. Prozesse mit bevorstehenden Fristen haben eine höhere Priorität, auch wenn dies bedeutet, andere Prozesse vorzugehen.
Die spezifische Kombination dieser Eigenschaften und ihre Gewichtung bestimmt das Verhalten des Planungsalgorithmus. Verschiedene Algorithmen wie Round Robin, kürzeste Aufgabe zuerst, Prioritätsplanung, mehrstufige Warteschlangenplanung und andere priorisieren diese Eigenschaften unterschiedlich, um unterschiedliche Ziele zu erreichen (z. B. Durchsatz maximieren, die Wartezeit minimieren, gerechnet und gerechnet und faire Sicherheiten, Einschränken von Termine).