处理器调度算法
2019-04-02 21:55 陆许 阅读(1039) 评论(0) 编辑 收藏 举报1. P117页,练习15:最高响应比
2. P119页,练习22(2):时间片轮转
3. 现设定采用三级反馈队列调度算法,三个队列分别为0、1和2,对应时间片为2、4、8。现有四个进程A、B、C、D,到达时刻分别为0、5、7、12,执行时间分别为7、4、13、2。请写出整个进程调度过程,包括每个时间段,执行的进程,执行后进程状态,各个队列内进程的变化。
4. 比较各个调度算法的优缺点:
FCFS算法:一种非剥夺式调度算法,公平,易于实现,但效率不高,只顾及作业等候时间,未考虑作业要求服务时间的长短,不利于短作业而优待了长作业,不利于I/O繁忙型作业而有利于CPU繁忙型作业。
SJF算法:一种非剥夺式调度算法,能够克服FCFS算法偏爱长作业的缺点,易于实现,但执行效率也不高。SJF算法一是要预先知道作业所需的CPU运行时间,很难精确估算;二是忽视作业等待时间,若进入系统时间过早但计算时间长的的长作业等待时间会过长,出现饥饿现象;三是由于缺少剥夺机制,对于分时、实时处理仍不够理想。
SRTF算法:一种可剥夺式调度算法,开销大,对长作业不利,由于调度程序总是优先调度短作业,将导致长作业长期不被调度而造成饥饿现象;未完全考虑作业的紧迫程度,不能保证紧迫性作业(进程)会被及时处理;由于作业(进程)的长短只是根据用户所提供的估计执行时间而定的,而用户又可能会有意或无意地缩短其作业的估计运行时间,致使该算法不一定能真正做到短作业优先调度。
HRRF算法:一种非剥夺式调度算法,介于FCFS算法和SJF调度算法之间,既考虑作业等待时间,又考虑作业处理时间,有效地改善了调度性能,利用短进程、长进程不会被饿死。但每次计算各道作业的响应比会导致一定时间开销,增加了系统开销,其性能比SJF算法略差。
RR算法:一种剥夺式调度算法,公平,响应时间快,可以防止那些很少使用设备的进程/线程长时间占用处理器,导致要使用设备的那些进程/线程没有机会去启动设备。系统耗费在进程/线程切换上的开销比较大,紧迫任务响应慢。
MLEQ算法:进程/线程优先级可以事先规定;有较好的性能,能满足各类应用需要,会导致饥饿问题。
优先级调度算法:系统可预先规定策略未非剥夺式或剥夺式,分为静态优先级和动态优先级。静态优先级确定后生命周期不再改变,但会产生饥饿现象,使某些低优先级进程/ 线程无限期地被推迟执行。动态优先级克服了静态优先级的饥饿问题。