SRTF 스케줄링
CPU 스케줄링
SRTF 스케줄링 개념 정리
SRTF 스케줄링이란?
선점형 SJF 스케줄링 (프로세스 실행 중 더 적은 CPU 작업 시간을 요구하는 프로세스가 들어오면 현재 실행중인 프로세스를 멈추고 새로 들어온 프로세스를 실행)
ex) 피자를 나누어 드립니다. 제일 배가 고픈 사람부터 피자를 드릴거예요. 단, 피자를 먹는 도중 더 배고픈 사람이 나타난다면 그 사람에게 피자를 넘기셔야 합니다.
SRTF 스케줄링 단점
1. 프로세스 생성 시 총 실행 시간 추정 작업 필요
2. 잦은 선점으로 문맥 교환/오버헤드가 증가함
3. 실행 시간이 긴 프로세스들의 평균 응답 시간 길어짐
SRTF 스케줄링을 실행했을 경우, 결과를 알아보자.
프로세스 |
도착 시간 |
버스트 시간 |
P1 |
0ms |
8ms |
P2 |
1ms |
4ms |
P3 |
2ms |
9ms |
P4 |
3ms |
5ms |
위와 같은 프로세스를 처리하는 스케줄링 표 ↓
P1 |
P2 |
P3 |
P1 |
P3 |
0 1 5 10 17 26(ms)
→ 가장 먼저 들어온 프로세스를 처리하던 도중 버스트 시간이 더 짧은 프로세스가 들어왔기 때문에 실행하던 프로세스를 중단시키고 버스트 시간이 더 짧은 프로세스를 우선적으로 실행한다. P1은 처리하기 까지에 9초를, P2는 0초를, P3는 3초를, P4는 14초를 대기했으므로 평균 대기 시간은 6.5초이며 평균 반환 시간은 13초이다. (반환 시간은 프로세스를 다 끝낼 때까지 걸리는 시간이다.)