Next: 12.7 Prozeß- und Systemlastüberwachung
Up: 12. Bootvorgang und Prozeßverwaltung
Previous: 12.5.2 halt und reboot
12.6 Prozeßverwaltung
Jede Anfrage, die an die Shell gesendet wird, wird als Prozeß bezeichnet. Da nun Linux ein Multiuser- und Multitasking-Betriebssystem ist, laufen ständig eine ganze Reihe von Prozessen, z. B. für jeden eingeloggten Benutzer die Login-Shell (meist die
bash) oder Prozesse, die die seriellen Schnittstellen und das Netzwerk dahingehend überprüfen, ob ein Benutzer einloggen will.
Die Verwaltung all dieser Prozesse ist eine der Hauptaufgaben des Systems. Zur Verwaltung werden die sogenannten Prozeßkenndaten verwandt. Die wichtigsten sind:
- PID:
- Die Prozeßnummer, über die eine Interprozeßkommunikation erfolgen kann. Das bekanntest Beispiel hierfür ist das Versenden von Signalen. Das Signal 9 etwa tötet einen Prozeß!
- PPID:
- Prozeßnummer des Elternprozesses (Parent PID). Jeder Prozeß, bis auf den ersten (besser sollte man sagen den 0.), stammt von einem anderen ab.
- Prozeßzustand
- kann z. B. sein Running (wird gerade von der CPU bedient), Waiting (wartet auf ein Ereignis, z. B. eine Eingabe), Runnable (ist bereit, hat aber nicht die CPU zur Verfügung) und Zombie (ist eigentlich schon tot, wird aber noch in der Statistik geführt).
- Priorität:
- Die Nice-Priorität ist eine Zahl, die dem Prozeß beim Start mitgegeben wird. Diese, sein Zustand, die Zeit, die er auf Bedienung durch die CPU gewartet hat gehen ein in die Berechnung der aktuellen Priorität, die letztlich bestimmt, wann der Prozeß wieder CPU-Zeit erhält. Diese Berechnung erfolgen periodisch.
- UID, GID:
- Benutzer- und Gruppennummer, um den Benutzer zu identifizieren. UID und GID gehen normalerweise ein in die
- effektive UID, GID
- über die die Rechte des Benutzers kalkuliert werden. Falls die Programmdatei mit dem s-Recht versehen ist, wird die effektive UID oder GID die UID oder GID des Besitzers der Programmdatei. Z. B. ist der Besitzer der Programmdatei /etc/passwd der Benutzer root. Startet ein gewöhnlicher Benutzer dieses Programm erhält dieser Prozeß die effektive UID 0, er wird für den Programmlauf zum Superuser!
- kontrollierendes Terminal:
- Terminal von dem aus der Prozeß gestartet wurde. Diese Angabe ist insofern wichtig, da der Prozeß seine Ausgaben/Eingaben über diesen Terminal abwickelt! Eine Reihe von Prozessen wird gewöhnlich nicht von einem Terminal aus gestartet (sondern häufig automatisch beim Systemstart). Solche Prozesse ohne Terminal nennt man Dämonprozesse. Sie verrichten in der Regel wichtige Systemdienste. Bekannte Dämonen sind lpd (Druckerdämon), crond (Zeitdienstedämon) oder inetd (für das Netzwerk zuständig).
Next: 12.7 Prozeß- und Systemlastüberwachung
Up: 12. Bootvorgang und Prozeßverwaltung
Previous: 12.5.2 halt und reboot