面试题答案
一键面试设计思路
- 公平性原则:确保每个进程都有机会执行,避免某些进程长时间得不到 CPU 资源。
- 动态优先级调整:根据进程等待时间等因素动态调整进程优先级,等待时间越长优先级越高。
- 时间片分配:给每个进程分配一定时间片,保证在短时间内各个进程都能得到执行机会。
关键数据结构
- 进程控制块(PCB):记录进程的各种信息,如进程 ID、优先级、已执行时间、等待时间等。
- 优先级队列:用于存放进程,根据进程优先级进行排序,高优先级进程在队列头部,优先被调度。
主要流程
- 初始化:创建进程控制块并加入优先级队列,设置初始优先级和时间片。
- 调度选择:从优先级队列中选择优先级最高的进程,分配 CPU 资源,开始执行。
- 时间片处理:进程在时间片内执行,时间片结束后,将进程放回优先级队列。
- 优先级调整:根据进程等待时间和已执行时间等因素调整进程优先级,等待时间增加则优先级升高,已执行时间过长则适当降低优先级。
- 重复调度:不断重复步骤 2 - 4,实现公平调度,缓解进程饥饿现象。