全球旧事资料 分类
《操作系统原理》实验报告
银行家算法实验
专业:计算机科学与技术学号:200902014012姓名:杨瑜实验日期:201259
f一、实验目的
通过实验用编程语言模拟银行家诉法来加强对银行家安全算法的理解和掌握。
二、实验内容
熟悉避免死锁发生的方法,死锁与安全序列的关系,编程实现银行家算法,要求输出进程的安全序列。
三、算法中用到的数据结构
1可利用资源向量Available2最大需求矩阵Max3分配矩阵Allocatio
4需求矩阵Need模拟实现银行家算法以避免死锁的出现分两部分组成第一部分银行家算法扫描1.如果RequestNeed则转向2否则出错2.如果RequestAvailable则转向3否则等待3.系统试探分配请求的资源给进程4.系统执行安全性算法第二部分安全性算法1设置两个向量1工作向量WorkAvailable表示系统可提供给进程继续运行所需要的各类资源数目2Fi
ish表示系统是否有足够资源分配给进程True有False没有初始化为False2若Fi
ishiFalseNeedWork则执行3否则执行4I为资源类别3进程P获得第i类资源则顺利执行直至完成并释放资源WorkWorkAllocatio
Fi
ishitrue转24若所有进程的Fi
ishitrue则表示系统安全否则不安全
四、算法流程图
f五、实现代码
i
cludestdiohdefi
eP_NUM5defi
eS_NUM3i
tMaxP_NUMS_NUMAllocatio
P_NUMS_NUMNeedP_NUMS_NUMi
tAvailableS_NUMRequestS_NUMi
tWorkS_NUMFi
ishP_NUMCurre
tProcessId1Arra
geP_NUMCurre
tId0FILEfprfpwi
ttimes0voidi
iti
ti0j0fori0iP_NUMiforj0jS_NUMj
fsca
f
好听全球资料 返回顶部