面试题答案
一键面试调度策略实现思路
- 分级调度:采用多级反馈队列调度算法。将进程划分到不同优先级的队列中,优先级高的队列先调度。例如,可设置3 - 5个队列,I/O 密集型进程初始放入高优先级队列,CPU 密集型进程放入较低优先级队列。
- 时间片分配:高优先级队列的时间片短,低优先级队列的时间片长。I/O 密集型进程在高优先级队列能快速得到处理,且因时间片短,能及时让出 CPU 给其他进程,以便及时响应 I/O 请求。如高优先级队列时间片设为10ms,低优先级队列设为100ms。
- 动态调整:进程在执行过程中,若其 CPU 占用时间过长(即表现为 CPU 密集型),则将其移到更低优先级队列;若进程频繁进行 I/O 操作(即表现为 I/O 密集型),则将其移到更高优先级队列。例如,设置一个时间阈值 T,若进程连续占用 CPU 时间超过 T,则降低优先级;若进程在一定时间内频繁发起 I/O 操作,且成功完成多次 I/O 操作,则提高优先级。
- I/O 等待处理:当一个进程发起 I/O 请求进入等待状态时,调度程序立即从就绪队列中选择另一个进程执行,充分利用 CPU 时间。
对系统整体性能的影响
- I/O 设备利用率提高:I/O 密集型进程优先级高且时间片短,能快速得到调度执行,及时发起 I/O 请求,使得 I/O 设备有更多机会被使用,减少 I/O 设备空闲时间,提高其利用率。
- CPU 利用率提高:一方面,CPU 密集型进程虽然优先级低,但由于时间片长,能在 CPU 空闲时持续运行,充分利用 CPU 资源;另一方面,当 I/O 密集型进程等待 I/O 操作完成时,调度程序会安排其他进程(包括 CPU 密集型进程)占用 CPU,避免 CPU 空闲,从而提高 CPU 利用率。
- 系统响应时间改善:对于 I/O 密集型进程,因其优先级高,能快速被调度执行,及时处理用户交互等操作,提高了系统的响应速度,用户体验更好。
- 系统吞吐量增加:通过合理调度 I/O 密集型和 CPU 密集型进程,充分利用系统资源,减少进程等待时间,使得单位时间内完成的进程数量增多,提高了系统的吞吐量。