计算机操作系系统处理机调度——7种算法与2种实时

计算机操作系统

4个任务 :A、B、C、D
在这里插入图片描述

调度的7种算法

1) FCFS先来先服务

算法基本思想:按照作业进入系统的先后次序来挑选作 业,先进入系统的作业优先被挑选。

优缺点 :

  • 算法容易实现;
  • 适用于作业调度和进程调度;
  • 效率不高,只顾及作业等候时间,没考虑作业要求服务时间的长短;
  • 不利于短作业和I/O型作业。
    在这里插入图片描述

2)&3) SJF短作业(进程)优先

2 非抢占式 :从后备队列中选择一个或若干个估计运行时间最短的作业(进程),将它们调入内存运行。
在这里插入图片描述
3 抢占式 :从后备队列中选择一个或若干个估计剩余运行时间最短的作业(进程),将它们调入内存运行。
在这里插入图片描述
优缺点 :

  • 算法容易实现;
  • 适用于作业调度;
  • 能有效降低作业的平均等待时间;
  • 对长作业和紧迫作业不利,有可能导致长作业(进程)长期不被调度(出现饥饿现象);
  • 要精确知道一个作业的运行时间比较困难的。

4) 高响应比优先

在这种方式下,系统一旦把处理机分配给就绪队列中优先权最高的进程后,该进程便一直执行下去,直至完成; 或因发生某事件使该进程放弃处理机时,系统方可再将处理机重新分配给另一优先权最高的进程。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

优缺点 :

  • 算法适用于作业调度;
  • 既考虑作业等待时间,又考虑作业的运行时间 ;
  • 既照顾短作业又不使长作业的等待时间过长 ;
  • 计算响应比需要耗费时间。

5) 时间片轮转

所有的就绪进程按先来先服务的原则,排成一个队列,每次调度时,把CPU分配给队首进程,并令其执行一个时间片,时间片用完时,送往就绪队列的末尾;然后,再把处理机分配给就绪队列中新的队首进程。

在这里插入图片描述
优缺点 :

  • 算法主要针对分时系统,适用于进程调度;
  • 对用户的响应及时、快速;
  • 时间片的长度确定比较困难;
  • 进程切换开销比较大。

6)&7) 多级反馈队列

1、非抢占式 :应设置多个就绪队列,并为各个队列赋予不同的优先级。 第一个队列的优先级最高,第二个队列次之,其余各队列的优先权逐个降低。该算法赋予各个队列中进程执行时间片的大小也各不相同,在优先权愈高的队列中,为每个进程所规定的执行时间片就愈小。

当一个新进程进入内存后,首先将它放入第一队列的末尾,按FCFS原则排队等待调度。当轮到该进程执行时,如它能在该时间片内完成,便可准备撤离系统;如果它在一个时间片结束时尚未完成,调度程序便将该进程转入第二队列的末尾,再同样地按FCFS原则等待调度执行,直到最后一个队列按时间片轮转执行。

在这里插入图片描述

2)抢占式 :如果处理机正在第i队列中为某进程服务时,又有新进程进入优先权较高的队列(第1~(i-1)中的任何一个队列),则此时新进程将抢占正在运行进程的处理机,即由调度程序把正在运行的进程放回到第i队列的末尾,把处理机分配给新到的高优先权进程。
在这里插入图片描述

实时系统2种

1)最早截至时间EDF

1 )非抢占式
任务1、2、3、4陆续到来,其开始截止时间3<2,则先执行任务3,此时任务4到达,开始截止时间任务4<2,则任务执行顺序为1、3、4、2。
在这里插入图片描述
2 )抢占式
在这里插入图片描述采用最早截止时间优先算法的时间图。

  • 在t = 0时,A1 和B1同时到达,由于A1的截止时间比B1早,故调度A1执行。
  • 在t =10时,A1完成又调度B1执行。
  • 在t = 20时, A2到达,由于A2的截止时间比B2早,B1被中断而调度A2执行。
  • 在t = 30时,A2完成, 又重新调度B1执行。
  • 在t = 40时,A3又到达,但B,的截止时间要比A3早,仍应让B1继续执行直到完成(t = 45),然后再调度A3执行。
  • 在 t = 55时,A3完成又调度B2执行。

2)最低松弛度LLF

只有当松弛度变为0时才开始抢占,而不是任务一到来就抢占。

松弛度 = 必须 —当前 —用时
必须 :该任务的截至时间
当前:当前时间
用时:该任务执行的用时

周期性任务A、B
A:每20执行一次,执行时间10
B:每50执行一次,执行时间25
在这里插入图片描述
需要对每一个周期计算松弛度
LLF算法执行结果
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

从今天起请叫我小张

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值