마농의 개발 일지

CPU 스케줄링 본문

운영체제

CPU 스케줄링

마농.. 2022. 8. 25. 23:34

1. FCFS

2. SJF

- Nonpreemptive

- Preemptive

 

SJF의 문제점

1. Starvation 문제 (기아현상) : 극단적으로 CPU  사용이 짧은 job을 선호하여, CPU 사용시간이 긴 job은 영원히 서비스 못 받을 수도 있다.

2. !! CPU 사용 시간을 미리 알 수 없다. !! 

모르지만 예측은 가능하다.

과거에 프로세스가 CPU 사용했던 행적을 보고 예측.

 

 

예측 방법 exponential averaging 방식 

 

1. t n  = actual length of n th CPUburst

2. T n+1 = predicted value for the next CPUburst

3. a, 0 <= a <= 1 (알파)

4. Define  : Tn+1 = a * tn + +(1-a)Tn

 

t : 실제 CPU 사용시간

T : 예측한 사용시간

 

------------------------------------------------

Priority Scheduling 우선순위 스케줄링

우선순위가 제일 높은 프로세스에게 CPU를 넘겨준다.

 

- A priority number(integer) is associated wihth each processus

(smallest integer = highest priority)

 

- 역시 preemptive, nonpreemptive 로 나뉨

 

----------------------------------------

Starvation 문제에 대한 솔루션

Aging (노화) : as time progresses increase the prioritry of the process

 

----------------------------

 

현대적 스케줄링 : Round Robin (RR)

각 프로세스는 동일한 크기의 할당 시간( time quantum)을 가짐.

 

적당한 타임 퀀텀을 주는 게 중요함.

'운영체제' 카테고리의 다른 글

프로그램 실행  (0) 2022.08.27
1. 운영체제란 무엇인가?  (0) 2022.08.04