int N=100;//资源的最大数为100 3.2.3 算法
3.3 安全性算法 3.3.1功能
开始 输入资源种类数 输入进程的数量 输入各进程最大需求量 Allocation[i,j]>Max[i,j] 输入各进程已经申请的资源显示资源,开始银行家算法 提出请求Request[j] Request[j]<=Need[i,j] 否 报错 否 Request[j]<=Available[j] 报错 Available[j]-=Request; Allocation[i,j]-=Request[j]; Need[i,j]+=Request[j]; 结束
(1)设置两个工作向量Work=Available;Finish[M]=False (2)从进程集合中找到一个满足下述条件的进程, Finish [i]=False Need<=Work
如找到,执行(3);否则,执行(4)
(3)设进程获得资源,可顺利执行,直至完成,从而释放资源。 Work=Work+Allocation; Finish=True;go to step 2; (4)如所有的进程Finish[M]=true,则表示安全;否则系统不安全。 3.3.2 数据结构
int Allocation[100][100]={0};//系统已分配资源 int Request[100]={0};//请求资源向量
int temp[100]={0};//存放安全序列 int Work[100]={0};//存放系统可提供资源 3.3.3算法
开始 Work[j]=Avaliable[j];Finish[i]=false; Need[i,j]<=Work&&Finsh[i]=false; Work[j]+=Allocation[i,j];Finish[i]=ture; 所有进程的Finish[i]=ture; 系统不安安全,输出安全序列Return ture; 结束
4. 程序设计与实现
4.1 程序流程图
开始 输入资源种类数 输入进程的数量 输入各进程最大需求量 输入各进程已经申请的资源量 Allocation[i,j]>Max[i,j] 显示资源,开始银行家算法 提出请求Request[j] 否 Request[j]<=Need[i,j] Error Request[j]<=Available[j] 否 Error Available[j]-=Request[j]; Allocation[i,j]-=Request[j]; Need[i,j]+=Request[j]; Safe()算法判定系统安全性
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库计算机操作系统课程设计报告《Linux下动态资源分配算法演示程序(2)在线全文阅读。
相关推荐: