[OS] 7. Process Scheduling 4
💻CS/OS

[OS] 7. Process Scheduling 4

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)을 초과한 프로세스들을 상위 큐로 이동시킬 수 있다.

이와 같이 MFQ는 다양한 변형을 통해 각 상황에 맞는 효율적인 스케줄링 기법들을 채택하여 작업을 처리할 수 있다. 

 


지금까지 알아본 스케줄링 기법들을 하나의 표로 한 번 정리해보자!

스케줄링 기법 총정리!

* Convoy effect : 수행시간이 긴 프로세스 때문에 다른 프로세스들이 긴 대기 시간을 갖게 되는 현상 (대기시간 > 실행시간)

* Starvation : 실행 시간이 긴 프로세스는 계속 대기하고 자원을 할당받지 못하는 현상 (무한대기)

 

 

Ref: https://www.youtube.com/watch?v=actKUqea6Xc&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN&index=11&t=1s 

728x90
반응형