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마다 돌아가면서 실행한다.
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 |