예를 들어 세개의 프로세스가 있고 각각 실행시간이 24, 3, 3과 같다고 가정해보자. 만약 P1이 가장 먼저 실행되면 P2는 24msec을 기다려야하고 P3는 27msec을 기다려야한다. 때문에 평균 대기시간 (AWT, Average Waiting Time)은 (0+24+27)/3 = 17msec이다. 즉, 앞선 프로세스의 시간이 길어지면 전체 시스템의 평균 대기시간이 길어진다는 단점이 있다.
만약 SJF(Shortest Job First)스케줄링 기법이었다면, P3, P2, P1 순으로 실행하여 평균 대기시간 (AWT)는 (0+3+6)/3 = 3msec이였을 것이다. 이러한 결과는 항상 먼저 도착한 프로세스를 먼저 실행시키는 것이 마냥 좋은 것은 아니라는 것을 의미한다.
실습) 위의 그림을 바탕으로 표를 채우시오.
Process ID | Arrival time | Burst Time(BT) | Wating Time(WT) | Turnarround Time(TT) | Normalized TT NTT = (TT/BT) |
---|---|---|---|---|---|
P1 | 0 | 3 | 0 | 3 | 1 |
P2 | 1 | 7 | 2 | 9 | 9/7 |
P3 | 3 | 2 | 7 | 9 | 9/2 |
P4 | 5 | 5 | 7 | 12 | 12/5 |
P5 | 6 | 3 | 11 | 14 | 14/3 |
NTT : 체감 대기시간
이처럼, FCFS는 실행시간이 긴놈이 앞에 들어오면 평균대기시간이 길어짐을 볼 수 있다.