操作系统相关知识(面试用)四、进程的调度算法(策略)
在上一篇文章中,我们知道了进程的生命周期和状态的转化,本篇文章将就进程的就绪状态转换到运行状态的调度算法(策略)来进行详细解析。如果有哪里不妥或者错误的地方欢迎指正。
操作系统中的进程调度算法(策略)
1.FCFS(先来先服务调度算法,非抢占式调度,队列实现):顾名思义,先请求CPU的进程或作业先被调度使用CPU。

缺陷:紧急的进程或作业不会被优先处理,影响与该进程相关的程序的运行,可能导致严重后果。
2.SJF(短作业优先调度算法):操作系统根据进程的所需时间长短优先调度所需时间小的进程,平均等待时间最短调度算法。

缺陷:所需时间长的进程有可能需要等待很长时间才会被调度到,影响进程相关的程序的执行。
3.优先级调度算法(可以是抢占,也可以是非抢占):优先级越高越先分配到CPU,相同优先级先到先服务。
存在的主要问题是:低优先级进程无穷等待CPU,会导致无穷阻塞或饥饿。解决方案:老化。
4.时间片轮转调度算法(可抢占): 按FCFS将进程放入队列中,然后给队首进程分配CPU时间片,时间片用完之后计时器发出中断,暂停当前进程并将其放到队列尾部,以此循环。
缺陷:需要制定好时间片的长度,过长就变成FCFS,过短CPU的处理次数过多,影响效率。
5.多级队列反馈调度算法: 被公认较好的调度算法。设置多个就绪队列并为每个队列设置不同的优先级,第一个队列优先级最高,其余依次递减。优先级越高的队列分配的时间片越短,进程到达之后按FCFS放入第一个队列,如果调度执行后没有完成,那么放到第二个队列尾部等待调度,如果第二次调度仍然没有完成,放入第三队列尾部……。只有当前一个队列为空的时候才会去调度下一个队列的进程。

浙公网安备 33010602011771号