CPU 스케줄링 (5) - 다중 큐 스케줄링

운영체제

2020. 5. 5. 17:37

1. Process Group

  • 프로세스들도 각 프로세스들이 속성이 있기 떄문에 그에 맞춰서 그룹핑할 수 있다.
  • 1) System Process : 시스템(OS)이 사용하는 프로세스 (파일 입출력, 가상메모리, 통신 등)
  • 2) Interactive Process : 사용자와 계속적으로 대화하는 프로세스 (게임, 워드와 같이 입출력이 계속 됨)
  • 3) Batch Process : 컴퓨터가 알아서 일괄적으로 처리하는 (대화X) 프로세스 (e.g. 컴파일러 등)

 

[그림] 다중 큐 스케줄링

생각해보면 각 그룹별로 프로세스들의 중요도가 다를 것이다. 예를 들어 가장 중요한 것은 시스템 프로세스이며, 배치프로세스보다는 인터랙티브 프로세스가 더 빨리 응답해야 사용자가 답답함을 덜 느낄 것이다. 때문에 이러한 아이디어로부터 각 속성에 맞게 Ready Queue 자체를 여러개 쓰면 어떨까? 하는 것이 Multilevel Queue (다중 큐) 스케줄링이다.

 

[그림] 은행 창구

 

실제로 은행에서도 작업을 입/출금과 같이 비교적 빨리 끝나는 작업들과 대출/통장개설과 같이 오래걸리는 작업으로 나눌 수 있는데 이들을 다른 창구를 이용하게 해서 번호표도 다르게 발급한다. 사람 100명이 입/출금을 희망하는데 앞선 1명이 1시간 동안 대출 상담을 하고있을수는 없기 때문이다. 즉, 다중큐 스케줄링은 은행의 다중창구 시스템을 컴퓨터로 옮겨놓은 것이라고 생각 할 수 있다.

 

2. Multilevel Queue Scheduling

  • 각 Queue마다 절대적 우선순위가 존재하거나 (Sys > Inter > Batch)
  • 각 Queue마다 CPU 할당 시간을 차등분배 하거나 (Sys : 60, Inter : 30, Batch : 10)
  • 각 Queue마다 다른 스케줄링 전략을 세울수도 있음 (Sys : RR, Inter : Priority : Batch : FCFS 등)
  • 단, Queue가 지정되면 프로세스는 해당하는 Queue에서만 대기해야한다 (Queue를 못 옮긴다)

 

3. Multilevel Feedback Queue

[그림] Multilevel Feedback Scheduling

  • Queue가 여러개 존재한다는 것은 기존 Multilevel Queue 스케줄링과 비슷하지만,
  • Feedback 스케줄링은 프로세스가 하나의 Queue에 있다가 성능이 잘 안나오면 다른 Queue로 옮길 수 있음
  • 예를 들어, 너무 많은 CPU time을 사용하거나, 기아상태가 우려되면 다른 Queue로 옮겨서 성능을 확보함

 

4. 실제 OS에서는 어떨까?

  • 우리가 실제로 사용하는 Windows나 Linux와 같은 실제 OS들도 이렇게 여러개의 큐를 운용하면서
  • 상황에 맞게 사용할 수 있는 매우 다양한 스케줄링 기법을 동시에 활용한다.

 

5. Reference

 

운영체제

운영체제의 정의 및 역할 등에 대해 알아보고, 운영체제의 주요 요소들, 즉 프로세스 관리, 주기억장치 관리, 파일 시스템 등에 대해 공부한다.

www.kocw.net