I know, it's unrealistic
Turn around time
First In, First Out (FIFO)
= First come, First served (FCFS)
Simple and easy to implement
먼저 실행하는 프로세스가 끝날 때까지 대기해야함.
Time | 0 | 10 | 20 | 30 | 40 |
---|---|---|---|---|---|
running process | p0(run),p1,p2 | p1(run),p2 | p2(run) |
Each job runs for the same amount of time
실행시점이 같을 수는 없다.
All jobs arrive at the same times
Once started, each job runs to completion
All jobs only uses the CPU (i.e no I/O)
The run-time of each job is known
= First come, First served (FCFS)
Simple and easy to implement
먼저 실행하는 프로세스가 끝날 때까지 대기해야함.
Time | 0 | 100 | 110 | ||
---|---|---|---|---|---|
running process | p0(run),p1,p2 | p1(run),p2 | p2(run) |
How does FIFO perform now?
FIFO에서 실행시간이 긴 프로세스가 뒤쪽에 다 영향을 주는게 문제라면 실행시간이 짧은 것부터 처리하면 어떨까?
Time | 0 | 10 | 20 | 40 | 60 | 80 | 100 | 120 |
---|---|---|---|---|---|---|---|---|
running process | p1 | p2 | p0 |
Each job runs for the same amount of time
실행시점이 같을 수는 없다.
All jobs arrive at the same times
모든 작업이 같은 시점에 시작된다면 SJF가 최적일 수 있지만 언제나 그럴수는 없다.
Once started, each job runs to completion
All jobs only uses the CPU (i.e no I/O)
The run-time of each job is known
Time | 0 | 20 | 40 | 60 | 80 | 100 | 110 | 120 |
---|---|---|---|---|---|---|---|---|
running process | p0 | p1,p2 arrive | p1 | p2 |
긴 프로세스가 먼저 들어와버리면 convey effect 에 영향을 받는다.
Each job runs for the same amount of time
실행시점이 같을 수는 없다.
All jobs arrive at the same times
모든 작업이 같은 시점에 시작된다면 SJF가 최적일 수 있지만 언제나 그럴수는 없다.
Once started, each job runs to completion
혼자서 끝날 때까지 하는 건 안된다. 일전에 time sharing 에서도 양보를 할 수 있게 한다.
All jobs only uses the CPU (i.e no I/O)
The run-time of each job is known
양보하자!
Time | 0 | 10 | 20 | 30 | 40 | 60 | 80 | 100 | 120 |
---|---|---|---|---|---|---|---|---|---|
running process | p0 | p1,p2 arrive / p1(run) | p2 | p0 |
Turnaround time
Response time
Time | 0 | 10 | 20 | 30 | 40 | 60 | 80 | 100 | 120 |
---|---|---|---|---|---|---|---|---|---|
running process | p0 | p1,p2 arrive / p1(run) | p2 | p0 |
완료까지 가장 짧게 나은 것들을 먼저 처리해주자.
= Time slicing
Average response time = 2, but worst for turnaround time
시간 간격을 적당히 적게 줄여서 배분하자.
Each job runs for the same amount of time
실행시점이 같을 수는 없다.
All jobs arrive at the same times
모든 작업이 같은 시점에 시작된다면 SJF가 최적일 수 있지만 언제나 그럴수는 없다.
Once started, each job runs to completion
혼자서 끝날 때까지 하는 건 안된다. 일전에 time sharing 에서도 양보를 할 수 있게 한다.
All jobs only uses the CPU (i.e no I/O)
I/O 같이 작업시간을 알수없게 하는 이벤트들이 발생할 수 있다.
The run-time of each job is known
입력 받을 동안 다른 작업이 그 시간에 작업하면 시간을 절약할 수 있다.
Each job runs for the same amount of time
실행시점이 같을 수는 없다.
All jobs arrive at the same times
모든 작업이 같은 시점에 시작된다면 SJF가 최적일 수 있지만 언제나 그럴수는 없다.
Once started, each job runs to completion
혼자서 끝날 때까지 하는 건 안된다. 일전에 time sharing 에서도 양보를 할 수 있게 한다.
All jobs only uses the CPU (i.e no I/O)
I/O 같이 작업시간을 알수없게 하는 이벤트들이 발생할 수 있다.
The run-time of each job is known
Round Rodin 쓰자.