본문 바로가기

학교공부/운영체제

Process Scheduling - 2

 

FCFS/FIFO

  • 먼저 온거 먼저한다
  • 장점 : fair 하다 starvation 안생긴다.
  • 단점 : wating time이 늘어날 수 있다. (ready queue에서 기다리는 시간)

 

 

SJF

  • shortest-job-first 
  • 짧은 일 먼저한다.
  • average waiting time minimum하다. 
  • burst time 예측하는거 완벽하지 못하다. 실제로 거의 안씀.

 

Priority Scheduling

  • priority를 지정하여 먼저한다
  • 어떻게 priority를 지정할건지는 issue
  • priority 지정에 따라 SJF가 될수도 FCFS가 될 수도 있다.
  • 우선순위 스케줄링에서 Non-preemptive, preemptive 두 경우 다 가능. 하는중에 우선순위 높은거오면 그거 하냐 아님 하던거 다하고 우선순위 높은거하냐 차이

 

Round Robin

  • 우선순위 없이 정해진 time quantum마다 돌아가면서 실행한다. 

time quantum에 따른 context switch

overhead ∝ waiting time 반비례 관계

cpu burst time의 평균보다 조금 높게 time quantum을 정한다.

cpu burst time까지는 context swtich 안하는게 이득.

 

Multilevel Queue

  • foreground (interactive) 와 background (batch) queue로 구분 
  • 각각의 queue에 적합한 스케쥴링 적용
  • foreground - RR ( waiting time 작아서 좋음)
  • background - FCFS (오버헤드없이 그냥 할일한다)

각각의 process queue중에서 높은 priority부터 실행한다(system -> interactive ...)

queue 안에서는 알맞은 스케줄링 방법 사용

system - priority

interactive - RR 

interactive editing - RR

batch - FCFS

근데 각각의 프로세스를 구분하기 까다롭다. cpu bound인지 i/o bound인지 어캐암 ㅋㅋ  그래서 나온게

 

Multilevel Feedback Queue

 

  • 전통적인 유닉스에서 제공했던 알고리즘
  • time quantum에 따라 판단 밑으로 보내버린다.(밑으로 갈수록 cpu burst 증가)

 

 

UNIX Scheduler

그래서 요즘엔 어떻게 하냐?

대부분 일단 priority scheduling을 한다. 그리고 같은 priority라면 RR을 한다.

priority는 바뀐다. 걍 os가 알아서 해줌.

'학교공부 > 운영체제' 카테고리의 다른 글

Memory Management Starategies  (0) 2020.05.20
Deadlock  (0) 2020.05.15
Synchronization  (0) 2020.05.09
Process Scheduling  (0) 2020.04.29
동기/비동기/차단/비차단  (0) 2020.04.26