操作系统课程设计 (1)

操作系统课程设计 (1)

ID:18183917

大小:320.00 KB

页数:18页

时间:2018-09-15

操作系统课程设计 (1)_第1页
操作系统课程设计 (1)_第2页
操作系统课程设计 (1)_第3页
操作系统课程设计 (1)_第4页
操作系统课程设计 (1)_第5页
资源描述:

《操作系统课程设计 (1)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、课程设计说明书NO.18银行家算法1.课程设计的目的了解多道程序系统中,多个进程并发执行的资源分配,及死锁的产生原因、必要条件和处理死锁的基本方法,掌握预防死锁的方法,系统安全状态的基本概念,了解银行家算法,及资源在进程并发执行中的资源分配策略,并且理解死锁避免在当前计算机系统不常使用的原因。根据设计题目的要求,充分地分析和理解题目,叙述系统的要求,明确程序要求实现的功能以及限制条件。明白自己需要用代码实现的功能,清楚编写每部分代码的目的,做到有的放矢,有条理不遗漏的用代码实现银行家算法。2.设计方案论证2.1题目描述银行家算法是一种最有代表性的避免死锁的算法。在多道程序系统中

2、,多个进程的并发执行来改善系统的资源利用率,提高系统的吞吐量,但可能发生一种危险——死锁。所谓死锁(Deadlock),是指多个进程在运行过程中因争夺资源而造成的一种僵局(DeadlyEmbrace),当进程处于这种状态时,若无外力作用,他们都无法在向前推进。要预防死锁,有摒弃“请求和保持”条件,摒弃“不剥夺”条件,摒弃“环路等待”条件等方法。但是,在预防死锁的几种方法之中,都施加了较强的限制条件;而在避免死锁的方法中,所施加的限制条件较弱,有可能获得令人满意的系统性能。在该方法中把系统状态分为安全状态和不安全状态,便可避免死锁的发生。要解释银行家算法,必须先解释操作系统安全状

3、态和不安全状态。安全状态是指系统能按照某种进程顺序{P1,P2,…,Pn}(称{P1,P2,…,Pn}序列为安全序列),来为每个进程Pi分配其所需资源,直至满足每个进程对资源的最大需求,使每个进程都可以顺利完成。安全状态一定没有死锁发生。如果系统无法找到这样一个安全序列,则称系统处于不安全状态。安全序列:一个进程序列{P1,…,Pn}是安全的,如果对于每一个进程Pi(1≤i≤n),它以后尚需要的资源量不超过系统当前剩余资源量与所有进程Pj(j

4、以把操作系统看作是银行家,操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求分配资源相当于用户向银行家贷款。操作系统按照银行家制定的规则为进程分配资源,当进程首次申请资源时,要测试该进程对资源的最大需求量,如果系统现存的资源可以满足它的最大需求量则按当前的申请量分配资源,否则就推迟分配。当进程在执行中继续申请资源时,先测试该进程已占用的资源数与本次申请的资源数之和是否超过了该进程对资源的最大需求量。若超过则拒绝分配资源,若没有超过则再测试系统现存的资源能否满足该进程尚需的最大资源量,若能满足则按当前的申请量分配资源,否则也要推迟分配。2.2设计思路2.2.1算法思路先

5、对用户提出的请求进行合法性检查,即检查请求是否大于需要的,是否大于可利用的。若请求合法,则进行预分配,对分配后的状态调用安全性算法进行检查。若安全,则分配;若不安全,则拒绝申请,恢复到原来的状态,拒绝申请。2.2.2银行家算法中的数据结构(1)可利用资源向量Available。这是一个含有m个元素的数组,其中的每一个元素代表一类可利用的资源数目,其初始值是系统中所配置的该类全部可用资源的数目,其数值随该类资源的分配和回收而动态地改变。如果Available[j]=K,则表示系统中现有R类资源K个(2)最大需求矩阵Max。这是一个n*m的矩阵,它定义了系统中n个进程对m类资源的最

6、大需求。如果Max[i,j]=K,则表示进程i需要R类资源的数目为K。(3)分配矩阵Allocation。这也是一个n*m的矩阵,它定义了系统中每一类资源当前已分配给每一进程的资源数。如果Allocation[i,j]=K,则表示进程i当前已分得R类资源的数目为K。(4)需求矩阵Need[][]。这也是一个n*m的矩阵,用以表示每一个进程尚需的各类资源数。如果Need[i,j]=K,则表示进程i还需要R类资源K个,才能完成其任务。上述矩阵存在关系:Need[i,j]=Max[i,j]﹣Allocation[i,j]2.2.3银行家算法设Requesti是进程Pi的请求向量,Re

7、questi=K表示进程Pi需要K个j类资源。Pi发出资源请求后,按下列步骤进行检查:沈阳大学课程设计说明书NO.18(1)如果requesti[j]≤need[i,j],转向步骤(2);否则认为错误,所需要的资源数已超过它所宣布的最大值。(2)如果requesti[j]≤available[j],转向步骤(3);否则,表示尚无足够资源,Pi需等待。(3)系统尝试将资源分配给进程Pi,并修改下面数据结构中的数值:Available[j]:=Available[j]-Requesti[j];A

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。