扫码关注微信公众号

回复“面试手册”,获取本站PDF版

回复“简历”,获取高质量简历模板

回复“加群”,加入程序员交流群

回复“电子书”,获取程序员类电子书

当前位置: 计算机基础 > 操作系统 > 13.进程有哪些调度算法?

先来说下什么是抢占式调度,什么式非抢占式调度

抢占式调度:现行进程在运行过程中,如果有重要或紧迫的进程到达(其状态必须为就绪),则现运行进程将被迫放弃处理器,系统将处理器立刻分配给新到达的进程

非抢占式调度:非抢占式让原来正在运行的进程继续运行,直至该进程完成或发生某种事件(如I/O请求),才主动放弃处理机

先来先服务(FCFS,first come first served)

非抢占式调度算法,这是最简单的一种调度算法,比较好理解,就是根据进程到达的先后顺序执行进程,不考虑等待时间和执行时间。

优点:公平,实现简单

缺点:比较有利于长作业,而不利于短作业

时间片轮转(RR,Round-Robin)

抢占式调度,给每个进程固定的执行时间,根据进程到达的先后顺序让进程在单位时间片内执行,执行完成后便调度下一个进程执行,适用于分时系统。

优点:兼顾长短作业

缺点:平均等待时间较长,上下文切换较费时

短作业优先(SJF, Shortest Job First)

非抢占式调度算法,对预计执行时间短的进程优先处理。对应的还有最短剩余时间优先算法,这是类似抢占式的短作业优先算法

优点:相比FCFS 算法,该算法可改善平均周转时间和平均带权周转时间,缩短进程的等待时间,提高系统的吞吐量

缺点:不利于长作业

高响应比优先(HRRN,Highest Response Ratio Next)

非抢占式调度算法,最高响应比是一种折中的算法,先来先服务主要考虑的是作业的等待时间而未考虑到作业的执行时间,短作业优先主要考虑的是作业的执行时间而未考虑作业等待时间。而最高响应比同时考虑到了两者,其响应比=(预估的进程执行时间+进程等待时间)/ 预估的进程执行时间,这就保证了等待时间相同的情况下,作业执行的时间越短,响应比越高,同时响应比会随着等待时间减小而变大,优先级会提高,能够避免饥饿现象,适用于批处理系统。

优点:兼顾长短作业

缺点:计算响应比开销大

优先级调度算法:抢占式调度算法,在进程等待队列中选择优先级最高的来执行。

多级反馈队列(Multilevel Feedback Queue)

抢占式调度算,这是一种将时间片轮转和优先级调度想结合的算法,把进程按优先级分成不同的队列,先按优先级调度,优先级相同的,按时间片轮转

优点:兼顾长短作业,有较好的响应时间,可行性强


点击面试手册,获取本站面试手册PDF完整版