선점 스케줄링은 하나의 프로세스가 CPU를 할당받아 실행하고 있을 때 우선순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용할 수 있는 스케줄링 기법이다.
FCFS는 선입선출(Fisrt In First Out)로, 준비상태 큐에 도착한 순서에 따라 차례로 CPU를 할당하는 기법이다.
작업 | 도착 시간 | CPU Burst Time(사용시간) |
---|---|---|
JOB1 | 0 | 13 |
JOB2 | 3 | 35 |
JOB3 | 8 | 2 |
✩ 대기 시간 = 바로 앞 프로세스까지의 진행 시간
✩ 반환 시간 = 대기시간 + 실행 시간
대기 시간 : 0, 반환 시간 : 13
대기 시간 : 10, 반환 시간 : 45
대기 시간 : 40, 반환 시간 : 42
✩ 평균 실행 시간 : (13 + 35 + 2) / 3 = 16.66
✩ 평균 대기 시간 : (0 + 10 + 40) / 3 = 16.66
✩ 평균 반환 시간 : (13 + 45 + 42) / 3 = 33.33
SJF는 준비상태 큐에서 기다리고 있는 프로세스 중에서 실행 시간이 가장 짧은 프로세스에게 먼저 CPU를 할당하는 기법이다.
프로세스 번호 | 실행 시간 | 프로세스 번호 | 실행 시간 | 대기 시간 | 반환 시간 | |
---|---|---|---|---|---|---|
P1 | 7 | P4 | 3 | 0 | 3 | |
P2 | 8 | P3 | 4 | 3 | 7 | |
P3 | 4 | P1 | 7 | 7 | 14 | |
P4 | 3 | P2 | 8 | 14 | 22 |
✩ 평균 대기 시간 : (0 + 3 + 7 + 14) / 4 = 6
✩ 평균 반환 시간 : (3 + 7 +14 + 22) / 4 = 11.5
HRN은 대기 시간과 서비스(실행) 시간을 이용하는 기법이다.
(대기 시간 + 서비스 시간) / 서비스 시간
프로세스 번호 | 실행 시간 | 대기 시간 | 우선순위 계산 |
---|---|---|---|
P1 | 20 | 10 | (20+10)/2 = 1.5 |
P2 | 4 | 20 | (4+20)/4 = 6 |
P3 | 6 | 10 | (6+10)/6 = 2.6 |
우선순위 : P2 → P3 → P1
RR은 각 프로세스를 시간 할당량(Time Slice, Quantum)동안만 실행한 후 실행이 완료되지 않으면 다음 프로세스에게 CPU를 넘겨주는 기법이다.
SRT는 현재 실행중인 프로세스의 남은 시간과 준비상태 큐에 새로 도착한 프로세스의 실행 시간을 비교하여 가장 짧은 실행 시간을 요구하는 프로세스에게 CPU를 할당하는 기법이다.
참고,
길벗알앤디. 『정보처리기사 실기 단기완성』. 길벗. 2023.