해당 내용은 쉽게 배우는 운영체제을 기반으로 작성되었습니다.
1. 스케줄링 개요
1(2) CPU 스케줄링
스케줄링 단계
- 레스토랑 관리자는 주방 및 재료 상황, 레스토랑 규모 등을 파악하여 적당한 인원, 손님 배치하여함 (큰 틀)
- 그 후, 손님들의 다양한 상황을 고려하여 요리 속도, 순서를 관리해야 함. (작은 틀)
- 큰 틀 관리와 작은 틀 관리를 병행하듯이 CPU 스케줄러도 관리의 범주를 나누어 스케줄링한다.
- [고수준 스케줄링] [저수준 스케줄링] [중간 수준 스케줄링]

고수준 스케줄링 high level scheduling(= 장기, 작업, 승인 스케줄링)
- 시스템 내의 전체 작업 수 조절
- 운영체제에서 작업(일)의 가장 큰 단위
- 많은 작업을 동시에 하면 시스템 과부하로 작업 원활 x
- 작업이 시작되면 시스템 자원을 사용하기 때문에 기존 작업에 영향을 준다.
- 그래서 작업 요청이 들어오면 스케줄러가 시스템의 상황을 고려하여 작업 [승인 / 거절] 결정
- 이에 따라 시스템 내에서 동시에 실행 가능한 프로세스의 총개수가 정해짐 ( = 멀티프로그래밍 정도)
- 메인프레임과 같은 큰 시스템에서 규모가 큰 일괄 작업을 처리할 때 사용
저수준 스케줄링 low level scheduling (= 단기 스케줄링)
- 가장 작은 단위의 스케줄링
- 고수준이 전체 손님 수 조절이라면 저수준은 각 손님의 주문과 그에 따른 요리 제공 순서를 미세하게 조절하는 단계
- 어떤 프로세스에 CPU를 할당할지, 어떤 프로세스를 대기 상태로 보낼지 등을 결정
- ex) 준비 상태에 있는 프로세스 중 하나를 골라 실행 상태로 보내거나, 실행 상태에 있는 프로세스를 대기 상태로 보내거나, 대기 상태의 프로세스를 준비 상태로 보내는 것
- 아주 짧은 시간에 일어나기 때문에 단기 스케줄링(short-term scheduling)이라고도 함.
- 어떤 기준에 따라 타임 슬라이스를 정할지와 같은 이슈는 시스템 성능에 많은 영향을 끼침.
- 실제로 작업이 이루어짐.
중간 수준 스케줄링
- 프로세스가 활성화된 후에도 여러 가지 사정으로 시스템에 과부하가 올 수 있다.
- 시스템의 부하를 조절하려면 고수준 스케줄링 대신 중간 수준 스케줄링을 고려해야 함.
- 시스템에 과부하가 걸려서 전체 프로세스 수를 조절해야 한다면 이미 활성화된 프로세스 중 일부를 보류 상태로 보낸다.
- 보류된 프로세스는 처리 능력에 여유가 생기면 다시 활성화한다.
- 중지 suspend, stop와 활성화 active로 전체 시스템의 활성하된 프로세스 수를 조절하여 과부하를 막는다.
- 이렇게 하면 저수준 스케줄링이 원만하게 이루어지도록 완충하는 buffer 역할을 한다.

'Basic > 운영체제 OS' 카테고리의 다른 글
4장 CPU 스케줄링 - 02(1) 선점형, 비선점형 스케줄링 (0) | 2024.04.30 |
---|---|
4장 CPU 스케줄링 - 01(3) 스케줄링 목적 (0) | 2024.04.30 |
4장 CPU 스케줄링 - 01(1) 스케줄링, CPU 스케줄러 (0) | 2024.04.24 |
1-2장 운영체제 - 운영체제 발전 (1/2) ING (0) | 2024.04.11 |
1-1장 운영체제 - 역할 및 목표 (2/4) (0) | 2024.03.29 |