선행글 : https://3dmpengines.tistory.com/2340
이렇게 남아 있는 시간중에 더 짧은 시간인것이 먼저 처리 되게 하는 방식을
SRTF : 즉 Preemptive SJF 스케줄링 이라 한다 , R 은 Remaining
0초에 P1 이 도착
1 초에 P2 가 도착
2 초에 P3 가 도착
3 초에 P4 가 도착
위 처럼 뭉처 있게 되는데
실행순서를 보면 처음 P1 은 레디큐에 아무것도 없기 때문에 바로 실행된다
이때 1초가 지났을때 즉 절대 시간 1초에서 보면
P1 의 Burst Time 은 8초에서 이제 7초가 남았고
P2 가 이제 들어오게 되는데 P2 의 Burst Time 이 4 라서 P1 에 남아 있는 시간
7초보다 작으니 P2가 선점되어 실행되게 된다
그다음 절대 시간 3초에서 보면 P2의 남은 시간은 3초고 P3가 이제 도착 했는데 Burst Time 이 9초 임으로
P2 가 계속 실행된다
절대시간 4초에서 보면 P2의 남아 있는 시간은 2초고 P4의 Burst Time 이 5초 임으로 마찬가지로 P2 가 계속 실행된다
절대시간 5초에서 보면 P2 는 끝났고 이제 남아 있는 P1의 시간과 나머지 P2, P4 와 마찬가지로 시간 경합을 하여 실행하게 된다
최종적으로 실행된 결과는 다음 처럼 된다
사실 위에 있는 이미지와 동일한데 한번더 쓴것
이것은 SJF 하고 비교하면 SRTF 가 평균대기 시간이 좀더 짧을 수 있다
실제 계산해보면 SJF 는 평균 대기 시간이 7.75가 된다
반응형
'운영체제 & 병렬처리 > 시스템프로그래밍' 카테고리의 다른 글
스케줄링 시간 : MLQ (Multi-Level Queue) (0) | 2023.02.27 |
---|---|
스케줄링 시간 : Priority-Base 과 RR (0) | 2023.02.26 |
스케줄링 시간 : RR (Round-Robin) (0) | 2023.02.24 |
스케줄링 시간 : SJF (0) | 2023.02.23 |
스케줄링 시간 : FCFS (0) | 2023.02.22 |