728x90
반응형
마지막으로 MLQ와 MFQ에 대해서 알아보자!
MLQ (Multi-level Queue)
말 그대로 ready queue를 여러 개 가지는 방식이다. 이전의 스케줄링 방식들은 ready queue를 한 개만 가지고 우선순위를 두고 작업을 진행했었다.
- 작업(or 우선순위)별 별도의 ready queue를 가진다
- 최초 배정된 queue를 못 벗어남 (= 다른 queue로 이동 불가)
- 각각의 queue는 자신만의 스케줄링 기법을 사용한다.
- Queue와 queue 사이에는 "우선순위 기반"의 스케줄링 사용 (고정 우선순위, 동적 등등)
- 장점
- 중요한 작업에 대해서는 빠른 응답시간을 가진다.
- 단점
- 여러 개의 queue를 관리해줘야 하기에 스케줄링 overhead가 발생한다.
- 우선순위가 낮은 queue에서는 starvation 현상이 발생가능하다. (SPN의 단점)
MFQ (Multi-level Feedback Queue)
- MLQ와 달리 queue간의 이동이 허용된다.
- Feedback을 통해 우선 순위를 조정한다.
- 특성
- 동적 우선 순위(dynamic priority)
- 선점(preemptive scheduling)
- Favor shortt burst-time processes
- Favor I/O bounded processes
- Improve adaptability
- 프로세스에 대한 사전 정보(BT 등) 없이 SPN, SRTN, HRRN 기법의 효과를 볼 수 있음. 즉 실행 시간 예측이 요구된다는 단점 극복.
- 단점
- 설계 및 구현이 복잡하다.
- 스케줄링 overhead는 여전히 크다
- starvation 문제도 여전히 존재한다
- 변형 : queue마다 스케줄링 방법, 제한 요소를 다르게 세팅할 수 있다.
- 각 ready queue마다 시간 할당량(time quantum)을 다르게 배정할 수 있다.
- 각 프로세스의 특성에 맞는 형태로 시스템 운영이 가능하다.
- 입출력 위주 프로세스들을 상위 단계의 큐로 이동하여 우선순위를 높일 수 있다.
- 프로세스가 block될 때, 상위의 ready queue로 이동시킬 수 있다.
- 시스템 전체의 평균 응답 시간을 줄일 수 있고, 입출력 작업을 분산시킬 수 있다
- 대기 시간이 지정된 시간(Aging)을 초과한 프로세스들을 상위 큐로 이동시킬 수 있다.
- 각 ready queue마다 시간 할당량(time quantum)을 다르게 배정할 수 있다.
이와 같이 MFQ는 다양한 변형을 통해 각 상황에 맞는 효율적인 스케줄링 기법들을 채택하여 작업을 처리할 수 있다.
지금까지 알아본 스케줄링 기법들을 하나의 표로 한 번 정리해보자!
* Convoy effect : 수행시간이 긴 프로세스 때문에 다른 프로세스들이 긴 대기 시간을 갖게 되는 현상 (대기시간 > 실행시간)
* Starvation : 실행 시간이 긴 프로세스는 계속 대기하고 자원을 할당받지 못하는 현상 (무한대기)
Ref: https://www.youtube.com/watch?v=actKUqea6Xc&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN&index=11&t=1s
728x90
반응형