文档详情

操作系统实验课程设计任务书.docx

发布:2017-07-27约小于1千字共3页下载文档
文本预览下载声明
银行家算法目的与任务目的:本课程设计是操作系统课程后的一次全面的综合训练,通过本课程设计了解死锁产生的条件和原因,熟悉并掌握银行家算法,能够使用银行家算法有效地防止死锁的发生,加深对课堂所讲授知识的理解。任务:模拟实现银行家算法,通过该算法实现资源分配中对死锁的避免。二、内容、要求与安排1、实验内容(1)使用到的数据结构:可用资源向量 AVAILABLE[M], M为资源类型;最大需求矩阵 MAX[N][M], N为进程数量;已分配矩阵 ALLOCATION[N][M];还需求矩阵 NEED[N][M];申请各类资源数量的申请向量 Request[x];工作向量 Work[x];执行结束否向量 Finish[y。(2)算法系统初始化:输入进程数量、资源种类、各进程最大需求和已分配各种资源数量,并计算出各进程还需的资源数量和系统可用资源向量;输入用户请求资源向量。检查用户请求是否符合要求,及系统是否有条件分配;进行资源试分配并修改相应数据结构;调用安全状态检查算法进行安全状态检查以确定是否可以分配。(3)系统流程图(如下图)2、实验要求(1)初始数据由文件读入,文件中需给出最大需求矩阵MAX、已分配矩阵ALLOCATION和系统资源的初始数量,还需矩阵NEED和可供分配向量AVAILABALE在程序中计算出来(判断此时是否处于安全状态)。(2)资源请求由用户输入;(3)模拟实现Dijkstra的银行家算法以避免死锁的出现,实验结果显示两部分:a) 如果新申请一个资源,重新扫描此时状态是否处于安全;b) 如果安全,给出一个安全序列,并给出当前的状态;如果不安全,则给出提示且恢复原状态。(4)实验完成后要参加实验答辩,并有实验方案验证算法的正确性。
显示全部
相似文档