Rechenzeit und Priorität: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(Die Seite wurde neu angelegt: „ Da auch bei Prozessen eine Gerechtigkeit herschen muss, muss eine Instanz darüber entscheiden wie lange ein Prozess Rechenzeit verbrauchen darf. Folgende Ken…“) |
|||
| Zeile 1: | Zeile 1: | ||
| + | = Prozessmanagement = | ||
| − | + | * Das Prozessmanagement der Bash sorgt dafür, dass alle Prozesse fair CPU-Zeit erhalten. | |
| − | + | * Der Kernel steuert die Planung durch den Scheduler, der entscheidet, welcher Prozess wann rechnen darf. | |
| − | + | * Wichtige Parameter: | |
| − | * clocktick | + | ** clocktick: Basiseinheit der Zeitscheiben |
| − | * n | + | ** n: vom Kernel einstellbarer Faktor |
| − | * slice | + | ** slice: n * clocktick |
| − | * agingtime | + | ** agingtime: Zeiteinheit für Prioritätserhöhung von Prozessen |
| − | + | * Prozesse werden nach Priorität (Nicewert) geplant. | |
| − | + | * Die Priorität wird nach folgender Formel angepasst: | |
| + | Neue Priorität = Alte Priorität / 2 + Nicewert | ||
| + | * Der Nicewert beeinflusst, wie „nett“ ein Prozess gegenüber anderen ist: | ||
| + | ** Benutzer: 0 (Standard) bis 19 (netter) | ||
| + | ** Root: -20 (unfreundlich) bis 19 (nett) | ||
| + | * Der Scheduler wird aufgerufen, wenn: | ||
| + | ** Ein Prozess auf Eingabe/Ausgabe blockiert | ||
| + | ** Ein Prozess freiwillig Rechenzeit abgibt | ||
| + | ** Die Zeitscheibe (slice) abläuft | ||
| − | + | == Beispiel mit Kommandos == | |
| − | + | Starte einen Prozess mit erhöhter Nettigkeit: | |
| + | * nice -n 10 ./mein_skript.sh | ||
| − | + | Ändere den Nice-Wert eines laufenden Prozesses: | |
| − | + | * renice -n 5 -p 1234 | |
| − | |||
| − | + | Prüfe die Priorität und CPU-Zeit der Prozesse mit top: | |
| − | + | * top | |
| − | |||
| − | + | Prüfe PID, Nicewert und Kommando aller Prozesse: | |
| + | * ps -eo pid,ni,cmd | ||
| − | Der | + | == Hinweise == |
| − | + | * Jeder Prozess läuft in einem Subprozess (Kindprozess) der Shell. | |
| − | + | * Der Exit-Status eines Kommandos kann mit '''echo $?''' überprüft werden. | |
| − | + | * Hintergrundprozesse werden mit '&' gestartet und laufen parallel. | |
| − | + | * Der Scheduler sorgt für Gerechtigkeit: Prozesse mit niedriger Priorität „altern“ nach Agingtime. | |
| − | - | + | |
| + | == Aufgaben == | ||
| + | * Starte ein Skript mit Nicewert 10 und prüfe die CPU-Zeit mit top. | ||
| + | * Ändere den Nicewert eines laufenden Prozesses und beobachte die Änderung. | ||
| + | * Erstelle einen Hintergrundprozess mit '&' und überwache ihn mit ps. | ||
| + | * Starte mehrere Prozesse mit unterschiedlichen Nicewerten und beobachte, wie der Scheduler die CPU-Zeit verteilt. | ||
Aktuelle Version vom 18. Oktober 2025, 07:51 Uhr
Prozessmanagement
- Das Prozessmanagement der Bash sorgt dafür, dass alle Prozesse fair CPU-Zeit erhalten.
- Der Kernel steuert die Planung durch den Scheduler, der entscheidet, welcher Prozess wann rechnen darf.
- Wichtige Parameter:
- clocktick: Basiseinheit der Zeitscheiben
- n: vom Kernel einstellbarer Faktor
- slice: n * clocktick
- agingtime: Zeiteinheit für Prioritätserhöhung von Prozessen
- Prozesse werden nach Priorität (Nicewert) geplant.
- Die Priorität wird nach folgender Formel angepasst:
Neue Priorität = Alte Priorität / 2 + Nicewert
- Der Nicewert beeinflusst, wie „nett“ ein Prozess gegenüber anderen ist:
- Benutzer: 0 (Standard) bis 19 (netter)
- Root: -20 (unfreundlich) bis 19 (nett)
- Der Scheduler wird aufgerufen, wenn:
- Ein Prozess auf Eingabe/Ausgabe blockiert
- Ein Prozess freiwillig Rechenzeit abgibt
- Die Zeitscheibe (slice) abläuft
Beispiel mit Kommandos
Starte einen Prozess mit erhöhter Nettigkeit:
- nice -n 10 ./mein_skript.sh
Ändere den Nice-Wert eines laufenden Prozesses:
- renice -n 5 -p 1234
Prüfe die Priorität und CPU-Zeit der Prozesse mit top:
- top
Prüfe PID, Nicewert und Kommando aller Prozesse:
- ps -eo pid,ni,cmd
Hinweise
- Jeder Prozess läuft in einem Subprozess (Kindprozess) der Shell.
- Der Exit-Status eines Kommandos kann mit echo $? überprüft werden.
- Hintergrundprozesse werden mit '&' gestartet und laufen parallel.
- Der Scheduler sorgt für Gerechtigkeit: Prozesse mit niedriger Priorität „altern“ nach Agingtime.
Aufgaben
- Starte ein Skript mit Nicewert 10 und prüfe die CPU-Zeit mit top.
- Ändere den Nicewert eines laufenden Prozesses und beobachte die Änderung.
- Erstelle einen Hintergrundprozess mit '&' und überwache ihn mit ps.
- Starte mehrere Prozesse mit unterschiedlichen Nicewerten und beobachte, wie der Scheduler die CPU-Zeit verteilt.