黄天实验四银行家算法实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
操作系统实验
实验四
学号 1415251011 姓名黄天
班级 14集成1班
华侨大学电子工程系
实验目的
1、理解银行家算法。
2、掌握进程安全性检查的方法与资源分配的方法。
实验内容与基本要求
编制模拟银行家算法的程序,并以下面给出的例子验证所编写的程序的正确性。
现在系统中A、B、C、D 4类资源分别还剩1、5、2、0个,请按银行家算法回答:
1、现在系统是否处于安全状态?
答:系统是安全的。
2、如果现在进程P1提出需要(0、4、2、0)个资源的请求,系统能否满足它的
请求?
答:可以满足。
实验报告内容
1、银行家算法和安全性检查算法原理。
银行家算法:
银行家算法最初级原为银行系统设计,以确保银行在发放现金贷款时,不会发生不能满足所有客户需要的情况。在OS设计中,也可以用它来避免死锁。
为实现银行家算法,每个新进程在进入系统时它必须申明在运行过程中,可能需要的每种资源类型的最大单元数目,其数目不应超过系统所拥有的资源总
量。当某一进程请求时,系统会自动判断请求量是否小于进程最大所需,同时判断请求量是否小于当前系统资源剩余量。若两项均满足,则系统试分配资源并执行安全性检查算法。
安全性检查算法:
安全性检查算法用于检查系统进行资源分配后是否安全,若安全系统才可以执行此次分配;若不安全,则系统不执行此次分配。
安全性检查算法原理为:在系统试分配资源后,算法从现有进程列表寻找出一个可执行的进程进行执行,执行完成后回收进程占用资源;进而寻找下一个可执行进程。当进程需求量大于系统可分配量时,进程无法执行。当所有进程均可执行,则产生一个安全执行序列,系统资源分配成功。若进程无法全部执行,即无法找到一条安全序列,则说明系统在分配资源后会不安全,所以此次分配失败。
2、程序流程图。
3、程序及注释。
4、运行结果以及结论。
(1)、按照题给例子验证所编写的程序的正确性如下:
如上图所示,编写的程序基本正确。
假如现在系统中A、B、C、D 4类资源分别还剩1、5、2、0个,如图所示,系
统是安全的,安全序列为0 -2-1-3-4.
假如现在要申请的资源的进程号为P1。系统中为1进程,结果如下图所示.
则由图可知,系统可以满足P1的需求。
(2)、假如请求的资源超出系统所有的资源,则报错,如下如。
(3)、在此银行家算法的程序中,可以输入不超过Max[50][100]的矩阵资源,并且支持自定义输入,且程序中包含自动判错纠错功能。
纠错如图,自定义的矩阵为4*9成功。
自行判断系统所有资源是否能满足进程需求。
结论:该程序运行结果正确,各项数据指标正常。各种判断循环正常。