Multi-Level Feedback Queue
스케줄링 목표 : 반환 시간 최적화, 동시에 반응 시간 최소화
문제 : 우리는 미래를 알 수 없다
방법 : Multi-Level Feedback Queue → Learn from history, Apply it adaptively
여러 개의 큐로 구성
- 각 큐의 우선 순위가 다름
- 하나의 큐에서 하나의 작업 선택 가능
- 가장 높은 우선 순위의 큐에 있는 작업 선택
고려 사항
- 각 프로세스의 우선 순위를 어떻게 정할까?
- 우선 순위가 고정되는가, 유동적인가?
Attempt #1 : 우선 순위 변경
← 프로세스의 실행 상황에 따라
- ex) IO가 많아 CPU를 자주 포기 - 고순위 유지
- CPU-intensive job - 저순위로 변경 → 바닥까지 떨어지만 기회가 있을 때만 CPU 사용 가능
- 이렇게 하면 짧을 응답시간을 얻을 수 있음!
- CPU 사용률이 높을수록 반환시간이 낮아짐
