프로세스 스케줄링
- 스케줄링이란 여러 가지 작업의 처리 순서를 결정하는 것
- 프로세스 스케줄링이란 주어진 프로세스가 여러 개인 경우, 프로세스 처리 순서를 결정하는 것
- 프로세스 스케줄링에는 상위, 중위, 하위 단계의 스케줄링이 있다.
- 상위 단계 스케줄링
- 요청이 들어온 작업들을 상황에 맞춰서 효율적으로 이용할 수 있도록 해주는 작업
- 준비(ready) 큐로 보내는 작업
- 하위 단계 스케줄링
- 중간 단계 스케줄링
- 시스템에 부하가 많아졌을 때 일부 프로세스들을 일시 대기(waiting) 시킨 후 활성화해서 일시적으로 부하를 조절한다.
하위 단계 스케줄링
- 준비 큐에 있는 프로세스를 선택하여 사용 가능한 CPU 를 할당(디스패치) 하는 역할
- 수행 주체: 디스패처(dispatcher)
스케줄링 기본 목표
- 공정성
- 모든 프로세스가 적정 수준에서 CPU 작업을 할 수 있게 함
- 균형
- 운영체제의 유형에 따른 스케줄링 목표
- 일괄처리 운영체제 : 한 번에 처리
- 처리량 극대화
- 반환 시간의 최소화
- CPU 활용 극대화
- 시분할 운영체제 : 시간적으로 분할하여 번갈아 가면서 처리
- 실시간 운영체제 : 우선 순위에 따른 실시간 처리
- 이런 스케줄링의 목표에 따라서 우선적으로 고려해야 할 정책
선점(preemptive) 스케줄링 정책
- 실행 중인 프로세스에 인터럽트를 걸고 다른 프로세스에 CPU를 할당할 수 있는 스케줄링 방식
- 높은 우선순위의 프로세스를 우선 처리해야 하는 경우 유용
- 문맥 교환으로 인한 오버헤드 발생
- 문맥 교환이란?
- CPU 가 현재 실행하고 있는 프로세스의 문맥(CPU 의 모든 레지스터)을 PC 에 저장하고 다른 프로세스의 PCB 로 부터 문맥을 가져오는 작업
비선점(nonpreemptive) 스케줄링 정책