Kurze Antwort, da Leute ganze Bücher zu diesem Thema geschrieben haben:
Zyklen werden normalerweise mit der Terminologie "CPU-Zeit" ausgedrückt. Einem Prozess wird eine bestimmte Anzahl von 'Quantums' in der CPU zugewiesen. Beachten Sie, dass in CISC-Architekturen (wie x86) ein einzelner Befehl mehrere Zyklen beanspruchen kann.
In den einfachsten Round-Robin-Schedulern würden jedem Prozess 50% der CPU-Zeit zugewiesen (wenn es 2 gibt), so dass jede Task doppelt so lange dauert, wenn sie nur von der CPU abhängt.
Alle modernen Betriebssysteme verfügen jedoch über erweiterte Planungsalgorithmen, die einen oder mehrere der folgenden Parameter berücksichtigen:
- Priorität
- Zustand (für E / A gesperrt, lauffähig, gestoppt usw.)
- Letztes Mal lief der Prozess auf der CPU
Abhängig vom Zeitplanungsalgorithmus können Prozesse auf der CPU ausgeführt werden, bis:
- Es fordert E / A an und wird dadurch blockiert
- Ein Prozess mit höherer Priorität benötigt CPU-Zeit ( Vorabversion )
- Ein Hardware-Interrupt wird ausgelöst.
- Das Prozessquantum läuft aus.
Wie die endgültige Warteschlange organisiert wird, hängt vom Scheduler ab. Der Linux-Scheduler wird hier beschrieben .
Das Nachdenken über Zyklen ist im Kontext eines Computers der realen Welt nicht wirklich nützlich. Wie oben erwähnt, kann ein einzelner Befehl auf CISC-Architekturen mehrere Zyklen dauern. Die CPU verwendet Zyklen, um zwischen Prozessen zu wechseln (Register wechseln, MMU aktualisieren usw.). Zyklen als solche sind keine wirklich gute Kennzahl, um die CPU-Nutzung zu beschreiben.
Die nützliche Ausgabe einer CPU hängt hauptsächlich davon ab, wie schnell sie mit Verarbeitungsanforderungen umgehen kann. Wenn Prozesse zur Verarbeitung bereit sind, werden sie in die Laufwarteschlange gestellt, bis sie von der CPU verarbeitet werden können. Solange Prozesse nicht länger als ein Quantum (~ 200ms) warten müssen, um ausgeführt zu werden, ist das System im Wesentlichen so schnell wie es nur geht. Im Betriebssystem wird dies als Zahl angezeigt (entweder als Float (Linux: top
/ uptime
) oder als Prozentzahl (Windows Taskmanager).
Um eine kurze Antwort auf die Frage zu geben, die Sie in den Titel stellen: Die Auslastung wird hoch, da die Ausführungswarteschlange ansteigt. Die "Auslastung", die Sie in Windows oder Linux sehen, ist nur ein Durchschnitt der Länge der Laufwarteschlange über die Zeit.