好文档 - 专业文书写作范文服务资料分享网站

操作系统实验报告

天下 分享 时间: 加入收藏 我要投稿 点赞

操作系统实验报告 银行家算法

班级:计算机()班 姓名:李君益 学号:(号) 提交日期: 指导老师: 林穗

一、设计题目

加深了解有关资源申请、避免死锁等概念,并体会和了解死锁和避免死锁的具体实施方法。

要求编写和调试一个系统动态分配资源的简单模拟程序,观察死锁产生的条件,并采用银行家算法,有效的防止和避免死锁的发生。

二、设计要求

1 / 16

内容:

编制银行家算法通用程序,并检测思考题中所给状态的安全性。 要求: (1) 进程 (状态) (2)

考虑下列系统状态

最大需求矩阵

可用资源矩阵

下列状态是否安全?(三个进程共享个同类资源)

已分配资源数

最大需求数

(状态)

分配矩阵

问系统是否安全?若安全就给出所有的安全序列。若进程请求(),可否立即分配?

三、设计分析

一. 关于操作系统的死锁 .死锁的产生

计算机系统中有许多独占资源,他们在任一时刻只能被一个进程使用,如磁带机,绘图仪等独占型外围设备,或进程表,临界区等软件资源。两个进程同时向一台打印机输出将导致一片混乱,两个进程同时进入临界区将导致数据库错误乃至程序崩溃。正因为这些原因,所有操作系统都具有授权一个进程独立访问某一辞源的能力。一个进程需要使用独占型资源必须通过以下的次序:

? 申请资源 ? 使用资源 ? 归还资源

若申请施资源不可用,则申请进程进入等待状态。对于不同的独占资源,进程等待的方式是有差别的,如申请打印机资源、临界区资源时,申请失败将一位这阻塞申请进程;而申请打开文件文件资源时,申请失败将返回一个错误码,由申请进程等待一段时间之后重试。只得指出的是,不同的操作系统对于同一种资源采取的等待方式也是有差异的。

在许多应用中,一个进程需要独占访问多个资源,而操作系统允许多个进程并发执行共享系统资源时,此时可能会出现进程永远被阻塞的现象。这种现象称为“死锁”。

2. 死锁的定义

一组进程处于死锁状态是指:如果在一个进程集合中的每个进程都在等待只能由该集合中的其他一个进程才能引发的时间,则称一组进程或系统此时发生了死锁。

.死锁的防止

.死锁产生的条件:

? 互斥条件

2 / 16

? 占有和等待条件 ? 不剥夺条件 ? 循环等待条件

以上三个条件是死锁存在的必要条件,胆不是充分条件。第四个条件是钱唢呐个条件同时存在时产生的结果,所以,这些条件并不完全独立。但单独考虑每个条件是有用的,只要能破坏这四个必要条件之一,死锁就可以防止。 .实用死锁防止方法

? 静态分配策略 ? 层次分配策略

.死锁的避免

破坏死锁的四个条件之一能防止系统发生死锁,但这会导致低效率的进程运行和资源使用率。死锁的避免则相反,他允许系统中同时存在三个必要条件,如果能掌握并发进程中与每个进程有关的资源动态申请情况,做出明智和合理的选择,仍然可以避免死锁的发生。每当在为申请者分配资源前先测试系统状态,若把资源分配个申请者会产生死锁的话,则拒绝分配,否则接受申请,为它分配资源。 死锁避免不是通过队进程随意强加一些规则,而是通过对每一次资源申请进行仔细的分析来判断它是否能安全的分配。问题是:是否存在一种算法总能做出正确的选择从而避免死锁?

二. 单种资源的银行家算法

()提出了一种能够避免死锁的调度方法,称为一银行家算法。它的模型基于一个小城镇的银行家,现将该算法描述如下:假定一个银行家拥有资金,数量为∑,被个客户共享。银行家对客户提出下列约束条件:

? 每个客户必须预先说明自己所要求的最大资金量; ? 每个客户每次提出部分资金量申请和获得分配;

? 如果银行满足了客户对资金的最大需求量,那么,客户在资金运作后,应在有限时间内归还银行。

只要每个客户遵守上述约束,银行家将保证做到:若一个客户所要求的最大资金量不超过∑,则银行一定接纳该客户,并可处理他的资金需求;银行在受到一个客户的资金申请是,可能因资金不足而让客户等待,但保证在有限时间内让客户获得现金。在银行家算法中,客户可看作进程,资金可看作资源,银行家可看作操作系统

名字 已使用 最大 名字 名字 已使用 最大

已使

可用: 可用: 可用:

3 / 16

操作系统实验报告

操作系统实验报告银行家算法班级:计算机()班姓名:李君益学号:(号)提交日期:指导老师:林穗一、设计题目加深了解有关资源申请、避免死锁等概念,并体会和了解死锁和避免死锁的具体实施方法。要求编写和调试一个系统动态分配资源的简单模拟程序,观察死锁产生的条
推荐度:
点击下载文档文档为doc格式
1s39651h7s4x67j2pwjr92i2p9mf5d01drb
领取福利

微信扫码领取福利

微信扫码分享