三 处理机调度与死锁

3.1 处理机调度的层次和调度算法的目标

     3.1.1 调度的层次
          (1) 高级调度(high level scheduling),高级调度又称长程调度或作业调度,决定处于后备队列那几个作业调入内存,分配相应的资源,创建PCB,放入就绪队列,等待获取CPU执行。高级调度处理的对象是作业。在多道批处理OS实用较多,实时,分时OS中不设置高级调度。
          (1) 低级调度(low level scheduling) 又称为进程调度或者短程调度,所处理的对象是进程,主要功能是决定就绪队列中的那个进程过的CPU,在多道批处理,实时,分时OS中必须设置的。
          (1) 中级调度又称为内存调度,目的是提高内存利用率和系统吞吐量
在以上三种调度中,远程调度运行速度最快,因此又称为短程调度。
     3.1.2 处理机调度算法的目标
3.1.2.1 处理机调度算法的共同目标
(1) 资源利用率 (2)公平性 (3)平衡性 (4)策略强制执行
3.1.2.2 批处理系统的目标
(1)平均周转时间短:包括
1)作业从后备队列调度的时间 2)进程在就绪队列上等待调度的时间 3)进程在CPU上执行的时间 4)进程等待I/O操作完成的时间
(2) 系统吞吐量高
(3) 处理机利用率高
3.1.2.3 分时系统的目标
(1) 响应时间快
包括三部分时间:1) 请求信息从键盘输入开始,直至将其传送到处理机的时间 2)处理机对请求信息处理的时间 3) 将形成的相应信息送到终端显示器的时间
(2) 均衡性
3

3.2 作业与作业的调度

3.2.1 作业(job):包含程序和数据以及一份作业说明书,在批处理系统中,是以作业为基本单位从外存调入内存的
3.2.2 作业步(job step): 作业中的每一个加工步骤称为一个作业步。
3.2.3 作业控制块(job control black) : 是作业在系统存在的标识。
3.2.4 作业调度的主要任务:根据多道程序度,及允许多少个作业能够同时在内存中执行,从而决定接纳多少个作业。接纳那些作业
3.2.5 先来先服务(FCFS)调度算法:作业调度和进程调度都可以用(很少使用)
3.2.6 短作业优先(SJF):作业调度和进程调度都可以用,作业执行时间越短优先级越高
3.2.7 优先级调度算法(priority-scheduling alogrithm, PSA)
对于FCFS算法调度,等待时间越长,优先级越高。
对于SJF算法调度,作业执行时间越短,优先级越高。
而优先级调度算法是基于作业的紧迫程度,赋予相应的优先级。
作业调度和进程调度都可以用。
3.2.8 高相应比优先调度算法(highes response ratio next, HRRN)
该算法既考虑了作业的等待时间也考虑了运行时间,改善了处理机调度的性能。
        优先权=(等待时间+要求服务的时间)/ 要求服务的时间
由公式可以看出: (1) 如果作业的等待时间相等,那么要求服务的时间越短,那么优先权就越高,类似于 SJF算法(2)如果要求服务的时间相等,优先权由等待时间决定,类似于FCFS算法(3)对于长作业的优先权,随着等待时间而增加

缺点:每次调度之前都需要做响应比的计算,增加系统的开销。

3.3 进程调度

进程的调度方式:
1)非抢占氏(Nonpreemptive Mode)
2)抢占式(Preemptive Mode)
在这里插入图片描述
周转时间 = 完成时间 - 到达时间
带权周转时间 = 周转时间 / 服务时间
q = 4
(FCFS算法)
A的到达时间为0。所以先处理A,完成时间为4,周转时间为4,带权周转时间为1,执行完A任务,B,C,D,E任务都在就绪队列等待,再执行B,完成时间为4 +3 = 7, 周转时间为 7 - 1 = 6,带权周转时间 = 6 / 3 = 2…
多级反馈队列调度算法(multileved feedback queue):目前公认的一种较好的算法
(1) 设置多个就绪队列。在系统中设置多个就绪队列,并为每个队列赋予不同的优先
级。第一个队列的优先级最高,第二个次之,其余队列的优先级逐个降低。该算法为不同
队列中的进程所赋予的执行时间片的大小也各不相同,在优先级愈高的队列中,其时间片
就愈小。例如第二个队列的时间片要比第一个的时间片长一倍, …第i+1个队列的时
间片要比第i个的时间片长一倍。
在这里插入图片描述
(2) 每个队列都采用FCFS算法。当新进程进入内存后,首先将它放入第一 队列的末尾,按FCFS原则等待调度。当轮到该进程执行时,如它能在该时间片内完成,便可撤离系统,否则,即它在一个时间片结束时尚未完成,调度程序将其转入第二以列的末尾等待调如果它在第二队列中运行一个时间片后仍未完成,再依次将它放入第三队列,… 以此类推。当进程最后被降到第n队列后,在第n队列中便采取按RR方式运行。
(3)按队列优先级调度。调度程序首先调度最高优先级队列中的诸进程运行,仅当第一队列空闲时 才调度第二队列中的进程运行:换言之,仅当第1~(i-1)所有队列均空时才会调度第i队列中的进程运行。如果处理机正在第i队列中为某进程服务时又有新进程进入任一优先级较高的队列, 此时须立即把正在运行的进程放回到第i队列的末尾,而把处理机分配给新到的高优先级进程。

3.4 实时调度

在这里插入图片描述
最早截止时间优先EDF(earliest deadline first)算法
任务的截止时间越早,优先级就越高。
最低松弛度优先LLF(least laxiy first)算法
松弛度 = 必须完成时间 - 其本身的运行时间 - 当前时间

3.5 死锁概述

在这里插入图片描述

3.6 预防死锁

3.7 避免死锁

安全状态:是指系统能按某种推进顺序为每个进程分配其资源,满足最大需求,使得每个进程都能顺利执行完毕,此时称为安全序列。无法找到这样一个安全序列,则称为不安全状态。
进入不安全状态不一定死锁。
进入安全状态不会进入死锁。
最有代表性的避免死锁的算法是Dijkstra算法。
在这里插入图片描述

3.8 死锁的检测和解除

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值