Linux ütemezés Sokszor változott az évek folyamán Az alap ütemező egyszerű volt Prioritásos, futási sorok, RR… 2.4 verzió: O(n) ütemező o (következő futó feladat kiválasztása) 1
Linux kernel map 2
O(1) ütemező Új ütemező (2.6-os kernel, ~2002) Új ütemező o Gond volt, ha sok feladat volt o Következő feladat megtalálása: O(1) o 140 várakozási sor o Külön „active” és „expired” sorok Jobb SMP támogatás o CPU-nkénti runqueue, külön zárakkal o Terheléselosztás CPU sorok között 3
Completly Fair Scheduler (CFS) as kernelbe került bele (~2007) Problémák az O(1) ütemezővel o Heurisztikákat használt, nehéz volt számolni o Késleltetés mértékét nehéz volt garantálni Cél: fair működés garantálása o Mindenki kapjon CPU időt o Futási sorok helyett egy közös keresőfa (red-black tree) o Prioritás a KF-on (decay) keresztül jut érvényre 4
Hogyan tovább? 5 Sok új javaslat, pl: BFS: interaktivitás biztosítása desktop, mobil gépeken Sok új javaslat, pl: BFS: interaktivitás biztosítása desktop, mobil gépeken