死锁的处理策略“避免死锁”-第三十八天

目录

什么是安全序列?

不安全情况

安全情况

安全序列

系统的不安全状态

银行家算法

寻找安全序列

 寻找不安全序列

代码实现 

重点回顾


什么是安全序列?

偷图小能手

不安全情况

安全情况

安全序列

概念:指如果系统按照这种序列分配资源,则每个进程都能顺利完成,只要能找出一个安全序列,系统就是安全状态,可以有多个安全序列

死锁的处理策略“避免死锁”-第三十八天_第1张图片

系统的不安全状态

概念:如果分配了资源后,系统中找不出任何一个安全序列,系统就进入了不安全状态,这就意味着之后可能所有进程都无法顺利的执行下去(如果有进程提前归还了一些资源,那系统也有可能重新回到安全状态,不过我们在分配资源之前总是要考虑到最坏的情况)

结论:如果系统处于安全状态,就一定不会发生死锁,如果系统进入不安全状态,就可能发生死锁(处于不安全状态未必就是发生了死锁,但发生死锁时一定是在不安全状态)

银行家算法

核心思想:在进程提出资源申请时,先预判此次分配是否会导致系统进入不安全状态,如果会,则暂时不答应此次请求,让该进程先阻塞等待

死锁的处理策略“避免死锁”-第三十八天_第2张图片

死锁的处理策略“避免死锁”-第三十八天_第3张图片

寻找安全序列

死锁的处理策略“避免死锁”-第三十八天_第4张图片

 寻找不安全序列

死锁的处理策略“避免死锁”-第三十八天_第5张图片

代码实现 

重点回顾

死锁的处理策略“避免死锁”-第三十八天_第6张图片

~over~

你可能感兴趣的:(计算机操作系统-初阶,ubuntu,linux,windows,centos,gnu)