4장 CPU 스케줄링 - 01(2) 고수준, 저수준, 중간수준 스케줄링

 
해당 내용은 쉽게 배우는 운영체제을 기반으로 작성되었습니다.


1. 스케줄링 개요

1(2) CPU 스케줄링

 스케줄링 단계

   - 레스토랑 관리자는 주방 및 재료 상황, 레스토랑 규모 등을 파악하여 적당한 인원, 손님 배치하여함 (큰 틀)
   - 그 후, 손님들의 다양한 상황을 고려하여 요리 속도, 순서를 관리해야 함. (작은 틀)
   - 큰 틀 관리와 작은 틀 관리를 병행하듯이 CPU 스케줄러도 관리의 범주를 나누어 스케줄링한다. 
   - [고수준 스케줄링] [저수준 스케줄링] [중간 수준 스케줄링]

출처 : 쉽게 배우는 운영체제

   고수준 스케줄링 high level scheduling(= 장기, 작업, 승인 스케줄링)

   - 시스템 내의 전체 작업 수 조절
   - 운영체제에서 작업(일)의 가장 큰 단위
   - 많은 작업을 동시에 하면 시스템 과부하로 작업 원활 x
   - 작업이 시작되면 시스템 자원을 사용하기 때문에 기존 작업에 영향을 준다. 
   - 그래서 작업 요청이 들어오면 스케줄러가 시스템의 상황을 고려하여 작업 [승인 / 거절] 결정
   - 이에 따라 시스템 내에서 동시에 실행 가능한 프로세스의 총개수가 정해짐 ( = 멀티프로그래밍 정도)
   - 메인프레임과 같은 큰 시스템에서 규모가 큰 일괄 작업을 처리할 때 사용

   저수준 스케줄링 low level scheduling (= 단기 스케줄링)

   - 가장 작은 단위의 스케줄링
   - 고수준이 전체 손님 수 조절이라면 저수준은 각 손님의 주문과 그에 따른 요리 제공 순서를 미세하게 조절하는 단계

   - 어떤 프로세스에 CPU를 할당할지, 어떤 프로세스를 대기 상태로 보낼지 등을 결정
   - ex) 준비 상태에 있는 프로세스 중 하나를 골라 실행 상태로 보내거나, 실행 상태에 있는 프로세스를 대기 상태로 보내거나, 대기 상태의 프로세스를 준비 상태로 보내는 것
   - 아주 짧은 시간에 일어나기 때문에 단기 스케줄링(short-term scheduling)이라고도 함. 
   - 어떤 기준에 따라 타임 슬라이스를 정할지와 같은 이슈는 시스템 성능에 많은 영향을 끼침. 
   - 실제로 작업이 이루어짐. 

   중간 수준 스케줄링

   - 프로세스가 활성화된 후에도 여러 가지 사정으로 시스템에 과부하가 올 수 있다. 
   - 시스템의 부하를 조절하려면 고수준 스케줄링 대신 중간 수준 스케줄링을 고려해야 함. 
   - 시스템에 과부하가 걸려서 전체 프로세스 수를 조절해야 한다면 이미 활성화된 프로세스 중 일부를 보류 상태로 보낸다.

   - 보류된 프로세스는 처리 능력에 여유가 생기면 다시 활성화한다.
   - 중지 suspend, stop와 활성화 active로 전체 시스템의 활성하된 프로세스 수를 조절하여 과부하를 막는다.
   - 이렇게 하면 저수준 스케줄링이 원만하게 이루어지도록 완충하는 buffer 역할을 한다. 
 

출처 : 쉽게 배우는 운영체제

https://yoooniverse.tistory.com/14?category=1133284