운영체제 - CPU 스케쥴링(2)
Scheduling은 Policy + Mechanism이다.
Scheduling Policy
Q. Scheduling policy가 컴퓨터 시스템의 성능에 어떤 영향을 미칠까?
( P : process, C : cpu time )
P1 : C1 = 10, P2 : C2 = 100
- P1 > P2
- W(p1) = 0, W(p2) = 10, Wavg = 5
- P2 > P1
- W(p1) = 100, W(p2) = 0, Wavg = 50
- Throughput : 단위시간당 수행완료되는 프로세스의 수
- Turnaround time : 프로세스를 실행시키는 데 필요한 시간 총량
- Waiting time : 프로세스가 작업을 완료하기 위해 Ready Queue에서 기다린 시간의 총량
- Response time : 사용자가 프로세스의 응답을 받기까지의 시간 총량.
CPU Scheduling의 목적
- Maximize resource utilization
- CPU utilization, I/O utilization
- Minimize overhead.
- Minimize the number of context-switching
- fairness(CPU를 프로세스별로 공평하게 나누는 것. 1/N 할당방식 또는 우선순위 할당방식+에이징)
< non-preemptive SJF >
< preemptive SJF >
3. Round Robin
- SJF는 이론적으로 optimal한 방법이지만 CPU Burst time을 예측할 수 없기때문에 현실적으로 불가능한 방법이었다.
- 그러므로 FIFO를 base로 하되 SJF와 유사한 방법을 사용하여 컴퓨터 시스템의 성능을 향상시킨 CPU Scheduling방법이 있는데 그것이 Round Robin이다.
- Round Robin은 일정값을 갖는 Time slice를 정의하고 그 만큼의 시간이 경과했을 때 Scheduler가 호출된다. 만약, 실행중이던 task가 time slice안에 종료하지 않았다면 그 task를 Ready Queue로 보내고 새로운 task를 Running함으로써 새로운 task는 time slice보다 실행이 완료 될 것임을 기대하는 알고리즘이다.
Q. engineering problem?
- RR 스케쥴링에서의 Time slice(Time Quantum)값을 무엇으로 할 지가 고민이다.
- Time slice가 무한대라면 FIFO와 동일한 알고리즘이고 Time slice가 0이라면 Interrupt overhead가 무한대로 증가해 불가능한 알고리즘이 된다.
(*Time slice : task에게 CPU가 할당된 후 다음 스케쥴링을 위한 Timer interrupt가 발생할때까지의 시간단위)
'운영체제 > CPU 스케쥴링(scheduling)' 카테고리의 다른 글
운영체제 - CPU 스케쥴링(3) (0) | 2019.03.19 |
---|---|
운영체제 - CPU 스케쥴링(1) (0) | 2019.03.15 |