操作系统课程设计任务书

上传人:s9****2 文档编号:499613652 上传时间:2023-11-24 格式:DOCX 页数:21 大小:202.90KB
返回 下载 相关 举报
操作系统课程设计任务书_第1页
第1页 / 共21页
操作系统课程设计任务书_第2页
第2页 / 共21页
操作系统课程设计任务书_第3页
第3页 / 共21页
操作系统课程设计任务书_第4页
第4页 / 共21页
操作系统课程设计任务书_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《操作系统课程设计任务书》由会员分享,可在线阅读,更多相关《操作系统课程设计任务书(21页珍藏版)》请在金锄头文库上搜索。

1、操作系统课程设计任务书1. 设计目的1.1模拟实现银行家算法,用银行家算法实现资源分配。1.2 了解多道程序系统中,多个进程并发执行的资源分配。1.3掌握死锁的产生的原因、产生死锁的必要条件和处理死锁的基本方法。1.4掌握预防死锁的方法,系统安全状态的基本概念。1.5掌握银行家算法,了解资源在进程并发执行中的资源分配策略。1.6理解死锁避免在当前计算机系统不常使用的原因。2. 问题描述在死锁的避免中,银行家算法把系统状态分为安全状态和不安全状态, 只要能使系统始终处于安全状态,便可以避免发生死锁。所谓安全状态,是 指系统能按某种顺序为每个进程分配所需资源,直到最大需求,使每一个进程都可以顺利完

2、成,即可找到一个安全资源分配序列。 模拟实现这个工作过 程。3. 设计思路我们可以把操作系统看作是银行家,操作系统管理的资源相当于银行家 管理的资金,进程向操作系统请求分配资源相当于用户向银行家贷款。操作系统按照银行家制定的规则为进程分配资源,当进程首次申请资源时,要测试该进程对资源的最大需求量,如果系统现存的资源可以满足它的最大需求 量则按当前的申请量分配资源,否则就推迟分配。当进程在执行中继续申请 资源时,先测试该进程已占用的资源数与本次申请的资源数之和是否超过了 该进程对资源的最大需求量。若超过则拒绝分配资源,若没有超过则再测试 系统现存的资源能否满足该进程尚需的最大资源量, 若能满足则

3、按当前的申 请量分配资源,否则也要推迟分配。4. 详细设计4.1银行家算法4.1.1在避免死锁的方法中,所施加的限制条件较弱,有可能获得令人 满意的系统性能。在该方法中把系统的状态分为安全状态和不安全状态,只要能使系统始终都处于安全状态,便可以避免发生死锁。银行家算法的基本 思想是分配资源之前,判断系统是否是安全的;若是,才分配。4.1.2设进程m提出请求REQUEST,则银行家算法按如下规则进行判 断。4.121 如果 REQUESm n= NEEDmn,贝U转;否则,出错。4.122 如果 REQUESTn n m)共享。假设每个进 程对R的申请和释放符合下列原则:*一次只能申请一个单位*

4、 满足总申请后才能使用* 使用完后一次性释放m=2 n=3 |资源分配不当导致死锁产生4.5.2死锁避免:定义:系统设计时确定资源分配算法,保证不发生死锁。 具体的做法是破坏产生死锁的四个必要条件之一4.5.2.1破坏“不可剥夺”条件在允许进程动态申请资源前提下规定,一个进程在申请新的资源不能立即 得到满足而变为等待状态之前,必须释放已占有的全部资源,若需要再重新 申请4.5.2.2破坏“请求和保持”条件要求每个进程在运行前必须一次性申请它所要求的所有资源,且仅当该进程所要资源均可满足时才给予一次性分配4.5.2.3破坏“循环等待”条件采用资源有序分配法:把系统中所有资源编号,进程在申请资源时

5、必须严格按资源编号的递增次、序进行,否则操作系统不予分配。4.6安全状态与不安全状态安全状态:如果存在一个由系统中所有进程构成的安全序列 P1,P n,则系统 处于安全状态。一个进程序列P1,Pn是安全的,如果对于每一个进程Pi(1 i n),它以后尚需要的资源量不超过系统当前剩余资源量与所有进程 Pj (j i)当前占有资源量之和,系统处于安全状态(安全状态一定是没有死锁发生的) 不安全状态:不存在一个安全序列,不安全状态一定导致死锁。5、数据结构设5.1、定义全局变量#define M, N;/定义常量,便于修改int AvailableN; /各种资源可利用的数量int Allocati

6、o nMN; /各进程当前已分配的资源数量int MaxMN; / int NeedMN; / int RequestM; /各进程对各类资源的最大需求数 还需求矩阵申请各类资源的数量int WorkM; / 工作向量,表示系统可提供给进程运行所需各类资源数量为是in t pN; /存储安全序列int i,j; / 全局变量,主要用于循环语句中 int n,m; n为进程的数量,m为资源种类数5.2安全性检查算法5.2.1 设置两个工作向量 Work=AVAILABLE;FINISH5.2.2从进程集合中找到一个满足下述条件的进程,FINISH=false;NEED=Work;如找到,执行;否

7、则,执行(4)5.1.3设进程获得资源,可顺利执行,直至完成,从而释放资源。Work+=ALLOCATION;Fini sh=true;GOTO 25.1.4如所有的进程Finish= true ,则表示安全;否则系统不安全6、流程图(如图 1)开始图 1: 流程图7.运行界面图开始界面图(如图2)图2开始界面图输入数据后图a (如图3)Y h JIucdlhMti!-JFff(I) OWD a 址I 3K(II WU) il/*l0CiOci5l: -fs JCC IMrikl -C -B 旺胡厂 s/WlaalhCFSit -|$ ./hdimJIt MA ati).foRAKnn 5 1

8、7 5 34 2 62 2 24.A韦折可甲空糠戲W 5 7 勇隽耳用古讯向宜*,*llVillLBiblf *喷厮出斗| ;A B CS *a i6 5 7 rrHee.ri|i-srf:Ptt SiYhOCkCjlhO tO MhNtoiciihQst!-图3输入数据后图a10苍恥彷lil區统空| 上壷|即n :i贮5空朋-iii:飪刈Isylh ioca 1 host: - + 3ift(F)曲一E】连右世 晦ft匸trT. WtiH. 菲咙丄:用也舟向兰AwidLdtjW*施占衣刖:A B C石-丘輒冃1 0 5 70堵諭盒需孝自话BT瓷揮的常科I:川0利和;e90亠诃首1号讦理27昔

9、审瓷己姐专钊叭蛮再岂 Allert 2 on* 悵砸靑Ah A E tB & Q备土程11需虽的更谢塑 NMI1惭话汗乩;启B(|SJ 191 svhSlocalhoi&l:理汕hdxdhgt.) r 申请资源错误图(如图图4输入数据后图45)|羁a程手血鲨丢堪划11 Q叵 打筑邮tyh弓胶5雲flie:42車|1yh(&locallhoit:.+ M|Et 口 svhlcicdlhott0 e e00 oDQQR耳诃讦谓輸人零黄申谓內说酬的慢理|从毀4】i 0 诵撕人込用0审雋竇泯數点刖;a e c8 5 6d :vhkj( .illijsl:j主件吒】 編电口 i) 孕SQ 标毎 ii?肝

10、一出7号说思2223号辺耳4534号进程4262争迪程 m号迪程 4号汽迥输入数据后图b (如图4)咎进理匕崔将工I时瓷淙塑 AlLctdlloir *1 滋国芟测:A000Gj=e npqipesis1=B J= Need=7日号退縫申讳的虽涯塾a週腔EiT皇莊目粪铤涯的鱼渥登申诒不白腔,出宙!诒兰再基拯t 话诵人迫糧Ci申诂畏腔融藍刑:A H C图5申请资源错误图资源申请正确图(如图6)图6资源申请正确图8心得与体会:“银行家算法的模拟实现”是本学期操作系统课程唯一的课程设计。在设计此程序的过程中,我遇到过许多问题,也学到了很多东西。本程序的设计实现主要是用c语言实现,通过对程序算法的设计

11、优化、输出显示的格式设计、 输入过程中的异常处理等一些设计过程中的问题的考虑解决, 在C学习上也有了很大的进步。程序设计过程中开始遇到的最大的问题是算法的结构设计问题,课本上只给了设计要求及简单的算法,要真正实现还需要考虑很多方面。在算法的数据结构设计上考虑了很长时间。在程序设计中先后参考了很多网络资料,也参考了一些别人写的的程序,综合这些算法思想和自己的思路对程序做了很好的设计方 式,对一些算法的优越性等也作了一些考虑在课程设计过程中遇到了许多问题,也向同宿舍的同学做了一些请教一起讨论,积极解决遇到的问题。在本次实验中我们使用了liunx变成环境,让我们更加系统深入的了解了liunx ,gcc编程思路和思想,同时让我更加深刻的了解银行家算法,了解死锁的避免和预防,对操作系统对资源的申请和释放有了更加深刻的理解,同时在编程过程中积极的向老师同学请教问题

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号