By now low-level mechanisms of running processes should be clear. However, we have yet to understand the high-level policies that an OS scheduler employs.
- Each job runs for the same amount of time
- All jobs arrive at the same time
- Once started, each job runs to completion.
- All jobs only use CPU
- The run-time of each job is known
策略计量单位 turnaround time
T[^turnaround] = T[^completion] – T[^arrival]
新计量单位 ： Response Time 相应时间 —-任务到达系统和被体统调用的时间差
T[^response] = T[^firstturn] – T[^arrival]
instead of running jobs to completion, RR runs a job for a time slice (sometimes called a scheduling quantum) and then switches to the next job in the run queue
relax assumption 4
Doing so allows for overlap, with the CPU being used by one process while waiting for the I/O of another process to complete