프로세스 스케줄링 - 3. MLQ, MFQ

김진한·2022년 5월 14일
0

운영체제(OS)

목록 보기
7/8

MLQ(Multi-level-Queue)

  • 작업(or 우선순위)별 별도의 ready queue를 가진다. 최초 배정된 queue를 벗어나지 못하고, 각각의 queue는 자신만의 스케줄링 기법을 사용한다. Queue사이에는 우선순위 기반으로 스케줄링을 사용한다. 우선순위가 높은 경우에는 응답이 빠르다는 장점이 있지만 우선순위가 낮은 경우에는 starvation 현상이 발생할 수 있다. 또한 여러개의 Queue관리 등 스케줄링 overhead가 발생한다.

MFQ(Multi-level Feedback Queue)

  • 프로세스의 Queue간 이동이 허용된 MLQ라고 이해하면 된다. 현재까지의 프로세서 사용 정보(패턴)을 활용하면서 Feedback을 통해 우선 순위를 조정할 수 있다.

  • 특성
    Dynamic priority
    Preemptive scheduling
    Favor short burst-time processes
    Favor I/O bounded processes
    Improve adaptability

  • 프로세스에 대한 사전 정보 없이 SPN, SRTN, HRRN 기법의 효과를 볼 수 있다. 다시 말해 BT를 예상하지 않고도 비슷한 효과를 낼 수 있다는 것이다.

  • 단점으로는 설계 및 구현이 복잡하기 때문에 스케줄링 overhead가 발생한다. 그리고 여전히 starvation문제가 있다. 단점을 극복하기 위해서 각 준비 큐마다 시간 할당량을 다르게 배정하고, 처리가 빠른 입출력 위주 프로세스들을 상위 단계의 큐로 이동하여 우선순위를 높이고, 대기 시간이 지정된 시간을 초과한 프로세스들을 상위 큐로 이동(aging, 에이징 기법)하는 방식 등을 사용한다.

0개의 댓글