静态分配簟略(破坏条件2) 所谓静态分配是指一个进程必须在 执行前就申请它所要的全部资源, 并且直到它所要的资源都得到满足 后才开始执行。 08:52
08:52 静态分配策略(破坏条件2) 所谓静态分配是指一个进程必须在 执行前就申请它所要的全部资源, 并且直到它所要的资源都得到满足 后才开始执行
死锁的防止 ※层次分配策略(破坏条件2和4) ◆资源被分成多个层次 ◆当一个进程得到某一层的一个资源后, 它只能再申请较高层次的资源 ◆当一个冼程要释放某层的一个资源时 它必须先释放所占有的较高层次的资源 ◆当一个进程得到棊一层的一个资源后, 它翘申请该层的另一个资源时,必须先 释放该层中的已占资源 08:52
08:52 死锁的防止 层次分配策略(破坏条件2和4) 资源被分成多个层次 当一个进程得到某一层的一个资源后, 它只能再申请较高层次的资源 当一个进程要释放某层的一个资源时, 它必须先释放所占有的较高层次的资源 当一个进程得到某一层的一个资源后, 它想申请该层的另一个资源时,必须先 释放该层中的已占资源
层次策略的一个变种是按序分配策略 把系统的所有资源排一个顺序,例如 系统若共有n个进程,共有m个资源,用ri 表示第i个资源,于是这m个资源是: 戏r1,r2.,rm ※规定如果进程不得在占用资源r(1≤i≤m) 后再申请j)。不难证明,按这种策略 分配资源时系统不会发生死锁。 08:52
08:52 层次策略的一个变种是按序分配策略 把系统的所有资源排一个顺序,例如, 系统若共有n个进程,共有m个资源,用ri 表示第i个资源,于是这m个资源是: r1,r2……,rm 规定如果进程不得在占用资源ri(1≤i≤m) 后再申请rj(j<i)。不难证明,按这种策略 分配资源时系统不会发生死锁
反证法来证明按序分配不会产生死锁, 事实上,若在时刻t1,进程Pl处于等资源rk1的状态,则rk1 必为另一进程假定是P2所占用,若P2在有限时间里可以运行 结束,那么PH就不会处于永远等待帙态;所以一定在某个 时刻t,进程P2占有了资源rk而处于永远等待资源rk2状态 如此推下去,按假定系统只有有限个进程,即必有某个n, 在时刻tn时,进程Pn水远等待资源rkn的状态,而rkn必为前 面的某一个进程Pi占用(1≤n)。于是,按照上述的按序分 配策略,当P2占用了rk1后再申请rk2必有: k1<k2 依此类推,可得 k2<k3<<ki<..<kn 但是,由于进程Pi是占有了rkn却要申请rki,那么,必定有: kn< ki 这就产生了矛盾。所以按序分配策略可以防止死锁 08:52
08:52 反证法来证明按序分配不会产生死锁, 事实上,若在时刻t1,进程P1处于等资源rk1的状态,则rk1 必为另一进程假定是P2所占用,若P2在有限时间里可以运行 结束,那么P1就不会处于永远等待状态;所以一定在某个 时刻t2,进程P2占有了资源rk1而处于永远等待资源rk2状态。 如此推下去,按假定系统只有有限个进程,即必有某个n, 在时刻tn时,进程Pn永远等待资源rkn的状态,而rkn必为前 面的某一个进程Pi占用(1≤i<n)。于是,按照上述的按序分 配策略,当P2占用了rk1后再申请rk2必有: k1 < k2 依此类推,可得: k2 < k3 < …<ki<… < kn 但是,由于进程Pi是占有了rkn却要申请rki,那么,必定有: kn < ki 这就产生了矛盾。所以按序分配策略可以防止死锁
死锁的避免 兴银行家算法 ◆银行家拥有一笔周转资金 ◆客户要求分期贷款,如果郾户能够得到各期 贷款。就一定能够归还贷款。否则就一定不 能归还货款 ◆狠行家应谨慎的贷赦,防止出现坏帐 煤用银行家算法避免死锁 ◆操作系統(银行家) ◆操作系统管理的资源(周转资金) ◆选程(要求贷款的容户) 08:52
08:52 死锁的避免 银行家算法 银行家拥有一笔周转资金 客户要求分期贷款,如果客户能够得到各期 贷款,就一定能够归还贷款,否则就一定不 能归还贷款 银行家应谨慎的贷款,防止出现坏帐 用银行家算法避免死锁 操作系统(银行家) 操作系统管理的资源(周转资金) 进程(要求贷款的客户)