美文网首页
第三章 处理机调度与死锁

第三章 处理机调度与死锁

作者: 48e4599ddfa4 | 来源:发表于2018-11-25 21:29 被阅读0次

    3.1处理机调度相关基本概念

    处理机调度

    1高级调度:又称作业调度或长程调度,接纳调度(主要在早期批处理阶段,处理在外存上的作业)

    系统运行并不一定存在高级调度

    2.低级调度:也称为进程调度、微观调度或短程调度

    最基本的一种调度,在批处理系统、分时系统、实时系统中都有

    3.中级调度

    引入目的:提高内存利用率和系统吞吐量

    5.选择调度方式和调度算法的若干准则

    1)面向用户的准则:周转时间短、响应时间快、均衡性、截止时间的保证、优先权准则

    2)面向系统的准则:系统吞吐量高、处理机利用率好、各类资源的平衡利用

    二、调度算法

    1.先来先服务调度算法FCFS(非抢占方式)

    按照作业提交。或进程变为就绪状态的先后次序分派CPU,新作业只有当当前作业或进程执行完或阻塞才获得CPU运行

    不利于段作业(进程)

    不足:段作业C的带权周转时间高达100长作业D的带权周转时间仅为1.99;有利于CPU繁忙型的作业,而不利于I/o繁忙的作业

             2.短作业(进程)有限调度算法SJF/SPF

    此算法能有效的降低作业的平均等待时间,提高系统吞吐量

    方式:分抢占和非抢占两种方式,上例为简单的非抢占式。

    不足:1.对短作业有利,但同时造成了对长作业的不利。2.由于作业(进程)的长短含主观因素,不一定能真正做到短作业优先。3.未考虑作业的紧迫程度,因而不能保证紧迫性作业的及时处理。

    3.高优先权优先调度算法HPF

    1)分非抢占式和抢占式优先权算法(关键点:新作业产生时)

    2)优先权的类型

    静态优先权:创建进程时确定,整个运行期间保持不变

    动态优先权:创建进程时赋予的优先权,可随进程的推进或随其等待时间的增加而改变

    3)高响应比优先调度算法HRRN

    HRRN为每个作业引入动态优先权,使作业的优先级随着等待时间的增加而以速率a提高

    1.同时到达的作业优先权相同(若等待时间t相同,利于短作业;长作业的优先级随等待时间的增加而提高)

    2.实行时间相同的作业,优先权的高低决定于其等待时间的长短,也就是先来先服务

    什么时候计算各进程的响应比优先权?

    调度选择时:作业完成时、新作业完成时(抢占、非抢占)、时间片完成时、进程阻塞时

    3.基于时间片的轮转调度算法RR

    (1)时间片轮转算法

    时间片长度                 过长:FCFS    过短:频繁切换

    (2)多级反馈队列算法FB

    1.设置多个就绪队列,各队列有不同的优先级,优先级从第一个队列依次降低

    2.赋予各队列进程执行时间片大小不同,优先权越高,时间片越短

    三、实时调度

    1.系统能够在限定的响应时间内提供所需水平的服务

    2.计算的正确性不仅取决于程序的逻辑正确性,也取决于结果产生的时间,如果系统的时间约束条件得不到满足,将会发生系统出错

    基本条件:

    1)提供必要的信息

    就绪时间、开始截止时间、完成截止时间、处理时间、资源要求、优先级

    2)系统能力足够强

    3)采用抢占式调度机制

    4)具有快速切换机制

    抢占式调度算法:1、基于时钟:某高优先级任务到达后并不立即抢占,,而等下一个时钟中断时抢占。2、立即抢占:一旦出现外部中断,只要当前任务未处于临界区,就立即抢占处理机。

    最早截止时间优先EDF、最低松弛度优先LLF(主要用于抢占调度方式中)

    四、产生死锁的原因和必要条件

    多道程序系统借助并发执行改善资源利用率,提高系统吞吐量,但可能发生一种危险——死锁(指多个进程在运行过程中,因争夺资源而造成的一种僵局。当进程处于这种状态时,若无外力作用,它们都将无法再向前推进)

    饥饿:指一个进程无休止地等待

    产生死锁的原因:1.竞争资源     2.进程间推进程序非法(请求和释放资源的顺序不当)

    产生死锁的必要条件:互斥条件、请求和保持条件、不剥夺条件、环路等待条件

    死锁避免属于动态策略

    预防死锁:

    ①摒弃“请求和保持”条件:所有进程开始运行前,必须一次性的申请其在整个运行过程所需的全部资源(AND)。算法简单、易于实现且很安全。但缺点是资源浪费严重、或进程延迟运行。

    ②摒弃“不剥夺”条件:允许进程先运行,但当提出的新要求不被满足时必须释放它已保持的所有资源,待以后需要时再重新申请。实现比较复杂且付出很大代价。可能会造成前功尽弃,反复申请和释放等情况。

    ③摒弃“环路等待”条件:将所有资源按类型进行线性排队,赋予不同序号。所有进程对资源的请求必须严格按照资源序号递增的次序提出,这样在所形成的资源分配图中,不可能会出现环路。

    2.避免死锁

    安全状态:没有死锁;不安全状态:可能会产生死锁

    安全序列:只要系统按此进程列分配资源,就能使每个进程都顺利完成。

    3.银行家算法避免死锁

    死锁的解除:1.剥夺进程。2.撤销进程

    相关文章

      网友评论

          本文标题:第三章 处理机调度与死锁

          本文链接:https://www.haomeiwen.com/subject/gokyqqtx.html