Advanced Scheduling

우선순위와 MLFQ

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

01

우선순위 기준 결정

사용자 중요도, deadline, I/O bound 성격, CPU 사용량 중 무엇으로 우선순위를 줄지 정한다.

02

기아를 감지한다

낮은 queue에 오래 머무르는 작업을 aging이나 periodic boost로 올려야 한다.

03

피드백을 적용한다

짧게 CPU를 쓰고 양보하는 interactive 작업과 오래 CPU를 쓰는 batch 작업을 다르게 취급한다.

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