프로세스 스케줄링
프로세스 스케줄링
은 프로세스의 생성 및 실행에 필요한 시스템의 잔원을 해당 프로세스에 할당하는 작업이다.
- 다중 프로그래밍 운영체제에서 자원의 성능을 향상시키고 효율적인 프로세서의 관리를 위해 작업 순서를 결정한다.
프로세스 스케줄링 목적
- 공평성 유지
- 처리율 증가
- 응답 시간 및 반환시간 최소화
- 운영체제의 오버헤드 최소화
- 무한연기 회피(교착상태)
- CPU이용률 증가
프로세스 스케줄링 기법
비선점(Non-Preemptive) 스케줄링
: 이미 할당된 CPU를 다른 프로세스가 강제로 뺏어 사용할 수 없는 스케줄링 기법.
- 할당된 프로세스가 완료될때까지 CPU를 사용한다.
- 모든 프로세스에 대한 요구를 공정하게 처리할 수 있다.
- 응답시간 예측이 가능하고, 일괄처리 방식에 적합
- 중요한 작업의 처리가 늦어질 수 있다.
- 비선점 스케줄링 종류에는
FCFS = FIFO
, SJF
, 우선순위
, HRN
, 기한부
등의 알고리즘이 있다.
선점(Preemptive) 스케줄링
: 하나의 프로세스가 실행하고 있을때 우선순위가 높은 다른 프로세스가 강제로 뺏어 사용할 수 있는 스케줄링 기법.
- 높은 우선순위 프로세스 처리가 빠르다.
- 빠른 응답시간을 요구하는 대화식 시분할 시스템에 사용된다.
- 많은 오버헤드 초래
- 선점 스케줄링 종류에는
Round Robin
, SRT
, 선점 우선순위
, 다단계 큐
, 다단계 피드백 큐
등의 알고리즘이 있다.
✅ FCFS (First Come First Service, 선입선출) = FIFO(First In First Out)
FCFS
는 준비상태 큐에 도착한 순서에 따라 차례로 CPU를 할당하는 기법
✅ SJF(Shortest Job First, 단기 작업 우선)
SJF
는 준비상태 큐에서 실행시간이 가장 짧은 프로세스에게 먼저 CPU를 할당하는 기법
✅ HRN (Hightest Response-ratio Next)
HRN
은 실행시간이 긴 SJF의 기법을 보완하여, 대기시간과 서비스 시간을 이용한 방법
우선순위 공식
우선순위 공식 = (대기시간 + 서비스시간) / 서비스시간
- 우선순위를 계산하여 높은 것부터 낮은 순으로 우선순위가 부여된다.
✅ RR (Round Robin)
RR
은 주어진 시간 할당량안에 작업을 마치지 않으면 준비 상태큐의 가장 뒤로 배치된다.
- 시간 할당량이 작아지면 프로세스 문맥 교환이 자주 일어난다.
- 시간 할당량이 커지면 FCFS 와 같은 효과를 얻을 수 있다.
✅ SRT (Shortest Remaining Time)
SRT
는 작업이 끝나기까지의 남아있는 실행 시간 추정치가 가장 작은 작업을 먼저 실행시키는 방법이다.
- FIFO 기법보다 평균 대기 시간이 감소한다
- 작업 시간이 큰 경우 오랫동안 대기하여야한다.