收藏 分享(赏)

操作系统课程设计63465new.doc

上传人:dzzj200808 文档编号:2312807 上传时间:2018-09-10 格式:DOC 页数:17 大小:364.30KB
下载 相关 举报
操作系统课程设计63465new.doc_第1页
第1页 / 共17页
操作系统课程设计63465new.doc_第2页
第2页 / 共17页
操作系统课程设计63465new.doc_第3页
第3页 / 共17页
操作系统课程设计63465new.doc_第4页
第4页 / 共17页
操作系统课程设计63465new.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

1、操作系统 课 程 设 计题 目 银行家算法 系 (部) 电子与信息工程系 班 级 12 级计本 5 班 姓 名 范慧敏 学 号 2012020418 指导教师 徐江涛 刘宏 2014 年 6 月 14 日一、设计题目、内容及要求题目: 银行家算法内容:1、分析与流程设计;2、相关程序设计、实现、调试;3、课程设计总结报告。要求:分析设计内容,给出解决方案(要说明设计实现的原理,采用的数据结构) 。设计合适的测试用例,对得到的运行结果要有分析。二、要求的设计成果(课程设计说明书、设计实物、图纸等)1、课程设计总结报告2、相关备份文件三、进程安排设计工作 4 学时实现与调试 16 学时课程设计总结

2、报告 8 学时四、主要参考资料1严蔚敏,吴伟民.数据结构. 北京:清华大学出版社,2006.2赵莉,杨国梁,孙喁喁,徐飞.Java 程序设计教程. 西安:西安科技大学出版社,2009.3汤小丹,梁红兵,哲凤屏,汤子瀛.计算机操作系统. 西安:西安电子科技大学出版社,2007.指导教师(签名): 教研室主任(签名):姓名:范慧敏 学号:2012020418操作系统 课程设计任务书银行家算法0银行家算法范慧敏安康学院 计算机科学与技术 12 级 陕西 安康 725000摘要:本文对如何用银行家算法来处理操作系统给进程分配资源做了详细的说明,包括需求分析、概要设计、详细设计、测试与分析、总结、源程序

3、清单。Dijkstra 提出的银行家算法,是最具代表性的避免死锁的算法。 首先做了需求分析,解释了什么是银行家算法,并指出它在资源分配中的重要作用。然后给出了银行家算法的概要设计,包括算法思路、步骤,以及要用到的主要数据结构、函数模块及其之间的调用关系等。在概要设计的基础上,又给出了详细的算法设计,实现概要设计中定义的所有函数,对每个函数写出核心算法,并画出了流程图。接着对编码进行了测试与分析(并在最后附上 Java 编写的程序代码)。最后对整个设计过程进行了总结。关键字:安全状态;安全序列;银行家算法;安全性算法;安全序列;流程图。1 系统概述1.1 系统开发背景Dijkstra (1965

4、)提出了一种能够避免死锁的调度算法,称为银行家算法。它的模型基于一个小城镇的银行家,他向一群客户分别承诺了一定的贷款额度,每个客户都有一个贷款额度,银行家知道不可能所有客户同时都需要最大贷款额,所以他只保留一定单位的资金来为客户服务,而不是满足所有客户贷款需求的最大单位。这里将客户比作进程,贷款比作设备,银行家比作系统。客户们各自做自己的生意,在某些时刻需要贷款。在某一时刻,客户已获得的贷款和可用的最大数额贷款称为与资源分配相关的系统状态。一个状态被称为是安全的,其条件是存在一个状态序列能够使所有的客户均得到其所需的贷款。如果忽然所有的客户都申请,希望得到最大贷款额,而银行家无法满足其中任何一

5、个的要求,则发生死锁。不安全状态并不一定导致死锁,因为客户未必需要其最大贷款额度,但银行家不敢抱这种侥幸心理。银行家算法就是对每一个请求进行检查,检查如果满足它是否会导致不安全状态。若是,则不满足该请求;否则便满足。检查状态是否安全的方法是看他是否有足够的资源满足一个距最大需求最近的客户。如果可以,则这笔投资认为是能够收回的,然后接着检查下一个距最大需求最近的客户,如此反复下去。如果所有投资最终都被收回,则该状态是安全的,最初的请求可以批准。通过对这些情况的仔细调查,我研究出了以下内容。姓名:范慧敏 学号:201202041811.2 系统开发的目的和意义1.2.1 项目开发目的操作系统是计算

6、机系统的核心系统软件,它负责控制和管理整个系统的资源并组织用户协调使用这些资源,使计算机高效的工作。操作系统课程设计是操作系统理论课的必要补充,是复习和检验所学课程的重要手段,本课程设计的目的是综合应用学生所学知识,通过实验环节,加深学生对操作系统基本原理和工作过程的理解,提高学生独立分析问题、解决问题的能力,增强学生的动手能力。1.2.2 项目开发意义在多道程序系统中,多个进程的并发执行来改善系统的资源利用率,提高系统的吞吐量,但可能发生一种危险死锁。所谓死锁(Deadlock),是指多个进程在运行过程中因争夺资源而造成的一种僵局(DeadlyEmbrace),当进程处于这种状态时,若无外力

7、作用,他们都无法在向前推进。要预防死锁,有摒弃“请求和保持”条件,摒弃“不剥夺”条件,摒弃“环路等待”条件等方法。但是,在预防死锁的几种方法之中,都施加了较强的限制条件;而在避免死锁的方法中,所施加的限制条件较弱,有可能获得令人满意的系统性能。在该方法中把系统状态分为安全状态和不安全状态,便可避免死锁的发生。而最具代表性的避免死锁的算法,便是 Dijkstra 的银行家算法。利用银行家算法,我们可以来检测 CPU 为进程分配资源的情况,决定 CPU 是否响应某进程的的请求并为其分配资源,从而很好避免了死锁的产生。2 需求分析2.1 需求分析我们可以把操作系统看做是银行家,操作系统管理的资源相当

8、于银行家管理的资金,进程向操作系统请求资源相当于客户向银行家贷款。操作系统按银行家制定的规则为进程分配资源,当进程首次申请资源时,要测试该进程尚需求的资源量,若是系统现存的资源可以满足它尚需求的资源量,则按当前的申请量来分配资源,否则就推迟分配。当进程在执行中继续申请资源时,先测试该进程申请的资源量是否超过了它尚需的资源量。若超过则拒绝分配,若没有超过则再测试系统尚存的资源是否满足该进程尚需的资源量,若满足即可按当前的申请量来分配,若不满足亦推迟分配。银行家算法是一种最具有代表性的避免死锁的算法。要解释银行家算法,必须先解释操作系统的安全状态和不安全状态。所谓安全状态,是指系统能按照某种进程顺

9、序P1,P2,,Pn(称P1,P2,,Pn 序列为安全序列) ,来为每个进程 Pi 分配其所需资源,直至满足每个进程对资源的最大需求,银行家算法0使每个进程都可以顺利完成。安全状态一定没有死锁发生。如果系统无法找到这样一个安全序列,则称系统处于不安全状态。那么,什么是安全序列呢?如果对每一个进程 Pi(1#include#include#define False 0#define True 1int Max100100=0;/各进程所需各类资源的最大需求int Avaliable100=0;/系统可用资源char name100=0;/资源的名称int Allocation100100=0;/

10、系统已分配资源int Need100100=0;/还需要资源int Request100=0;/请求资源向量int temp100=0;/存放安全序列int Work100=0;/存放系统可提供资源int M=100;/作业的最大数为 100int N=100;/资源的最大数为 100void showdata()/显示资源矩阵int i,j;cout“;couti;/输入须申请的资源号coutRequestj;/输入需要申请的资源for (j=0;jNeedij)/判断申请是否大于需求,若大于则出错 coutAvaliablej)/判断申请是否大于当前资源,若大于则 /出错银行家算法2cou

11、tn;flag=N;N=N+n;for(int i=0;inameflag;coutAvaliableflag+;showdata();safe();void delresources()/删除资源char ming;int i,flag=1;coutming;for(i=0;iAvaliable0Avaliable1Avaliable2;coutMaxflagi;Needflagi=Maxflagi-Allocationflagi;showdata();姓名:范慧敏 学号:20120204183safe();int main()/主函数int i,j,number,choice,m,n,fl

12、ag;char ming;coutn;N=n;for(i=0;iming;namei=ming;coutnumber;Avaliablei=number;coutm;M=m;coutMaxij;doflag=0;coutAllocationij;if(AllocationijMaxij)flag=1;Needij=Maxij-Allocationij;if(flag)coutchoice;switch(choice)case 1: addresources();break;case 2: delresources();break;case 3: changeresources();break;case 4: share();break;case 5: addprocess();break;case 0: choice=0;break;default: cout“请正确选择功能号(0-5)!“endl;break;return 1;银行家算法2课程设计成绩评定表出勤天数 出勤情况 缺勤天数出勤情况及设计过程表现(20 分)论文(20 分)设计成果(60 分)成绩评定总成绩(100 分)综合评定指导教师签名:年 月 日

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报