🖥️ CPU-Scheduling — FCFS, SJF, Round Robin
Planen Sie Prozesse auf einer CPU mit FCFS-, SJF-, Prioritäts- und Round-Robin-Strategien. Ein animiertes Gantt-Diagramm zeigt Kontextwechsel, während durchschnittliche Warte- und Durchlaufzeiten live aktualisiert werden.
Über diese Simulation
Diese Simulation modelliert, wie ein Betriebssystem eine einzelne CPU unter mehreren konkurrierenden Prozessen aufteilt. Jeder Prozess hat eine Ankunftszeit, eine CPU-Burstlänge und eine Priorität. Der Scheduler berechnet eine vollständige Ausführungs-Zeitachse Zeiteinheit für Zeiteinheit unter der gewählten Strategie und stellt sie dann als animiertes Gantt-Diagramm dar. Aus dieser Zeitachse leitet er die Fertigstellungs-, Durchlauf- und Wartezeiten jedes Prozesses anhand der Standardbeziehungen Durchlaufzeit = Fertigstellung − Ankunft und Wartezeit = Durchlaufzeit − Burst ab.
Der Strategie-Wähler wechselt zwischen FCFS, SJF, SRTF, nicht-präemptiver Priorität und Round Robin, und der Quantum-Regler (1–6) legt die von Round Robin verwendete Zeitscheibe fest. Der Anzahl-Regler (2–7) legt fest, wie viele Prozesse erzeugt werden, Zufällig würfelt ihre Ankunfts-, Burst- und Prioritätswerte neu, und Geschwindigkeit steuert die Wiedergabe, während Schritt eine Einheit weiterschaltet. CPU-Scheduling ist fundamental für Betriebssysteme: dieselben Abwägungen zwischen Durchsatz, Fairness und Antwortzeit bestimmen echte Scheduler in Linux, Windows und eingebetteten Echtzeitkernen.
Häufig gestellte Fragen
Was berechnet diese CPU-Scheduling-Simulation tatsächlich?
Sie erstellt eine vollständige Ausführungs-Zeitachse, indem sie pro Zeiteinheit einen Prozess gemäß der gewählten Strategie auswählt. Aus den Fertigstellungszeiten ermittelt sie die Fertigstellungs-, Durchlauf- (Fertigstellung minus Ankunft) und Wartezeit (Durchlauf minus Burst) jedes Prozesses und zählt jeden Kontextwechsel, bei dem sich der laufende Prozess ändert.
Welche Scheduling-Strategien kann ich wählen?
Fünf Strategien stehen zur Verfügung: FCFS (First-Come First-Served), SJF (Shortest Job First, nicht-präemptiv), SRTF (präemptiv, kürzeste Restzeit), Priorität (nicht-präemptiv, niedrigere Zahl bedeutet höhere Priorität) und Round Robin. Die Wahl einer Strategie berechnet die Zeitachse sofort für dieselbe Menge an Prozessen neu, sodass Sie sie vergleichen können.
Was bewirken die Regler Quantum, Anzahl und Geschwindigkeit?
Quantum (1 bis 6) ist die feste Zeitscheibe, die jeder Prozess bei Round Robin erhält, bevor er verdrängt wird; sie hat keine Wirkung auf die anderen Strategien. Anzahl (2 bis 7) legt fest, wie viele Prozesse erzeugt werden, und Geschwindigkeit skaliert die Animationsgeschwindigkeit, ohne das Ergebnis zu verändern.
Was ist der Unterschied zwischen SJF und SRTF?
SJF ist nicht-präemptiv: Sobald ein Prozess beginnt, läuft er bis zur Fertigstellung, und der Scheduler wählt erst wieder, wenn die CPU frei ist. SRTF ist die präemptive Form: In jeder Einheit wählt es den verfügbaren Prozess mit der geringsten Restzeit, sodass ein neu ankommender kürzerer Job den laufenden unterbrechen kann.
Wie werden Durchlauf- und Wartezeit berechnet?
Für jeden Prozess entspricht die Durchlaufzeit der Fertigstellungszeit minus der Ankunftszeit, und die Wartezeit entspricht der Durchlaufzeit minus der Burstzeit. Die angezeigten Durchschnittswerte aktualisieren sich live, während der Cursor fertiggestellte Prozesse aufdeckt, sodass Sie beobachten können, wie sich die Zahlen einpendeln, während das Gantt-Diagramm sich füllt.
Warum erzeugt Round Robin so viele Kontextwechsel?
Round Robin verdrängt den laufenden Prozess, sobald sein Quantum abläuft, und schickt ihn ans Ende einer zirkulären Warteschlange. Bei einem kleinen Quantum wechselt die CPU häufig den Prozess, was die Antwortzeit und Fairness für interaktive Arbeitslasten verbessert, aber die Anzahl der Kontextwechsel erhöht, von denen jeder in einem echten System echten Overhead verursacht.
Was ist der Konvoi-Effekt, und wie kann ich ihn hier sehen?
Der Konvoi-Effekt tritt bei FCFS auf, wenn ein langer CPU-lastiger Prozess zuerst ankommt und mehrere kurze Prozesse dahinter in der Warteschlange stehen, was ihre Wartezeiten aufbläht. Würfeln Sie neu, bis ein langer Job früh ankommt, führen Sie FCFS aus und wechseln Sie dann zu SJF für dieselbe Menge: Die durchschnittliche Wartezeit sinkt meist stark.
Modelliert die Simulation Präemption und CPU-Leerlaufzeit?
Ja. SRTF und Round Robin sind im Modell echt präemptiv, und wenn noch kein Prozess angekommen ist, verzeichnet die Zeitachse eine Leerlaufeinheit, die als schwacher Block dargestellt wird. Diese Leerlauflücken werden weiterhin in der Gesamtzeit gezählt, sodass sie die Fertigstellung und den Durchlauf späterer Prozesse korrekt verzögern.
Wie entscheidet die Prioritätsstrategie, was läuft?
Jedem Prozess wird eine Prioritätszahl zugewiesen, und der Scheduler führt den verfügbaren Prozess mit der niedrigsten Zahl aus, die als höchste Priorität gilt. Sie ist hier nicht-präemptiv, sodass ein gewählter Prozess vor der nächsten Entscheidung fertig wird. Ohne Aging kann dieses Schema einen Prozess niedriger Priorität verhungern lassen, wenn ständig Arbeit höherer Priorität ankommt.
Ist dies ein genaues Modell eines echten Betriebssystem-Schedulers?
Die Algorithmen entsprechen den Lehrbuchdefinitionen, die in Betriebssystemkursen gelehrt werden, mit ganzzahligen Zeiteinheiten und bekannten Burstlängen. Echte Scheduler bringen zusätzliche Komplikationen wie unbekannte zukünftige Bursts, E/A-Blockierung, mehrere Kerne, Prioritäts-Aging und Overhead pro Wechsel mit sich, sodass dies ein genaues Lehrmodell ist, keine getreue Nachbildung eines Produktionskernels.