操作系统课程设计任务书_第1页
操作系统课程设计任务书_第2页
操作系统课程设计任务书_第3页
操作系统课程设计任务书_第4页
操作系统课程设计任务书_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 操作系统课程设计任务书 银行家算法实现资源分配。 个进程并发执行的资源分配。 生死锁的必要条件和处理死锁的基本方法。 统安全状态的基本概念。 解资源在进程并发执行中的资源分配策略。 2. 问题描述 在死锁的避免中,银行家算法把系统状态分为安全状态和不安全状态,只要能使系统始终处于安全状态,便可以避 免发生死锁。所谓安全状态,是指系统能按某种顺序为每个进程分配所需资源,直到最大需求,使每一个进程都可以顺利完成,即可找到一个安全资源分配序列。模拟实现这个工作过程。 3. 设计思路 我们可以把操作系统看作是银行家,操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求分配资源相当于用户向银行家贷款。操作系统按照银行家制定的规则为进程分配资源,当进程首次申请资源时,要测试该进程对资源的最大需求量,如果系统现存的资源可以满足它的最大需求量则按当前的申请量分配资源,否则就推迟分配。当进程在执行中继续申请资源 时,先测试该进程已占用的资源数与本次申请的资源数之和是否超过了该进程对资源的最大需求量。若超过则拒绝分配资源,若没有超过则再测试系统现存的资源能否满足该进程尚需的最大资源量,若能满足则按当前的申请量分配资源,否则也要推迟分配。 行家算法 避免死锁的方法中,所施加的限制条件较弱,有可能获得令人满意的系统性能。在该方法中把系统的状态分为安全状态和不安全状态,只要能使系统始终都处于安全状态,便可以避免发生死锁。银行家算法的基本思想是分配资源之前 ,判断系统是否是安全的 ;若是 ,才分 配。 进程 m 提出请求 m,则银行家算法按如下规则进行判断。 2 果 m n m)共享。假设每个进程对 * 一次只能申请一个单位 4 * 满足总申请后才能使用 * 使用完后一次性释放 m=2, n=3 资源分配不当导致死锁产生 锁避免 : 定义 ::系统设计时确定资源分配算法,保证不发生死锁。具体的做法是破坏产生死锁的四个必要条件之一 坏“不可剥夺”条件 在允许进程动态申请资源前提下规定,一个进程在申请新的资源不能立即 得到满足而变为等待状态之前,必须释放已占有的全部资源,若需要再重新申请 坏“请求和保持”条件 要求每个进程在运行前必须一次性申请它所要求的所有资源,且仅当该进 程所要资源均可满足时才给予一次性分配 坏“循环等待”条件 采用资源有序分配法: 把系统中所有资源编号,进程在申请资源时必须严格按资源编号的递增次 、序进行,否则操作系统不予分配。 全状态与不安全状态 安全状态: 如果存在一个由系统中所有进程构成的安全序列 系统处于安全状态。一个进程序列 , 安全的,如果对于每一个进程 i n),它以后尚需要的资源量不超过系统当前剩余资源量与所有进程 j i或者 ii 报错,重新输入 i-=i; i+=i; i-=i; 初始化 安全性检查 安全 i+=i; i-=i; i+=i; 保持原分配 进程执行完 释放资源 继续分配 结束 O O 8 开始界面图(如图 2) 图 2开始界面图 输入数据后图 a(如图 3) 图 3输入 数据后图 a 9 输入数据后图 b(如图 4) 图 4输入数据后图 4 申请资源错误图(如图 5) 图 5申请资源错误图 10 资源申请正确图(如图 6) 图 6资源申请正确图 8、 心心 得得 与与 体体 会会 : “银行家算法的模拟实现”是本学期操作系统课程唯一的课程设计。在设计此程序的过程中,我遇到过许多问题,也学到了很多东西。本程序的设计实现主要是用 过对程序算法的设计优化、输出显示的格式设计、输入过程中的异常处理等一些设计过程中的问题的 考虑解决,在 序设计过程中开始遇到的最大的问题是算法的结构设计问题,课本上只给了设计要求及简单的算法,要真正实现还需要考虑很多方面。在算法的数据结构设计上考虑了很长时间。在程序设计中先后参考了很多网络资料,也参考了一些别人写的的程序,综合这些算法思想和自己的思路对程序做了很好的设计方式,对一些算法的优越性等也作了一些考虑在课程设计过程中遇到了许多问题,也向同宿舍的同学做了一些请教一起讨论,积极解决遇到的问题。 在本次实验中我们使用了 成环境,让我们更加系统深入的了解了 时让我更加深刻的了解银行家算法 ,了解死锁的避免和预防,对操作系统对资源的申请和释放有了更加深刻的理解,同时在编程过程中积极的向老师同学请教问题与他们一起探讨在系统中存在的问题和漏洞。 经过本次课程设计,我对 操作能力和解决问题的实际能力有了很大的提高,同时对团队协作能力有了更加深刻的理解。如果还有类似的课程设计我一定会好好对待。 11 考 文文 献献 1、汤子嬴 编:计算机操作系统,西安电子科技大学出版社 2、张尧学、史美林 编:计算机操作系统教程,清 华大学出版社 3、任爱华、王雷 编:操作系统实用教程,清华大学出版社 4、郑莉、董渊、何江丹 编 C+语言程序设计,清华大学出版社 附录 #*用到了 */ # 50 /*进程数 */ # 30/*资源数 */ # # /*M 个进程对 N 类资源最大资源需求量 */ N; /*系统可用资源数 */ ; /*M 个进程已经得到 N 类资源的资源量 */ N; /*M 个进程还需要 N 类资源的资源量 */ N; ; m,n; /*输入 M 个进程对 N 类资源最大资源需求量 */ a,b) i,j; i=0;i=m) 输入的进程号不存在,重新输入 !n); 请输入进程 ); %d,i); 申请的资源数 n); 类别 : A B Cn); ); j=0;ij) d dn,j,j); i=%d j=%d dn,i,j,ij); %d,i); 号进程 ); 申请的资源数 进程 ); %d,i); 还需要 ); %d,j); 类资源的资源量 !申请不合理,出错 !请重新选择 !n); 14 jj) 进程 ); %d,i); 申请的资源数大于系统可用 ); %d,j); 类资源的资源量 !申请不合理,出错 !请重新选择 !n); i); if(i) i); ; ; n); 按 y或 Y键继续 ,否则退出 n); ; y|Y) ); /*显示数组 */ i,j; 系统可用资源向量 :n); *n); 资源类别 : A B Cn); 资源数目 :); j=0;j ); n); ; 18 设计过程中质疑(或答辩)记载: 答: 1 可利用资源向量 mn 2 最大需求矩阵 mn 3 分配矩阵 mn 4 需求矩阵 mn 答:判断银行家算法资源申请是否成功需要

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论