文章目录
调度(Scheduling)
所有进程之间的关系
(多进程就绪时,哪一个应该在CPU上执行)
何时调度 怎么调度 怎么适合上层应用
何时调度
- 进程生成(process create)
- 进程退出(process exits)
- 此进程放弃CPU,决定下一个进程进入
- 进程因IO堵塞(process block by IO)
- IO中断(IO interrupt)
- IO等待的包到达后唤醒堵塞进程转变为就绪态
怎么调度
即调度算法(操作系统的核心)
课本分类(不严格):
抢占和非抢占(Preemptive & Non-Preemptive)
- 抢占:高优先级进程可能抢占正在运行进程的CPU资源
问题:可能优先级反转,死锁
优先级反转问题:有优先级时高优先级进程就绪会使得在临界区中的低优先级进程无法被调度,就无法离开临界区
批处理调度(Batch Scheduling)
一次性运行多个进程(提高吞吐量,减少结束间隔(turnaround time),提高CPU利用率)
尽量提高硬件利用率