面试题答案
一键面试多级队列调度算法基本原理
- 队列划分:将进程根据某些特征(如进程类型、优先级等)划分到不同队列。例如,系统进程队列、交互进程队列、批处理进程队列等。
- 调度策略:每个队列有自己的调度算法,比如系统进程队列可能采用先来先服务(FCFS),交互进程队列采用时间片轮转(RR),批处理进程队列采用最短作业优先(SJF)等。并且不同队列有不同优先级,高优先级队列中的进程优先调度。只有当高优先级队列为空时,才会调度低优先级队列中的进程。
- 时间片分配:不同队列可以分配不同时间片,通常高优先级队列时间片较短,以快速响应高优先级进程,低优先级队列时间片较长,以提高系统整体效率。
与其他常见调度算法设计理念主要区别
- 与先来先服务(FCFS)相比
- FCFS设计理念:按照进程到达的先后顺序进行调度,简单直观,公平性体现在等待时间上,先到的进程先执行。
- 多级队列调度设计理念:考虑进程特性进行分类,对不同类型进程区别对待,通过优先级和不同调度算法,满足不同进程需求,而非单纯基于到达顺序,提高系统整体性能。例如对于交互进程,FCFS可能导致响应慢,多级队列调度可将其放在高优先级队列快速响应。
- 与最短作业优先(SJF)相比
- SJF设计理念:优先调度预计执行时间最短的作业,目标是减少平均周转时间,提高系统吞吐量。
- 多级队列调度设计理念:不仅关注作业长度,更综合考虑进程多种特性,按特性分类管理调度。比如系统关键进程,即使作业长,也可放在高优先级队列优先执行,而SJF只看作业长度,可能导致关键进程等待过久。