3、安全的,如果对于每一个进程Pi(1≤i≤n),它以后尚需要的资源量不超过系统当前剩余资源量与所有进程Pj (j < i )当前占有资源量之和。 银行家算法: 我们可以把操作系统看作是银行家,操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求分配资源相当于用户向银行家贷款。操作系统按照银行家制定的规则为进程分配资源,当进程首次申请资源时,要测试该进程对资源的最大需求量,如果系统现存的资源可以满足它的最大需求量则按当前的申请量分配资源,否则就推迟分配。当进程在执行中继续申请资源时,先测试该进程已占用的资源数与本次申请的资源数之和是否超过了该进程对资源的最大需求量。
4、若超过则拒绝分配资源,若没有超过则再测试系统现存的资源能否满足该进程尚需的最大资源量,若能满足则按当前的申请量分配资源,否则也要推迟分配。3.设计要求:设计一n个并发进程共享m个系统资源的程序实现银行家算法。要求包括: (1) 简单的初始化界面; (2) 系统资源的占用和剩余情况; (3) 为进程分配资源,用银行家算法对其进行检测,分为以下三种情况: A. 所申请的资源大于其所需资源,提示分配不合理不予分配并返回; B. 所申请的资源未大于其所需资源,但大于系统此时的可利用资源,提示分配不合理不予分配并返回; C. 所申请的资源未大于其所需资
5、源,亦未大于系统此时的可利用资源,预分配并进行安全性检查: a. 预分配后系统是安全的,将该进程所申请的资源予以实际分配并打印后返回; b. 与分配后系统进入不安全状态,提示系统不安全并返回; (4) 对输入进行检查,即若输入不符合条件,应当报错并返回重新输入; (5) 撤销作业,释放资源。二.概要设计(一)算法思路:先对用户提出的请求进行合法性检查,即检查请否大于需要的,是否大于可利用的。若请求合法,则进行预分配,对分配后的状态调用安全性算法进行检查。若安全,则分配;若不安全,则拒绝申请,恢复到原来的状态,拒绝申请。(二)算法步骤:(1)如果R