반환 시간 최적화, 동시에 반응 시간 최소화
MLFQ (Multi-Level Feedback Queue)
기본 규칙
여러 개의 큐로 구성
각 큐의 우선 순위는 다름
우선 순위가 높은 쪽이 선택
한 큐에 작업이 2개가 있으면 RR 로 실행
고려사항
각 프로세스의 우선 순위를 어떻게 정하는가
가장 높은 우선순위
우선 순위가 고정되는가, 유동적인가
유동적
우선 순위 변경
프로세스의 실행 상황에 따라 다름
ex) I/O가 많아 CPU를 자주 포기 - 고순위 유지
CPU만 사용하는 작업 - 저순위
기본 개념
여러 개의 우선순위 큐로 구성된 스케줄링 방식
대화형 작업으로 높은 응답성을, CPU 집중 작업은 공정한 자원 배분을 목표
과거 실행 패턴을 기반으로 우선순위를 동적으로 조정
핵심 규칙
Rule
설명
Rule 1
우선순위가 높은 큐에 있는 작업이 먼저 실행됨
Rule 2
같은 큐에서는 Round Robin 방식 사용
Rule 3
새로 들어온 작업은 가장 높은 우선순위 큐에서 시작
Rule 4a
타임 슬라이스를 모두 소진하면 우선순위 하락
Rule 4b
시간 전에 CPU를 반환하면 우선순위 유지
Rule 5
일정 시간(S)마다 모든 작업을 최고 우선순위로 복귀(Priority Boost)
왜 이런 정책을 사용하는가?
CPU 사용률을 높일 수 있음
반환 시간도 높일 수 있음
2가지 경우 존재
b가 I/O를 끝내고 돌아오면 A 쫒아냄 (짧은 응답시간, 많은 context switch)
B가 끝나기를 기다림
기본 MLFQ의 문제점