银行家算法设计-操作系统课程设计报告书
《银行家算法设计-操作系统课程设计报告书》由会员分享,可在线阅读,更多相关《银行家算法设计-操作系统课程设计报告书(17页珍藏版)》请在毕设资料网上搜索。
1、第 1 页 共 17 页 课程设计:课程设计:银行家算法设计银行家算法设计 目录目录 一.设计目的: 2 二.设计内容: 2 三设计过程 . 2 实现功能 . 2 添加功能 . 3 设计思路 . 3 算法和流程图 3 四操作界面截图及分析 . 5 五.设计总结: 8 附录:各程序主要函数及注释 9 设计的函数 12 check 检查安全性函数 .12 主函数 15 第 2 页 共 17 页 一.设计目的: 本设计的目的是通过编写和调试一个系统动态分配资源的简单模拟程序,观察死锁产生的 条件,并采用适当的算法,有效地防止和避免死锁地发生。 二.设计内容: 编制银行家算法通用程序,并检测所给状态的
2、系统安全性。 设进程 I 提出请求 RequestN,则银行家算法按如下规则进行判断。 (1)如果 RequestNAvailable,则进程 i 进入等待资源状态,返回。 (3)假设进程 i 的申请已获批准,于是修改系统状态: Available=Available-Request Allocation=Allocation+Request Need=Need-Request (4)系统执行安全性检查,如安全,则分配成立;否则试探险性分配作废,系统恢复 原状,进程等待。 第 4 页 共 17 页 2.2.安全性检查安全性检查 (1)设置两个工作向量 Work=Available;Finish
3、M=False 开始 输入数据 提出请求 Request Requestji; if(i=M)coutRequestj; 第 14 页 共 17 页 if(RequestjNEEDij) /若请求的资源数大于进程还需要 i类资源的资源量 j coutflag; / /主函数主函数 void main() /主函数 int i=0,j=0,p; coutM; coutN; coutALL_RESOURCEi; coutMAXij; if (MAXijALL_RESOURCEj) 第 16 页 共 17 页 coutALLOCATIONij; if (ALLOCATIONijMAXij) coutendl“占有资源超过了声明的最大资源,请重新输入“MAXij); /初始化资源数量, for (j=0;jN;j+) p=ALL_RESOURCEj; for (i=0;iM;i+) p=p-ALLOCATIONij;/减去已经被占据的资源 AVAILABLEj=p;/计算出剩余各类可利用资源总数 Availablej if(AVAILABLEj0) AVAILABLEj=0; for (i=0;iM;i+) for(j=0;jN;j+) 第 17 页 共 17 页 NEEDij=MAXij-ALLOCATIONij;/计算出剩余各进程还需要的各个资 源数 Needi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中设计图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 银行家 算法 设计 操作系统 课程设计 报告书
