Aging (auch Ageing) ist eine Technik des Betriebssystem-Schedulings, um Starvation zu verhindern: Die Priorität eines wartenden Prozesses wird periodisch angehoben, je länger er auf die CPU warten muss. Irgendwann ist seine Priorität so hoch, dass er an die Reihe kommt.

Problem: Starvation bei Prioritäts-Scheduling

Bei reinem Prioritäts-Scheduling mit statischen Prioritäten können niederpriore Prozesse unbegrenzt warten, wenn ständig höherpriore Prozesse eintreffen — der Fachbegriff dafür ist Starvation (Aushungerung). Prio-Queues allein lösen das Problem nicht, sie verschärfen es sogar, solange die Priorität nicht altert.

Funktionsweise

Aging erhöht die Priorität eines Prozesses in regelmäßigen Abständen (z. B. nach jedem Tick oder jeder Sekunde Wartezeit) um einen festen Betrag. Ein Prozess mit anfangs niedriger Priorität steigt dadurch kontinuierlich auf, bis er höher priorisiert ist als die aktuell laufenden Prozesse. In der Praxis kombinieren Scheduler dies mit dynamischen Prioritäten: Linux nutzt neben dem nice-Wert einen Interaktivitäts-Bonus; Multilevel-Feedback-Queues (MLFQ) befördern lange wartende Prozesse in höhere Warteschlangenstufen.

Zusammenhang mit Fairness

Moderne faire Scheduler wie Linux CFS/EEVDF benötigen klassisches Aging nicht, weil sie CPU-Zeit über virtuelle Laufzeit ausgleichen — Starvation durch Prioritäten bleibt aber dort relevant, wo Echtzeit-Policies normale Prozesse überholen. Aging ist damit die Antwort auf eine Grundfrage des Prozess-Schedulings: Priorität und Gerechtigkeit in Einklang zu bringen.

Verwandte Grundlagen: Nebenläufigkeit, Präemption, Zeitscheibe.