Priority Scheduling
Priority Scheduling는 각각의 프로세스마다 우선순위를 부여한 후에 우선순위가 가장 높은 프로세스를 먼저 실행시키는 알고리즘이다.
Nonpreemptive / Preemptive 둘다 가능하다.
위와 같이 5개의 프로세스가 존재하고 각각 프로세스의 우선순위는 다음과 같다면 CPU는 위사진과 같이 실행하게 될 것이다.
이때의 Turnaround time
P1 = 6 + 10 = 16
P2 = 0 + 1 = 1
P3 = 16 + 2 = 18
P4 = 18 + 1 = 19
P5 = 1 + 5 = 6
하지만, Priority Scheduling에는 Starvation 이 발생한다.
Starvation => 우선순위가 계속 높은 프로세스만 Ready Queue에 들어오게 된다면 낮은 것은 무한히 처리가 되지 않는 문제를 말함.
이같은 문제를 처리하기 위한 방법으로는 Aging기법이 있다.
Aging => 한프로세스가 기다리는 시간에 비례해서 우선순위를 올려주는 방법.
'O.S' 카테고리의 다른 글
Process Scheduling (0) | 2012.04.19 |
---|---|
Process Scheduling - Round_Robin (0) | 2012.04.19 |
Process Scheduling - SJF (0) | 2012.04.19 |
Process Scheduling - FCFS (0) | 2012.04.19 |
Critical Section - 공유메모리 (2) | 2012.04.17 |