操作系统课程设计做完了:银行家算法(二)报告
标签:教育 杂谈
课设简介:
课程设计题目
银行家算法的模拟实现
课程设计目的
通过编写和调试一个系统动态分配资源的简单模拟程序,观察死锁产生的条件,并采用适
当的算法,有效地防止和避免死锁地发生。
课程设计内容
模拟实现动态资源分配。同时要求编写和调试一个系统动态资源的简单模拟程序,观察死
锁产生的条件,并使用适当的算法,有效的防止和避免死锁的发生。
实验原理分析:
银行家算法是避免死锁的一种重要方法,通过编写一个简单的银行家算法程序,加深了解
有关资源申请、避免死锁等概念,并体会和了解死锁和避免死锁的具体实施方法。死锁的
产生,必须同时满足四个条件,即一个资源每次只能由一个进程张勇;第二个为等待条件,
即一个进程请求资源不能满足时,它必须等待,单它仍继续宝石已得到的所有其他资源;
第三个为非剥夺条件,即在出现死锁的系统中一定有不可剥夺使用的资源;第四个为循环
等待条件,系统中存在若干个循环等待的进程,即其中每一个进程分别等待它前一个进程
所持有的资源。防止死锁的机构只能确保上述四个条件之一不出现,则系统就不会发生死
锁。通过这个算法可以用来解决生活中的实际问题,如银行贷款等。
程序结构分析:
程序模块划分
银行家算法
设进程 提出请求 ,则银行家算法按如下规则进行判断。
如果 ,,则报错返回。
如果 ! ,则进程 进入等待资源状态,返回。
假设进程 的申请已获批准,于是修改系统状态:
! " !