c实现银行家算法.pdfVIP

  • 4
  • 0
  • 约7千字
  • 约 9页
  • 2022-06-28 发布于江苏
  • 举报
银行家算法 银行家算法是一种最有代表性的防止死锁的算法。 要解释银行家算法,必须先解释操作系统平安状态和不平安状态。 平安状态:如果存在一个由系统中所有进程构成的平安序列P1,…,Pn,那么系统处于 平安状态。平安状态一定是没有死锁发生。 不平安状态:不存在一个平安序列。不平安状态不一定导致死锁。 那么什么是平安序列呢? 平安序列:一个进程序列{P1,…,Pn}是平安的,如果对于每一个进程Pi(1≤i≤n〕,它以 后尚需要的资源量不超过系统当前剩余资源量与所有进程Pj (j i )当前占有资源量之和。 银行家算法: 我们可以把操作系统看作是银行家,操作系统管理的资源相当于银行家管理的资金,进程 向操作系统请求分配资源相当于用户向银行家贷款。操作系统按照银行家制定的规那么为进 程分配资源,当进程首次申请资源时,要测试该进程对资源的最大需求量,如果系统现存的 资源可以满足它的最大需求量那么按当前的申请量分配资源,否那么就推迟分配。当进程在 执行中继续申请资源时,先测试该进程已占用的资源数与本次申请的资源数之和是否超过了 该进程对资源的最大需求量。假设超过那么拒绝分配资源,假设没有超过那么再测试系统现 存的资源能否满足该进程尚需的最大资源量,假设能满足那么按当前的申请量分配资源,否 那么也要推迟分配。 算法:

文档评论(0)

1亿VIP精品文档

相关文档