操作系统——快速复习笔记04

处理机调度与死锁

处理机调度的层次:

①高层调度(长程调度、作业调度)
对象:作业
将【外存】上处于【后备队列】的作业调入【内存】,并放入【就绪队列】
②低级调度(短程调度、进程调度)
对象:进程
决定【就绪队列】中哪个进程获得处理机
③中级调度(内存调度)
目的:提高【内存利用率】和【系统吞吐量】
过程:内存->外存(挂起状态)->内存(对换


处理机调度算法

为清晰表述等待时间和执行时间分配情况引入:

平均带权周期
在这里插入图片描述

作业周转时间(Ti):作业被提交给系统开始到作业完成为止的时间间隔
提供的服务时间(Tsi)

调度算法:

①先来先服务调度算法(FCFS,first come first serve)
②短作业优先调度算法(SJF, short job first)
③优先级调度算法
1、非抢占式优先级调度算法
2、抢占式优先级调度算法

只有当新作业到达时,才会触发抢占判断

3、高响应比优先(HRRN,highest response ratio next)

既考虑了作业的等待时间,又考虑了作业的运行时间

Rp(响应比) = 动态优先级 =(等待时间+要求服务时间)/要求服务时间)= 响应时间比/要求服务时间
等待时间:当前时间 — 作业到达时间

不会发生抢占式优先级调度,因为抢占判断出现在作业到达,而作业到达时刻的等待时间是0,即:Rp = 1,一定比其他已经到达的作业优先级低


轮转调度算法(RR,round robin)

系统先将就绪进程按FCFS排成一个就绪队列,队头的进程开始运行,如果进程在一个时间片内运行完毕,则后续的进程跟上,依次同上进行;若没运行完毕,则该程序会被送到队尾(比下一个进程慢一个运行)


最早截止时间优先算法(EDF,earliest deadline first)

1、非抢占式调度方式用于非周期实时任务
2、抢占式调度方式用于周期实时任务


最低松弛度优先算法(LLF,least laxity first)

松弛度=必须完成时间 - 本身运行时长 - 当前时间


死锁预防

产生死锁的必要条件: ①互斥条件;②请求和保持条件;③不可抢占条件;④循环等待条件

1、破坏“请求和保持”条件
2、破坏“不可抢占”条件
3、破坏“循环等待”条件

系统安全状态

安全状态:系统能按某种进程推进顺序(P1,P2,…,Pn)(安全序列),为每一个进程Pi分配其所需的资源,直至满足每一个进程对资源的最大需求,进而使每个进程都可以顺利完成一种系统状态


银行家算法避免死锁

可利用资源向量Available
最大需求矩阵Max
已分配矩阵Allocation
需求矩阵Need

Need[i, j] = Max[i, j] - Allocation[i, j]
Requesti是进程Pi的请求向量Requesit[j] = K表示Pi需要K个Rj类型的资源

Pi发出资源请求后:
①if Requesti[j] ≤ Need[i, j](申请的不大于需要的),转向②;否则,出错;
②if Requesti[j] ≤ Available[j](申请的不大于可用的),转向③;否则,无资源,等待;
③试探分配资源,修改数据:
Available[j] = Available[j] - Requesti[j];
Allocation[i, j] = Allocation[i, j] + Requesti[j];
Need[i, j] = Need[i, j] - Requesti[j];
④执行安全性算法,安全就正式分配,否则,本次试探分配作废,Pi等待;


安全性算法

工作向量Work 系统可提供给进程继续运行所需的各类资源数目
完成向量Finish:表示系统是否又足够的资源继续分配给进程(判断系统是否安全
①设Work = AvailableFinish[i] = FALSE;
②从进程集合寻找出Finish[i] = FALSENeed[i, j] ≤ Work[j]的进程,IF 有,跳③;否则,跳④;
③Pi获得资源后,顺利完成后,释放分配的资源
Work[j]+= Allocation[i, j](加上释放的资源,此时的Work[j]就是下一次可利用的资源)
Finish[i] = TRUE
go to step2
④IF 所有进程都Finish[i] = TRUE,则表示系统处于安全状态;否则,不处于。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值