欢迎来到天天文库
浏览记录
ID:6663962
大小:753.00 KB
页数:10页
时间:2018-01-21
《1245.操作系统课程设计-----资源分配实验报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、XXX经济学院信息工程学院操作系统课程设计(计算机科学与技术专业用)课程设计题目资源分配班级学号姓名指导教师2005年04月29日10课程设计任务书班级姓名学号课程设计起止日期2005.04.18~2005.04.29实习地点152机房课程设计题目资源分配课程设计内容与要求此次课程设计的主要内容是模拟实现资源分配。同时要求编写和调试一个系统动态分配资源的简单模拟程序,观察死锁产生的条件,并使用适当的算法,有效的防止和避免死锁的发生。具体用银行家算法实现资源分配。要求如下:(1)设计一个3个并发进程共
2、享3类不同资源的系统,进程可动态地申请资源和释放资源,系统按各进程的申请动态地分配资源。(2)设计用银行家算法和随机分配算法,实现资源分配的两个资源分配程序,应具有显示或打印各进程依次要求申请的资源数以及依次分配资源的情况。(3)确定一组各进程依次申请资源数的序列,在相同的情况下分别运行上述两种资源分配程序,观察运行结果。指导教师2005年04月29日10一、课程设计目的和意义多个进程动态地共享系统的资源可能会产生死锁现象。为保证体统中诸进程的正常运行,应事先采取必要的信息。来预防发生死锁如果在系统
3、中已经出现死锁后,则应及时检测到死锁的发生,并采取适当措施来来解除死锁。在实习中假定系统中任一资源在每一时刻只能由一个进程使用,任何进程不能抢占这个进程正在使用的资源,当进程得不到资源是必须等待。因此只要资源分配策略能保证进程不出现循环等待,则系统就不会发生死锁。目前处理死锁的方法主要有四种:预防死锁、避免死锁、检测死锁和解除死锁。预防死锁和避免死锁实质上都是通过施加某些限制条件的方法来预防发生死锁。而这次课程设计主要目的是使系统都处于安全状态,避免发生死锁。同时,通过这次课程设计,需要掌握以下内容
4、:1什么是资源分配,为什么要进行资源分配2什么是死锁,死锁产生的条件3避免死锁的银行家算法,并模拟实现这次课程设计的主要意义在于通过实践设计操作,掌握操作系统的结构、特征、功能、发展等,深一步研究系统的实用性及安全性。重在培养学生的实践能力,使理论和实践相结合。二、软硬件环境1、硬件环境:PC机内存256M;硬盘80G2、软件环境:操作系统:windowsxpsp2编辑环境:VisualC++word2000/2003三、系统设计及开发过程1课题设计1.1课题设计背景在多道程序系统中,虽可借助于多个
5、进程的并发执行,来改善系统的资源利用提高吞吐量,但可能发生一种危险——死锁。所谓死锁,是指多个进程运行中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,他们都无法再向前推进。虽然进程在运行过程中,可能发生死锁,但死锁的发生必须同时具备四个条件:(1)互斥条件:即一个资源每次只能由一个进程占用,如果此时还有其他进程请求该进程,则请求者只能等待,直到占有该资源的进程用毕释放。(2)请求和保持条件:指进程已经保持了至少一个资源,但又提出了新的资源请求,而该资源又已被其他进程占有,此时请
6、求进程阻塞,但又对自己已获得的其它资源保持不放。(3)不剥夺条件:指进程已获得的资源,在未使用完之前,不能被剥夺,只能在使用完时自己释放。(4)环路等待条件:系统中存在若干个等待的进程,即其中每一个进程分别等待它的前一个进程所持有的资源。防止死锁的机构只须确保上述四个条件之一不出现,则系统不会发生死锁。系统的状态分为安全状态和不安全状态,只要能使系统都处于安全状态,便可避免死锁。所谓安全状态,是指系统能按某种进程顺序(P1,P2,…,Pn),来为每个进程Pi10分配其所需分配,直至满足每个进程对资源
7、的最大需求,使每个进程都可顺利地完成。如果系统无法找到一个这样地安全系列,则称系统处于不安全状态。最有代表性的避免死锁的算法,是Dijkstra的银行家算法。这是由于该算法能用于银行系统现金贷款的发放而得名的。在操作系统中研究资源分配策略时也有类似的问题,系统中有限的资源要供多个进程使用,必须保证得到资源的进程能在有限的时间内归还资源,以供它进程使用资源。如果资源分配不得当就会发生进程循环等待资源,各进程都无法继续执行下去的死锁现象。1.2银行家算法在这里,用银行家算法实现资源分配,同时检测资源的分
8、配是否使系统处于安全状态。银行家算法分配资源的原则是:系统掌握每个进程对资源的最大需求量,当进程要求申请资源时,系统就测试该进程尚需资源的最大量,如果系统中现存的资源数大于或等于该进程尚需的最大量时,则就满足进程的当前申请。这样可以保证至少有一个进程可能得到全部资源而执行到结束,然后归还它所占用的全部资源供其它进程使用。银行家算法破坏了产生死锁的第四个条件,即不可能产生循环等待,从而可以避免死锁的发生。1.2.1银行家算法中的数据结构(1)最大需求矩阵Max(二维数组
此文档下载收益归作者所有