2) Shortest-Job-First (SJF)
* 버스트 타임이 가장 짧은 것부터 CPU 서비스를 제공한다.
* 가장 효과적인 알고리즘 방식이다.
* 선점 방식과 비선점 방식 모두 가능하다.
* 예1) 동일 프로세스들에 대해 SJF 일때 7.0 ms, FCFS 일때 10.0 ms
: SJF 알고리즘
: FCFS 알고리즘
* 예2) 동일 프로세스들에 대해 비선점 SJF 일때 7.75 ms, 선점 SJF 일때 6.5 ms
: 비선점(Nonpreemptive) SJF
: 선점(Preemptive) SJF
Time 0 일때 도착한 프로세스는 P1뿐임
Time 1 일때 프로세스 P2가 도착하여 강제로 버스트 타임이 적은 P2로 교환됨
( P1 -> 1 ms 처리하고 7 ms 남음 / P2 -> 4 ms 남음 )
* 문제점
: 실행시간을 CPU 서비스 이전에 미리 알 수 없다. 따라서 현실적으로 불가능하다.
: 통계적으로 추정할 수는 있지만 통계처리를 위한 과부하가 발생한다.
: 이론적으로는 가장 효율적인 알고리즘이지만 현실성이 없다.
댓글 없음:
댓글 쓰기