操作系统调度算法2

        上篇文章所述的调度算法用于批处理系统,对于分时操作系统和实时操作系统,那样的调度算法就不在适用。

1.时间片轮转调度(RR,Round-Robin)

        公平地,轮流的对为每个进程服务,在一段时间内总会轮到它,得到响应。

        按照到达就绪队列的顺序轮流执行一个时间片。假设一个时间片为50ms,一个进程执行完50ms时间,就将他放回队列尾部,因此轮流的执行。

        可用于作业/进程调度。

        因为进程为完全完成,就被中断信号强迫下处理机,因此是抢占式的算法。中断信号由时钟装置发出。

        该算法不会导致饥饿现象。

        优点:适用于分时操作系统,响应快。

        缺点:频繁进程切换,有开销,不能处理紧急事件。

        另外补充,时间片的设置会有什么影响。

        如果太小,频繁的进行进程切换,我们有知道进程切换是需要代价的,需要保存一些数据和运行环境。所以时间片太小会造成系统开销大。

        反之,如果太大,该算法就会退化成先到先服务算法,使进程响应时间增大。

2.优先级调度算法

        随着计算机发展,实时操作系统的普及,很多场景需要处理紧急事件,因此出现了此算法。

在作业/进程到达时,会指明该进程优先级。根据优先级来选择调度的进程。

        用于作业/进程调度。

        算法可分为抢占式的和非抢占式的。根据优先级是否变化,分为静态优先级和动态优先级。静态优先级即非抢占式。

        静态:创建进程时就点明优先级,之后一直不变。

        动态:会根据后续的进程,判断是否继续执行。如果存在优先级更高的,则优先将处理机分配给优先级高的。

        优点:可以处理紧急事件。

        缺点:如果源源不断有高优先级进程涌进,低优先级就可能被“饥饿”。

3.多级反馈队列调度算法

        

该算法较为抽象,建议和例子一起看,才能加深印象。

4.多级队列算法

        

分为多个队列。在每个队列基础上,各个队列采用不同调度算法,例如系统进程队列采用优先级调度,批处理采用先到先服务调度,加上时间片的限制便成了多级队列调度。假如总共100ms,系统进程分50ms,交互式进程分40ms,批处理进程分10ms。

级多种调度算法优点于一成。并且不会出现饥饿。

[提示] (1)假定系统有五个进程,每一个进程用一个进程控制块PCB来代表。进程控制块的格式为: 进程名 指针 要求运行时间 已运行时间 状态 其中,进程名----作为进程的标识,假设五个进程的进程名分别是Q1,Q2,Q3,Q4,Q5。 指针----进程按顺序排成循环队列,用指针指出下一个进程的进程控制块首地址,最后一个进程中的指针指出第一个进程的进程控制块首地址。 要求运行时间----假设进程需要运行的单位时间数。 已运行时间----假设进程已经运行的单位时间数,初始值为“0”。 状态----有两种状态,“就绪”状态和“结束”状态,初始状态都为“就绪”,用“R”表示,当一个进程运行结束后,它的状态变为“结束”,用“E”表示。 (2)每次运行你所设计的处理器调度程序之前,为每个进程任意确定它的“要求运行时间”。 把五个进程按顺序排成循环队列,用指针指出队列连接情况。另用一标志单元记录轮到运行的进程。 (3)处理器调度总是选择标志单元指示的进程运行。由于本实验是模拟处理器调度的功能,所以,对被选中的进程并不实际启动运行,而是执行: 已运行时间-1 来模拟进程的一次运行,表示进程已经运行过一个单位的时间。 请注意:在实际的系统中,当一个进程被选中运行时,必须置上该进程可以运行的时间片值,以及恢复进程的现场,让它占有处理器运行,直到出现等待事件或运行满一个时间片。在这里省去了这些工作,仅用“已运行时间+1”来表示进程已经运行满一个时间片。 (4)进程运行一次后,应把该进程的进程控制块中的指针值送到标志单元,以指示下一个轮到运行的进程。同时,应判断该进程的要求运行时间与已运行时间,若该进程要求运行时间≠已运行时间,则表示它尚未执行结束,应待到下一轮时再运行。若该进程的要求运行时间=已运行时间,则表示它已经执行结束,应把它的状态修改为“结束”(E)且退出队列。此时,应把该进程的进程控制块中的指针值送到前面一个进程的指针位置。 (5)若“就绪”状态的进程队列不为空,则重复上面(4)和(5)的步骤,直到所有进程都成为“结束”状态。 (6)在所设计的称序中应有显示或打印语句,能显示或打印每次被选中进程的进程名以及运行一次后进称对列的变化。 (7)为五个进程任意确定一组“要求运行时间”,启动所设计的处理器调度程序,显示或打印逐次被选中进程的进程名以及进程控制块的动态变化过程。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值