우선순위와 MLFQ

고급 스케줄링은 단순히 우선순위를 고르는 문제가 아니다. 높은 우선순위가 낮은 작업을 영원히 밀어내지 않도록 aging과 feedback이 필요하다.

Q0 · q=4

짧은 작업 · I/O 응답

A B C

새 작업은 먼저 짧은 퀀텀을 받고, 일찍 양보하면 높은 큐에 남는다.

Q1 · q=8

중간 길이 작업

D E

더 긴 퀀텀으로 실행하고, 전부 사용하면 CPU 집중 작업으로 본다.

Q2 · FCFS

긴 CPU 작업

F G

긴 작업은 낮은 큐에서 처리해 대화형 작업의 응답을 방해하지 않는다.

↶ periodic boost: 오래 기다린 모든 작업을 Q0로 올려 기아를 끊는다
Priority
명시 순서 중요한 작업을 먼저 실행하지만 낮은 작업이 밀릴 수 있다.
aging이 필요하다.
Aging
대기 보상 오래 기다린 작업의 우선순위를 점진적으로 올린다.
무한 대기를 막는다.
MLFQ
행동 기반 queue CPU를 오래 쓰면 아래 queue로, 오래 기다리면 위로 이동시킨다.
정책 파라미터가 많다.
Boost
주기적 재조정 모든 작업을 높은 queue로 올려 기아를 줄인다.
interactive 응답성에도 영향이 있다.

기아 · queue 이동 · 파라미터 점검

기아 낮은 우선순위 작업이 언젠가 실행되는 보장이 있는가.
queue 이동 CPU 사용 패턴에 따라 어떤 queue로 이동하는지 설명할 수 있는가.
파라미터 time quantum과 boost 주기가 응답성과 처리량에 어떤 영향을 주는가.

MLFQ 감각

short CPU burst -> stay high
long CPU burst -> demote
long wait -> promote or periodic boost