Głębiej
Scheduler równoważy latencję, sprawiedliwość i throughput:
- Preemptive używa time-slice i polityk priorytetów.
- Cooperative jest prostszy, ale niebezpieczny dla nieufnych zadań.
- Real-time priorytetyzuje deadline’y ponad fairness.
- Koszt context switch wpływa na długość kwantu.
Przykłady
Time-slicing:
Uruchom A na 5ms -> preempt -> uruchom B -> powtarzaj
Typowe pułapki
- Założenie, że wyższy priorytet zawsze zwiększa throughput.
- Cooperative dla mieszanych workloadów.
- Ignorowanie priority inversion.
Pytania uzupełniające na rozmowie
- Jak zapobiegasz starvation?
- Czym jest priority inversion i jak je ograniczasz?
- Kiedy używasz real-time scheduling?