面试题答案
一键面试时间片轮转调度算法
- 基本原理:将所有就绪进程按先来先服务的原则排成一个队列,每次调度时,把CPU分配给队首进程,并让其执行一个时间片。时间片结束时,该进程被剥夺CPU,重新排到就绪队列的末尾等待下次调度。
- 优点:
- 公平性,每个进程都能在一定时间内获得CPU时间,不会导致某个进程长期得不到执行。
- 响应时间相对较短,能较好地满足交互式系统的需求,让用户感觉系统一直在运行。
- 缺点:
- 时间片大小难以确定,如果时间片过长,退化为先来先服务算法,短作业等待时间过长;如果时间片过短,进程上下文切换频繁,增加系统开销。
- 对长作业不利,长作业可能需要多次时间片轮转才能完成,导致周转时间较长。
- 适用场景:适用于交互式系统,如分时操作系统,保证每个用户的操作都能得到及时响应。
优先级调度算法
- 基本原理:为每个进程分配一个优先级,调度时从就绪队列中选择优先级最高的进程分配CPU。优先级可以根据进程的类型(如系统进程优先级通常高于用户进程)、资源需求、任务紧急程度等因素确定。
- 优点:
- 可以优先处理重要或紧急的任务,提高系统的整体性能和响应速度。
- 灵活性高,可根据不同的应用场景设置不同的优先级计算方法。
- 缺点:
- 如果低优先级进程一直得不到调度,可能会产生饥饿现象,即低优先级进程长时间得不到执行机会。
- 优先级的合理设定较为困难,若设置不当,可能导致系统性能下降。
- 适用场景:适用于实时系统,如航空交通管制系统、工业控制系统等,优先处理紧急任务;也适用于多用户系统中,根据用户的重要性或任务类型分配优先级。
短作业优先调度算法
- 基本原理:从就绪队列中选择估计运行时间最短的进程分配CPU。若有新的短作业到达,且其运行时间比当前正在执行的作业剩余时间短,则可能剥夺当前作业的CPU,调度新的短作业执行。
- 优点:
- 平均周转时间和平均等待时间最短,能有效提高系统的吞吐量,因为短作业能快速完成,减少了系统中作业的平均等待时间。
- 缺点:
- 长作业可能会饥饿,因为只要不断有短作业到达,长作业可能长时间得不到执行机会。
- 作业的运行时间往往难以准确估计,实际应用中可能导致调度结果不理想。
- 适用场景:适用于作业运行时间可预估且作业之间差异较大的批处理系统,能充分利用系统资源,提高系统处理效率。