银行家算法 1. 实验目的和要求 银行家算法是避免死锁的一种重要方法,要求编写和调试一个简单的银行家算法程序。加深了解有关资源申请、避免死锁等概念,并体会和了解死锁和避免死锁的具体实施方法。 2. 实验内容 1.设计进程对各类资源最大申请表示及初值确定。 2.设定系统提供资源初始状况。 3.设定每次某个进程对各类资源的申请表示。 4.编制程序,依据银行家算法,决定其申请是否得到满足。 3. 实验说明 1.数据结构 假设有M个进程N类资源,则有如下数据结构: MAX[M*N] M个进程对N类资源的最大需求量 AVAILABLE[N] 系统可用资源数 ALLOCATION[M*N] M个进程已经得到N类资源的资源量 NEED[M*N] M个进程还需要N类资源的资源量 2.银行家算法 设进程I提出请求Request[N],则银行家算法按如下规则进行判断。 (1)如果Request[N]<=NEED[I,N],则转(2);否则,出错。 (2)如果Request[N]<=AVAILABLE,则转(3);否则,出错。 (3)系统试探分配资源,修改相关数据: AVAILABLE=AVAILABLE-REQUEST ALLOCATION=ALLOCATION+REQUEST NEED=NEED-REQUEST (4)系统执行安全性检查,如安全,则分配成立;否则试探险性分配作废,系统恢复原状,进程等待。 3.安全性检查 (1)设置两个工作向量WORK=AVAILABLE;FINISH[M]=FALSE (2)从进程集合中找到一个满足下述条件的进程, FINISH[i]=FALSE NEED<=WORK 如找到,执行(3);否则,执行(4) (3)设进程获得资源,可顺利执行,直至完成,从而释放资源。 WORK=WORK+ALLOCATION FINISH=TRUE GO TO 2 (4)如所有的进程Finish[M]=true,则表示安全;否则系统不安全。 4. 参考程序 #include "string.h" #include "iostream.h" #define M 5 //总进程数 #define N 3 //总资源数 #define FALSE 0 #define TRUE 1 //M个进程对N类资源最大资源需求量 int MAX[M][N]={{7,5,3},{3,2,2},{9,0,2},{2,2,2},{4,3,3}}; //系统可用资源数 int AVAILABLE[N]={10,5,7}; //M个进程已经得到N类资源的资源量 int ALLOCATION[M][N]={{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}}; //M个进程还需要N类资源的资源量 int NEED[M][N]={{7,5,3},{3,2,2},{9,0,2},{2,2,2},{4,3,3}}; int Request[N]={0,0,0};
2021-12-16 08:18:02 13KB 操作系统 银行家算法,VC++
1
合肥工业大学操作系统实验报告,不保正确性,摆烂用 了解操作系统中内核程序和应用程序之间的关系;了解操作系统创建进程的过程;掌握在应用程序中创建进程的方法。 了解操作系统管理内存的框架、物理地址空间和逻辑地址空间的管理方式;掌握分配和回收物理内存的方法。 掌握使用信号量编程解决进程/线程同步互斥问题的方法;了解操作系统进程/线程同步的原理。 了解FAT文件系统的磁盘存储结构;学会文件各项空间属性的计算方法;掌握文件系统用户命令的开发方法。
2021-12-15 14:02:26 3.64MB 合工大 操作系统
1
操作系统大作业,实现命令解释器,包含详细代码还有注释,界面简单,新手易懂,整体代码是用C++实现的。
2021-12-15 11:20:56 6KB 操作系统实验 命令解释器 Linux
1
操作系统关于pintos的实验全部答案代码
2021-12-14 22:30:37 4.35MB 操作系统实验 pintos 斯坦福 linux
1
大学计算机专业,操作系统实验报告,虚拟存储器
2021-12-14 21:41:52 820KB 虚拟存储器
1
操作系统实验课,pintos project2 源代码,pass 76,和大家分享,绝对值得!
2021-12-14 21:13:23 430KB 操作系统实验 pintos project2 pass
1
操作系统实验 文档+实验目的+原理+内容+结果+小结 采用可变式分区管理,使用首次获最佳适应算法实现内存分配与回收 学会可变式分区管理的原理是即在处理作业过程中建立分区,使分区大小正好适合作业的需要,并且分区个数是可以调整的。 、当有一个新作业要求装入主存时,必须查空闲区说明表,从中找出一个足够大的空闲区没有时应将空闲区一分为二。为了便于快速查找,要不断地对表格进行紧缩,即让“空表目”项留在表的后部。 当一个作业执行完成时,作业所占用的分区应归还给系统。作业的释放区与空闲区的邻接分以下四种情况考虑: ① 释放区下邻(低地址邻接)空闲区; ② 释放区上邻(高地址邻接)空闲区 ③ 释放区上下都与空闲区邻接; ④ 释放区与空闲区不邻接。
1
操作系统实验报告四 进程同步实验报告。加深对并发协作进程同步与互斥概念的理解,观察和体验并发进程同步与互斥操作的效果,分析与研究经典进程同步与互斥问题的实际解决方案。了解Linux系统中IPC进程同步工具的用法,练习并发协作进程的同步与互斥操作的编程与调试技术。
2021-12-14 20:23:42 252KB 操作系统 进程同步 实验报告 Linux
1
通过 Linux 系统中线程和管道通信机制的实验,加深对于线程控制和管道通信概念的理解,观察和体验并发进/线程间的通信和协作的效果 ,练习利用无名管道进行进/线程间通信的编程和调试技术
2021-12-14 11:45:36 83KB 操作系统实验 山东大学 线程 进程
1
杭电操作系统实验报告(全部实验)
2021-12-14 09:00:40 4.13MB os 操作系统 实验报告
1