ist die Entscheidung des Kernels, bereite Thread als die CPU bekommt und für . Da es meist mehr lauffähige Threads als Cores gibt, multiplext der sie und versucht, konkurrierende Ziele auszubalancieren — , und — und dabei zu vermeiden.
ist die Entscheidung des Kernels, bereite Thread als die CPU bekommt und für . Da es meist mehr lauffähige Threads als Cores gibt, multiplext der sie und versucht, konkurrierende Ziele auszubalancieren — , und — und dabei zu vermeiden.
FCFS (first-come, first-served) → simple, but one long job blocks everyone (convoy effect)
SJF (shortest job first) → optimal avg wait, but needs to know job length; can starve long jobs
Round-robin (RR) → each job a fixed TIME SLICE (quantum), cycle through → fair, good latency
Priority → highest priority first → can STARVE low priority (fix: aging)
MLFQ (multi-level feedback) → several priority queues; jobs that use a full quantum sink,
interactive jobs that yield stay high → approximates SJF without knowing lengths
Round-Robin veranschaulicht den zentralen Stellhebel — das Quantum:
quantum too SMALL → fair & responsive, but lots of context-switch overhead
quantum too LARGE → less overhead, but degrades toward FCFS (poor responsiveness)
Der langjährige Standard von Linux war der CFS (Completely Fair Scheduler): statt fester Zeitscheiben verfolgt er die Virtual Runtime (vruntime) jeder Task und lässt immer den Thread laufen, der bisher am wenigsten CPU erhalten hat, gewichtet nach seinem Nice-Wert — was "jeder bekommt einen fairen Anteil" annähert. Er indexiert einen Rot-Schwarz-Baum nach vruntime, sodass die Auswahl der nächsten Task O(log n) ist. (Neuere Kernel verwenden EEVDF, eine Verfeinerung mit demselben Fairness-Ziel plus engeren Latenzgrenzen.)
Preemptiv vs. kooperativ: moderne OSe sind preemptiv — ein Timer-Interrupt lässt den Scheduler die CPU zwangsweise zurücknehmen, sodass kein Thread einen Core monopolisieren kann.
Scheduling formt direkt die Latenz und den Throughput, den Nutzer spüren. Interviewer sondieren es, um zu sehen, ob du die Trade-offs verstehst — warum eine interaktive Workload kurze Quanten oder einen Priority-Boost will, warum Priority-Scheduling Aging braucht, um Starvation zu verhindern, und wie MLFQ/CFS gutes interaktives Verhalten erzielen, ohne die Joblängen im Voraus zu kennen. Es ist auch das mentale Modell hinter dem Tunen von nice, Echtzeit-Prioritäten und der Diagnose eines ausgehungerten oder ruckelnden Service.
Eine Sammlung von IT-Interviewfragen mit ausführlichen Antworten — vom Junior bis zum Senior.
Spenden