OS学习之调度与死锁

调度与死锁

衡量作业调度的测度:

1)作业平均周转时间T和加权平均周转时间W

T=,其中Ti=Fi-Ai,即作业结束时间减去作业到达时间,n为作业数

 

W=,其中Wi=Ti/RiR为事件运行时间

2)作业或进程的平均等待时间,即各个作业或进程进入可以调度的状态(作业为收容状态,进程为就绪状态)到开始选中的事件。

 

分级调度

1)高级调度:又称作业调度或者长程调度,用于决定将外存上处于后备队列中的那些作业调入内存,并为他们创建进程,分配必要的资源,再将新创建的进程排到就绪队列中准备执行。

 

2)中级调度:中程调度,负责进程在内存和辅存对换区之间的交换。为了缓和内存使用紧张的矛盾,中级调度将处于阻塞状态而暂时不能运行的进程暂时移到辅存对换区。当其等待的事件已经发生,则在对换区的进程由阻塞转为就绪。

3)低级调度:又称进程调度或短程调度,它决定驻留内存就绪队列中哪个进程获得处理机,然后由分派程序执行将处理机分配给该进程的“上下文切花”操作。

 

什么时候激活进程调度?

1)在CPU上运行的那个进程正好运行完成。进程调度程序应该立即工作以选择下一个运行对象。

2)运行进程被阻塞,比如需要输入输出,需要等待某种消息或某种事件,运行进程将主动让住CPU,此时应该施行调度。

3)运行进程因时间片到期被剥夺运行权,进程将转换为就绪Taipe态,进程调度将被激活;

4)当有交互进程就绪到达时,或者有进程解除等待原因,比如输入输出完成,等待的事件已发生或信息已到达,由等待态转为就绪态,实施抢占调度的系统,也会进行重新调度,以保证高优先级进程尽可能快得到运行机会。

 

高级调度、中级调度和低级调度的关系如下图:

 

 

高级调度以作业为单位,调用频率相对较低;低级调度运行频率很高,才能保证各个进程在短时间内得到运行机会。

 

常用调度算法

两类调度算法:

1)非抢占式调度算法。一旦把处理机分配给进程后,便让该进程一直执行,直到该进程完成或发生某事件而被阻塞,才能把处理机分配给其他进程。不允许人和进程抢占已经分配的处理机。

2)抢占式算法。允许调度程序根据某种原则,去停止某个正在执行的进程,将已分配的处理机重新分配给另一进程,抢占原则有以下几种:
①时间片原则;②优先权原则;③短作业优先原则。

 

FIFO调度算法:先进先出算法,实行不可抢占策略。

SJF调度算法:短作业优先调度算法,具有最短的平均周转时间,非抢占式策略算法。

HRN调度算法:最高响应比算法,非抢占式调度策略,即作业为得到作业所花的等待时间算法。

RR调度算法:时间片轮转算法,剥夺式调度算法

优先级调度算法:选择优先级最高的进程或作业进行调度,实行可抢占式策略。

 

多级反馈队列调度算法:实现优待短作业和优待收I/O制约的作业的机制。

处理流程:一个新进程首先进入队列网络的第一级队列末尾,根据FIFO原则在队列中移动直至得到处理机。如果该作业完成或由于等待I/O,或等待其他事件的完成二放弃处理机,该作业离开队列网络。若该进程在它资源放弃处理机前耗尽时间片,则该进程被放到下一级队列的末尾。若第一个队列为空,则在它到达下级队列的队首时应获得服务。进程使用完每一级队列提供的事件片之后,被移到下一较低级队列末尾。通常在一个底层队列中,进程按轮转调度法调度,直至进程运行结束。

 

优缺点分析:

1)短进程和收I/O制约的进程讲受到调度优待。(受I/O制约的进程具有较高的优先级)

2)受CPU制约的进程会有最大运行效率

3)系统可以自动判断进程的类别,并对各个进程作出恰当的处理,将它们包容在一起。

4)能够自动适应进程性质的变化

 

死锁:多个进程因竞争资源而造成的一种僵局,若无外力作用,这些进程都讲永远不能再向前推进。

 

产生死锁的必要条件:

1)互斥条件。某些资源有排他地使用性质,不能保证资源被进程任意共享。

2)请求并保持条件。进程已经占有部分资源,又还要继续申请资源。

3)不剥夺条件。进程已经拥有的资源,不能被系统强行回收。

4)环路等待条件。两个进程互相等待被对方已经占用的资源。

 

预防死锁:

1)摒弃“请求并保持条件”。系统要求所有进程要一次性地申请在进程整个推进过程中所需要的全部资源。静态分配。

 

缺点:

1)进程难以一次性提出全部资源要求;

2)只有有一种资源不满足分配要求,其他资源也不分配,进程处于等待;

3)资源占用严重浪费

 

2)摒弃“不剥夺条件”。不要求进程一次性地申请所有资源,可以在只满足当前的资源要求的情况下运行,在需要新的资源时才提出要求。但是当一个已经保持了某些资源的进程,当他再提出新的要求不能立即满足时,必须释放它占用的所有资源。动态分配

 

缺点:进程放弃已经占用但尚未用完的资源要付出很大的开销。

 

3)摒弃“环路等待条件”。申请资源严格按资源递增的顺序提出。动态分配。

 

一个无死锁的充分条件:系统有n个进程,m个资源,资源时逐个申请,每个进程至少申请一个资源,假定所有进程申请资源总数<m+n,则系统不可能有死锁。

死锁避免的算法:银行家算法http://blog.csdn.net/orange_os/article/details/7417204

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值