Scheduler-ul este componenta esențială a unui sistem de operare, responsabilă pentru alocarea resurselor CPU între diferite procese și fire de execuție. În Catchy OS, echipa de dezvoltare a adoptat Sched-Ext, un framework modular de extensie pentru scheduler-ul Linux, pentru a aduce îmbunătățiri semnificative în performanță și eficiență.
Probleme identificate
- Latenta ridicată la schimbarea contextului – Schimbările frecvente între procese consumau timp și afectau performanța generală.
- Management ineficient al priorităților – Procesele de fundal puteau interfera cu cele critice.
- Încărcare dezechilibrată a nucleelor – Unele nuclee erau suprautilizate, în timp ce altele rămâneau idle.
Soluții implementate folosind Sched-Ext
1. Personalizarea algoritmului de scheduling
Sched-Ext a permis echipei de dezvoltare să creeze un scheduler personalizat, optimizat pentru workload-urile specifice ale Catchy OS. A fost implementată o combinație între CFS (Completely Fair Scheduler) și Deadline Scheduling, adaptată pentru a reduce latența și a îmbunătăți predictibilitatea execuției.
2. Prioritizare inteligentă cu Sched-Ext
- A fost introdus un sistem de boosting dinamic al priorității, astfel încât procesele interactive să fie favorizate temporar față de cele de fundal.
- Prin Sched-Ext, echipa a creat un mecanism custom de grupare a proceselor pe baza profilului de utilizare a CPU, oferind un echilibru mai bun între performanță și consum de resurse.
3. Distribuție eficientă pe nuclee
- Implementarea unui Load Balancer adaptiv, bazat pe metrici runtime, pentru a redistribui procesele în funcție de utilizarea fiecărui nucleu.
- Îmbunătățirea mecanismului NUMA-aware, astfel încât memoria să fie accesată cât mai eficient.
- Extensia unui scheduler aware de energie, care reduce consumul atunci când sistemul este în idle, fără a afecta latența percepută.
