반응형

 

 

1. 다단계 큐 스케줄링(MLQ, MultiLevel Queue Scheduling)

  • 우선순위마다 준비 큐 형성
  • 항상 가장 높은 우선순위 큐의 프로세스에 CPU를 할당 (우선순위가 낮은 큐에서 작업 실행 중이더라도 상위 단계의 큐에 프로세스가 도착하면 CPU를 빼앗는 선점형 스케줄링)
  • 각 큐는 라운드 로빈이나 FCFS등 독자적 스케줄링 사용 가능
  • 대화형, 배치(Background)등의 프로세스 성격에 따라 우선순위 부여
  • 큐들 간의 프로세스 이동이 불가하기 때문에 스케줄링 부담이 적지만 유연성이 떨어짐
  • 우선순위가 낮은 프로세스가 오랬동안 CPU 할당을 기다리는 기아 현상이 발생할 수도 있음

  1. 시스템 작업
  2. 대화형 작업
  3. 대화형 편집
  4. 일괄 처리
  5. 학생 작업

 

 

2. 다단계 피드백 큐 스케줄링(MFQ, MultiLevel Feedback Queue Scheduling)

  • 다 단계 큐 + 동적인 프로세스 우선 순위 변화 적용
  • 프로세스 생성 시 가장 높은 우선 순위 준비 큐에 등록되며 등록된 프로세스는 FCFS 순서로 CPU를 할당받아 실행된다. 해당 큐의 CPU 시간 할당량(Time Quantum)이 끝나면 한 단계 아래의 준비 큐에 들어간다.
  • 단계가 내려갈수록 시간 할당량(Time Quantum)이 증가한다.
  • 큐 사이의 프로세스 이동 가능하며 CPU Burst는 낮은 우선순위의 큐, I/O Burst는 높은 우선순위의 큐에 배치한다.
  • 가장 하위 큐는 FCFS 스케줄링
  • 맨 아래 큐에서 너무 오래 대기하면 다시 상위 큐로 이동 (에이징 기법을 통한 기아상태 예방)

다단계 피드백 큐 스케줄링의 경우 큐의 수, 각 큐에 대한 알고리즘, 우선순위 격상 또는 격하 시기 결정, 처음 프로세스들이 진입해야 할 큐 등등 매우 복잡한 판단을 요구한다.

 

Q. 둘의 차이점이 뭔가요..?

A. 가장 큰 차이점은 MLQ 스케줄링의 경우 큐와 큐 사이에 프로세스들이 이동을 할 수 없는 반면, MFQ 스케줄링의 경우 큐 사이에 프로세스들이 이동을 할 수 있습니다. 따라서 MFQ 스케줄링에 비해 MLQ 스케줄링은 스케줄링 부담이 적지만 유연성은 떨어집니다. 또한 MLQ 스케줄링의 경우 하위 단계의 큐에 있을수록 CPU 할당을 받지 못하여 기아 현상이 발생할 수도 있지만 MFQ 스케줄링의 경우는 에이징 기법을 통해 기아 현상을 예방할 수 있습니다.

반응형

+ Recent posts