66. SJF(Shortest Job First) 스케줄링에서 작업도착 시간과 CPU 사용 시간은 다음 표와 같다. 모든 작업들의 평균대기시간은 얼마인가?
2
*해설
<문제 해설>
20ㅡ8 =12
20+7-3=24
12+24=36
36/3=12
도착시간 0때 도착한거는 1번밖에없으니 1번부터시작 1번의 대기시간은 0초
1번이종료후에 2번과 3번이 도착해있는데 사용시간이 적은것부터 하는 SJF방식이니 다음 작업은 3번이함 3번은 8초에 도착했으니 1번작업이 12초남았을때 도착했으므로 3번의 대기시간은 12초(20-8, 1번의 CPU작업시간-3번의 도착시간)
2번의 대기시간은 1번과 3번이 CPU를 사용할때까지 기다리므로 24초 (20+7-3,1번의 사용시간+2번의사용시간-3번의도착시간)
대기시간을 모두더하면 0+12+24=36 (1번대기시간+3번대기시간+2번대기시간) 여기서 평균대기시간이라고 했으니 36/3=12 그래서 답은 12
[추가 오류 신고]
문제는 평균대기시간을 구해라 하는데 왜?
평균반환시간을구한거지?
[오류신고 반론]
일단 순서는 1 > 3 > 2
첫번째 작업 ( 작업 1)
0<----------------->20
도 종
착 실행 료
2번째 순서 ( 작업 3 )
0<------>8<------->20<------>27
작도 작도 작종 작종
업착 업착 업료 업료
1 3 1 3
<--대기---> 작업3의 대기 시간은 12
3번째 작업 ( 작업2 )
0<----->3<----->8<------->20<------>27<-------------->59
작도 작도 작도 작종 작종 작종
업착 업착 업착 업료 업료 업료
1 2 3 1 3 2
<-----------대기-----------> 작업2의 대기시간 24
따라서 0 + 12 + 24 / 3 = 12