课 程 设 计
课程名称 操作系统原理课程设计
题 目 编程序模拟银行家算法
专 业 计算机网络 班 级 姓 名
成 绩 指导教师
2009 年7月6日至2009年7月10日
课程设计任务书
word文档 可自由复制编辑
设计题目:编程序模拟银行家算法 设计目的
1、银行家算法是避免死锁的一种重要方法,本实验要求用高级语言编写和调试一个简单的银行家算法程序。加深了解有关资源申请、避免死锁等概念,并体会和了解死锁和避免死锁的具体实施方法。
2、提高学生的程序设计能力、 提高算法设计质量与程序设计素质 ;
设计任务 (在规定的时间内完成下列任务)
思想:将一定数量的资金供多个用户周转使用,当用户对资金的最大申请量不超过现存资金时可接纳一个新客户,客户可以分期借款,但借款总数不能超过最大的申请量。银行家对客户的借款可以推迟支付,但是能够使客户在有限的时间内得到借款,客户得到所有的借款后能在有限的时间内归还。
用银行家算法分配资源时,测试进程对资源的最大需求量,若现存资源能满足最大需求就满足当前进程的申请,否则推迟分配,这样能够保证至少有一个进程可以得到所需的全部资源而执行到结束,然后归还资源,若OS能保证所有进程在有限的时间内得到所需资源则称系统处于安全状态。
时间安排
1月 14日 布置课程设计任务;分配题目后,查阅资料、 准备程序; 1月 15 ~1月17 日上机调试程序、书写课程设计报告;
1月18 日 提交课程设计报告及相关文档。
具体要求
1. 课程设计报告按统一通用格式书写,具体格式要求请在网络上查阅; 2. 每位学生应独立完成各自的任务且每天至少在设计室工作半天;
指 导 教 师 签 名: 09年 7月 6日
教研室主任(或责任教师)签名:
09年 7月 10日
word文档 可自由复制编辑
1.需求分析
本设计的目的是通过编写和调试一个系统动态分配资源的简单模拟程序,观察死锁产生的条件,并采用适当的算法,有效地防止和避免死锁地发生。集体要求如下:
(1)模拟一个银行家算法;
(2)初始化时让系统拥有一定的资源; (3)用键盘输入的方式申请资源;
(4)如果预分配后,系统处于安全状态,则修改系统的资源分配情况; (5) 如果预分配后,系统处于不安全状态,则提示不能满足请求, 此次课程设计的主要内容时模拟实现动态资源分配。同时要求编写和调试一个系统动态资源的简单模拟程序,观察死锁产生的条件,并使用适当的算法,有效的防止和避免死锁的发生。
银行家算法是避免死锁的一种重要方法,通过编写一个简单的银行家算法程序,加深了解有关资源申请、避免死锁等概念,并体会和了解死锁和避免死锁的具体实施方法。死锁的产生,必须同时满足四个条件,即一个资源每次只能由一个进程张勇;第二个为等待条件,即一个进程请求资源不能满足时,它必须等待,单它仍继续宝石已得到的所有其他资源;第三个为非剥夺条件,即在出现死锁的系统中一定有不可剥夺使用的资源;第四个为循环等待条件,系统中存在若干个循环等待的进程,即其中每一个进程分别等待它前一个进程所持有的资源。防止死锁的机构只能确保上述四个条件之一不出现,则系统就不会发生死锁。通过这个算法可以用来解决生活中的实际问题。
死锁会引起计算机工作僵死,因此操作系统中必须防止。本实验的目的在于让学生独立的使用高级语言编写和调试一个系统动态分配资源的简单模拟程序,了解死锁产生的条件和原因,并采用银行家算法有效地防止死锁的发生,以加深对课堂上所讲授的知识的理解。
1.1 设计原理:
死锁产生的条件
1.互斥控制,进程对其所要求的资源进行排他控制,一个资源仅能被一个进程独占。
2.非剥夺控制,进程所获得的资源在未被释放之前,不能被其他进程剥夺,即使该进程处于阻塞状态,他所占用的资源野不能被其他进程使用,而其他进程只能等待该资源的释放;
3.逐次请求,进程以随意的零星方式逐次取得资源,而不是集中性的一次请求,这样有利于提高资源的利用率;
4.环路条件,在发生死锁时,必然存在一个进程——资源的环形链。不断有资源在等待被占用的资源;
我们只要破坏以上四个条件之一,既可以预防死锁。银行家算法是避免死锁的方法中,施加的限制条件较弱的,有利于获得令人满意的系统性能的方法。在该方法中把系统的状态分为安全状态和不安全状态,只要能使系统始终都处于安全状态,便可以避免发生死锁。
word文档 可自由复制编辑