2.安全性检查算法1、设置两个向量:工作向量Work,它表示系统可提供给进程继续运行所需的各类资源数目,在执行安全性算法开始时,Work= Available。
Finish,它表示系统是否有足够的资源分配给进程,使之运行完成。开始时先做Finish[i]=-1;当有足够的资源分配给进程时,再令Finish[i]= p->pid。
2、在进程中查找符合以下条件的进程:
条件1:Finish[i]!=-1;
条件2:need[i][j]<=Work[j]
若找到,则执行步骤(3)否则,执行步骤4。
3、当进程获得资源后,可顺利执行,直至完成,并释放出分配给它的资源,故应执行:
Work[j]= Work[j]+ Allocation[i][j];
Finish[i]=-1;
goto step 2;
4、如果所有的Finish[i] !=-1都满足,则表示系统处于安全状态,否则,处于不安全状态。