default:cout<<\选择错误!\ }
cout< cout<<\是否继续,按1继续,按0退出\ cin>>f; } system(\ return EXIT_SUCCESS; }三、调试与运行: 四、总结: 1、本程序的优点和不足之处(四号仿宋,单倍行距) 操作简单明了,结果用表格形式表现将会更直观 2、心得体会(四号仿宋,单倍行距) 三种页面置换算法FIFO,LRU,OPT,容易理解,但在实际实现过程的时候要注意各种细节。对算法的时间复杂度的分析还是不熟悉 实验(三) 银行家算法 一、问题描述: 银行家算法是一种最有代表性的避免死锁的算法。在避免死锁方法中允许进程动态地申请资源,但系统在进行资源分配之前,应先计算此次分配资源的安全性,若分配不会导致系统进入不安全状态,则分配,否则等待。 二、程序分析与设计: 1、基本思想 (1),进程一开始向系统提出最大需求量. (2),进程每次提出新的需求都统计是否超出它事先提出的最大需求量. (3),若正常,则判断该进程所需剩余剩余量(包括本次申请)是否超出系统所掌握的剩余资源量,若不超出,则分配,否则等待. 2、结构定义 int Max[100][100]={0};//各进程所需各类资源的最大需求 int Avaliable[100]={0};//系统可用资源 char name[100]={0};//资源的名称 int Allocation[100][100]={0};//系统已分配资源 int Need[100][100]={0};//还需要资源 int Request[100]={0};//请求资源向量 int temp[100]={0};//存放安全序列 int Work[100]={0};//存放系统可提供资源 int M=100;//作业的最大数为100 int N=100;//资源的最大数为100 3、算法描述 #include int Max[100][100]={0};//各进程所需各类资源的最大需求 int Avaliable[100]={0};//系统可用资源 char name[100]={0};//资源的名称 int Allocation[100][100]={0};//系统已分配资源 int Need[100][100]={0};//还需要资源 int Request[100]={0};//请求资源向量 int temp[100]={0};//存放安全序列 int Work[100]={0};//存放系统可提供资源 int M=100;//作业的最大数为100 int N=100;//资源的最大数为100 void showdata()//显示资源矩阵 { int i,j; cout<<\系统目前可用的资源[Avaliable]:\ for(i=0;i cout< cout<<\ cout<<\进程名 \ for(j=0;j<3;j++) { for(i=0;i cout< cout<<\ for(j=0;j 输出分配资源