Feelme
因为Java是面向对象的,所以设置了两个资源类:
Resource:分别描述三种资源的数目
Progress:描述每个进程信息,包括每个进程的最大需求资源数目、已分配资源数目
具体算法过程:
检测当前时刻系统是否处在安全状态:就是检测当前时刻系统能否找到一个安全序列,显示在“当前系统的状态框中”
输入某个进程的请求,检测是否分配该请求:
所以,这里面最关键的算法是找到安全序列。
检测安全序列:
构建一个Finish[5] ={false,false,false,false,false}数组,每个位置对应每个进程。work = available
找到一个进程为FALSE且need 小于等于 work的进程
将资源分配给该进程,该进程得到资源运行完成后,释放掉所有已分配给该进程的资源,即work = work + allocation。并将该进程设置为TRUE
继续寻找下一个符合条件的进程,知道所有进程都被设置为TRUE