1.2. Beziehungen zwischen Subsystemen, Hierarchien, Kontrollgruppen und Aufgaben
Jedes einzelne Subsystem (wie z.B. cpu
) kann mit maximal einer Hierarchie verknüpft werden.
cpu
-Subsystem nie mit zwei verschiedenen Hierarchien verknüpft werden.
Eine einzelne Hierarchie kann mit einem oder mehreren Subsystemen verknüpft sein.
cpu
- und memory
- Subsysteme (oder eine beliebige Anzahl an Subsystemen) mit einer einzelnen Hierarchie verknüpft werden, vorausgesetzt, dass keine von beiden mit einer anderen Hierarchie verknüpft ist.
Jedes Mal, wenn eine neue Hierarchie auf dem System erstellt wird, sind alle Aufgaben auf dem System anfangs Mitglieder der standardmäßigen Kontrollgruppe dieser Hierarchie, die auch Root-Kontrollgruppe genannt wird. Für jede einzelne von Ihnen erstellte Hierarchie gilt, dass jede Aufgabe auf dem System Mitglied von genau einer Kontrollgruppe in dieser Hierarchie sein kann. Eine einzelne Aufgabe kann in mehreren Kontrollgruppen sein, vorausgesetzt, diese Kontrollgruppen befinden sich in verschiedenen Hierarchien. Sobald eine Aufgabe zu einem Mitglied einer zweiten Kontrollgruppe in derselben Hierarchie gemacht wird, wird sie von der ersten Kontrollgruppe in dieser Hierarchie entfernt. Zu keinem Zeitpunkt kann eine Aufgabe Mitglied in zwei Kontrollgruppen in derselben Hierarchie sein.
cpu
- und das memory
-Subsystem mit einer Hierarchie namens cpu_and_mem
verknüpft sind, und das net_cls
-Subsystem mit einer Hierarchie namens net
, dann könnte ein laufender httpd
-Prozess ein Mitglied in einer Kontrollgruppe in cpu_and_mem
und in einer Kontrollgruppe in net
sein.
cpu_and_mem
, in der der httpd
-Prozess Mitglied ist, kann seine CPU-Zeit auf die Hälfte dessen setzen, was anderen Prozessen zugewiesen ist, und kann seinen Speicherverbrauch auf maximal 1024
MB begrenzen. Zusätzlich kann die Kontrollgruppe in net
, in der er ebenfalls Mitglied ist, seine Übertragungsrate auf 30
Megabytes pro Sekunde begrenzen.
Jeder Prozess (Aufgabe) auf dem System, der sich selbst klont, erzeugt einen untergeordneten Prozess (Aufgabe). Der untergeordnete Prozess wird automatisch Mitglied all jener Kontrollgruppen, bei denen auch der übergeordnete Prozess Mitglied ist. Der untergeordnete Prozess kann anschließend bei Bedarf anderen Kontrollgruppen zugewiesen werden, anfänglich erbt er jedoch immer die Kontrollgruppen (in Prozessterminologie die "Umgebung") seines übergeordneten Prozesses.
httpd
-Aufgabe ein Mitglied der Kontrollgruppe namens half_cpu_1gb_max
in der cpu_and_mem
-Hierarchie ist sowie ein Mitglied der Kontrollgruppe trans_rate_30
in der net
-Hierarchie. Wenn der httpd
-Prozess sich selbst klont, werden seine untergeordneten Prozesse demnach automatisch Mitglieder der half_cpu_1gb_max
-Kontrollgruppe und der trans_rate_30
-Kontrollgruppe. Sie erben genau dieselben Kontrollgruppen, denen auch ihr übergeordneter Prozess angehört.