面试题答案
一键面试进程调度算法与系统资源分配策略对系统吞吐量的协同影响
- 进程调度算法的作用:进程调度算法决定了哪个进程在何时能够获得CPU资源运行。例如,先来先服务(FCFS)算法按照进程到达的先后顺序分配CPU,短作业优先(SJF)算法优先调度预计运行时间短的作业。合理的调度算法能减少进程等待时间,提高CPU利用率,进而提升系统吞吐量。
- 系统资源分配策略的作用:系统资源分配策略负责将除CPU外的其他资源,如内存、I/O设备等分配给进程。比如,采用银行家算法进行资源分配,可避免死锁,确保系统资源得到有效利用,保障进程顺利运行,从而有利于提高系统吞吐量。
- 协同影响:两者协同工作。若调度算法选择不当,即使资源分配合理,也可能导致某些进程长时间等待CPU,无法充分利用已分配资源,降低吞吐量;反之,若资源分配不合理,调度算法再好,进程也会因资源不足而无法高效运行。例如,若进程频繁请求I/O资源,而I/O设备分配策略不佳,会导致I/O等待时间长,即使CPU调度算法高效,整体吞吐量也会受限。
应对I/O密集型和CPU密集型混合任务的进程调度策略
- 时间片轮转算法改进:基本的时间片轮转算法为每个进程分配相同时间片。对于混合任务,可根据任务类型动态调整时间片。对于I/O密集型任务,分配较短时间片,因为它们通常在短时间内就会发起I/O请求,让出CPU,这样能让更多I/O密集型任务及时得到调度,提高I/O设备利用率;对于CPU密集型任务,分配稍长时间片,减少调度开销,使其能更高效地使用CPU。
- 多级反馈队列调度算法:设置多个优先级队列,每个队列采用不同的调度算法(如高优先级队列用时间片轮转且时间片短,低优先级队列用时间片轮转但时间片长)。新进程首先进入高优先级队列,若在一个时间片内未完成,则降入下一级队列。I/O密集型任务由于经常主动让出CPU,能保持在较高优先级队列,优先获得调度;CPU密集型任务随着时间推移会逐渐降到较低优先级队列,但因其对CPU需求连续,在低优先级队列的长时间片也能高效运行,从而优化系统吞吐量。