FCFS (First - come,First - serverd)

 

FCFS는 말 그대로 맨처음 오는 프로세스를 맨처음에 실행시키는 알고리즘이다.

오는 순서대로 Linked List 자료구조로 FCFS Queue에 Process - PCB를 넣어서 하나하나 차례로 실행시키고 프로세스의 자발적 CPU반납(프로세스의 종료, I/O요청)이 일어나기 전까지 실행시키는 가장 단순한 구조의 알고리즘이다.

구현은 가장 쉽지만, 효율성이 많이 떨어짐.

 

 

 

위와 같이 P1,P2,P3가 차례로 도착하고 각 프로세스의 burst time이 다음과 같다면.

 

 

CPU는 위 사진과 같이 실행할 것이다.

대기시간을 따지면,

P1 = 0 , P2 = 24, P3=27이 되어 평균 대기시간은 0+24+27/3 = 17s 가 된다.

만일, P2 ,P3 ,P1 순으로 도착했으면, 평균 대기시간은 0 + 3 + 6 /3 = 3s 가 된다. 이처럼 FCFS는 효율성이 떨어지고, 만일 여러개의 짧은 I/O CPU bound Process와 하나의 긴 CPU bound Process가 들어온다면, 여러개의 I/O Process들은 Ready Queue에서 CPU bound Process의 종료를 기다린다. 짧은 Process들을 먼저 처리하는 것과 효율성의 차이가 많이 나는데 이러한 문제점을     Convoy Effect    라고 한다.

 

이때의 Turnaround time

P1 = 0 + 24 = 24

P2 = 24 + 3 = 27

P3 = 27+ 3 = 30

 

 

'O.S' 카테고리의 다른 글

Process Scheduling - Priority  (0) 2012.04.19
Process Scheduling - SJF  (0) 2012.04.19
Critical Section - 공유메모리  (2) 2012.04.17
Interrupt  (0) 2012.04.17
Thread  (0) 2012.04.17

+ Recent posts