선점 스케줄링은 하나의 프로세스가 CPU를 할당받아 실행하고 있을 때 우선순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용할 수 있는 스케줄링 기법이다.
FCFS는 선입선출(Fisrt In First Out)로, 준비상태 큐에 도착한 순서에 따라 차례로 CPU를 할당하는 기법이다.
작업 | 도착 시간 | CPU Burst Time(사용시간) |
---|---|---|
JOB1 | 0 | 13 |
JOB2 | 3 | 35 |
JOB3 | 8 | 2 |
✩ 대기 시간 = 바로 앞 프로세스까지의 진행 시간
✩ 반환 시간 = 대기시간 + 실행 시간
대기 시간 : 0, 반환 시간 : 13
대기 시간 : 10, 반환 시간 : (10+35)45
대기 시간 : 40, 반환 시간 : (40+2)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)/20 = 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를 넘겨주는 기법이다.
프로세스 번호 | 도착 시간(Arrival Time) | 실행 시간(Burst Time) |
---|---|---|
P1 | 0 | 5 |
P2 | 1 | 3 |
P3 | 2 | 8 |
P4 | 3 | 6 |
t=0~3: P1 도착 → P1 실행(5 → 2 남음) → 큐 뒤로
t=1: P2 도착
t=2: P3 도착
t=3~6: P2 실행(3 → 0) → P2 종료
t=3: P4 도착
t=6~9: P3 실행(8-3) → 큐 뒤로
t=9~12: P4 실행(6-3) → 큐 뒤로
t=12~14: 남은 P1 2 실행 → P1 종료
t=14~17: 남은 P3 5 실행(5-3) → 큐 뒤로
t=17~20: 남은 P4 3 실행(3-0) → P4 종료
t=20~22: 남은 P3 2 실행 → P3 종료
| 0 | 3 | 6 | 9 | 12 | 14 | 17 | 20 | 22 |
| P1 | P2 | P3 | P4 | P1 | P3 | P4 | P3 |
✩ 대기 시간 = 종료 시간 - 도착 시간 - 실행 시간
SRT는 남은 실행 시간이 가장 짧은 프로세스를 우선 실행하는 방식이다. 이는 선점형 스케줄링 알고리즘으로, 새로운 프로세스가 도착했을 때 현재 실행 중인 프로세스보다 남은 실행 시간이 짧다면, 현재 실행 중인 프로세스를 중단하고 새로 도착한 프로세스를 실행합니다.
프로세스 번호 | 도착 시간(Arrival Time) | 실행 시간(Burst Time) |
---|---|---|
P1 | 0 | 8 |
P2 | 1 | 4 |
P3 | 2 | 9 |
P4 | 3 | 5 |
t=0: P1 도착 → 실행 시작 (남은 8)
t=1: P2 도착(P2 남은 시간 4 < P1 남은 시간 7) → 선점 발생 → P2 실행
t=2: P3 도착(P3 남은 시간 9 > P2 남은 시간 3) → P2 유지
t=3: P4 도착(P4 남은 시간 5 > P2 남은 시간 2) → P2 유지
t=5: P2 종료 → 남은: "P1(7), P3(9), P4(5)" → P4 선택
t=10: P4 종료 → 남은: "P1(7), P3(9)" → P1 선택
t=17: P1 종료 → 남은: P3(9) → P3 선택
t=26: P3 종료
0 1 5 10 17 26
| P1 | P2 | P4 | P1 | P3 |
✩ 대기 시간 = 종료 시간 - 도착 시간 - 실행 시간(CPU에서 실제로 사용된 시간)
참고,
길벗알앤디. 『정보처리기사 실기 단기완성』. 길벗. 2023.