处理机调度与死锁

一、处理机调度的基本概念
作业进入系统驻留在外存的后备队列上,再至调入内存运行完毕,可能要经历下述三级调度。
高级调度
中级调度
低级调度

作业调度决定的细节
在每次执行作业调度时,都须作出两个决定:
接纳多少作业——取决于多道程序度。
接纳哪些作业——取决于采用的调度算法。如先来先服务,短作业优先等

批处理系统:作业进入系统后先驻留外存,故需要有作业调度。
分时系统:为及时响应,作业由终端直接送入内存,故不需作业调度。
实时系统中,通常也不需作业调度。

低级调度
决定内存就绪队列中的哪个进程获得处理机,进行分配工作。是最基本的一种调度,在三种基本OS中都有。

进程调度方式
1)非抢占方式
一旦处理机分配给某进程,该进程一直执行。决不允许其他进程抢占已分配2)抢占方式
允许调度程序根据某种原则,暂停某个正在执行的进程,将处理机重新分配给另一进程。

面向系统的准则
系统吞吐量高:批处理系统的重要指标。
单位时间内所完成的作业数,跟作业本身和调度算法都有关系;
处理机利用率好
各类资源的平衡利用

不同系统需求各有侧重
批处理系统
平均周转时间短
系统吞吐量高
处理机利用率好
分时系统
响应时间快
均衡
实时系统
截至时间的保证
可预测性

批处理系统为照顾为数众多的短作业,应采用短作业优先的调度算法;
分时系统为保证系统具有合理的响应时间,应采用轮转法进行调度。

时间片长度的选择要与完成一个基本的交互过程所需的时间相当,保证一个基本的交互过程可在一个时间片内完成。
设置不合适反而都会导致响应时间长。
过长会怎样?——FCFS
过短会怎样?——频繁切换

实现实时调度的基本条件
1)提供必要的信息:
就绪时间。该任务成为就绪状态的时间。
开始截止时间、完成截止时间。
处理时间。从开始执行到完成所需时间。
资源要求。任务执行时所需的一组资源。
优先级。根据任务性质赋予不同优先级。
2)系统处理能力足够强
3)采用抢占式调度机制
4)具有快速切换机制

实时调度算法的分类
根据实时任务的性质
硬实时调度算法
软实时调度算法;
根据调度时间不同
静态调度算法
动态调度算法。
按调度方式
非抢占调度算法
抢占调度算法;
多处理机环境下
集中式调度
分布式调度

进程切换发生的时机
进程执行完
进程I/O阻塞
新进程出现时可能的抢占
某进程松弛度为0时发生抢占
有的时刻,其他并发的实时任务下一周期未到来,会出现只有一个任务的情况。

静态分配方式:
进程从开始至完成被固定分配到一个处理器上。
优点是进程调度开销小,缺点是各处理器可能出现忙闲不均。
动态分配方式:
系统中仅设置一个公共的就绪队列,分配进程总是给空闲处理器。某一进程的执行可能曾在不同的处理器上。
优点是消除忙闲不均现象。但松散耦合系统增大调度开销。

产生死锁的原因可归结为如下两点:
竞争资源。
进程间推进顺序非法。

产生死锁的必要条件
互斥条件:进程对所分配到的资源进行排他性使用
请求和保持条件:进程已经保持了至少一个资源,又提出新的资源请求,而新请求资源被其他进程占有只能造成自身进程阻塞,但对自己已获得的其他资源保持不放,必然影响其他进程。
不剥夺条件:进程已获得的资源未使用完之前不能被剥夺,只能在使用完时由自己释放。
环路等待条件。

处理死锁的基本方法
事先预防:
预防死锁
避免死锁
事后处理:
检测死锁
解除死锁。

银行家算法中的数据结构
(1)各类可利用资源的数量
向量Available :(i1,i2,…,im),含m个元素,每个元素代表一类可利用的资源数目。
动态变化的,初始值是系统配置的该类资源的全部数目,值随资源的分配与回收而动态的改变。
实现:一维数组。Available【j】=K,表示系统中Rj类资源现有可用数量为K个。
(2)每个进程对每类资源的需求
最大需求、已获得的、还需要的
最大需求矩阵Max
n*m,系统中n个进程中每个进程分别对m类资源的最大需求。
取值:根据进程需求赋初始值。
实现:二维数组。Max【i,j】=K,表示进程 i 需要Rj类资源的最大数目为K。

死锁的检测
检测时机:
当进程等待时检测死锁
定时检测
系统资源利用率下降时检测死锁

死锁的解除
当发现进程死锁时,便应立即把它们从死锁状态中解脱出来。常采用的方法是:
剥夺资源。从其他进程剥夺足够数量的资源给死锁进程以解除死锁状态。
撤销进程。最简单的是让全部进程都死掉;温和一点的是按照某种顺序逐个撤销进程,直至有足够的资源可用,使死锁状态消除为止。

若要使当前运行进程总是优先级最高的进程,则应选择:
可抢占优先级调度算法。
在分时系统中,进程调度经常采用:
时间片轮转调度算法。
可引起进程调度的原因:
进程运行结束
进入阻塞状态
时间片用完
有更高优先级的进程进入就绪队列
进程调度采用时间片轮转法时,时间片过大,就会使轮转法转化为:
先来先服务调度算法。
进程的调度方式有两种:
可抢占和非抢占方式
死锁产生的四个必要条件是:
互斥、占有且等待、不剥夺和环路等待。
在有m个进程的系统中出现死锁时,死锁进程的个数k满足条件: 2 ≤ k ≤ m

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值