849 死锁

    科技2025-04-23  10

    死锁的概念

    死锁的定义: 多个进程因为竞争资源造成的一种僵局,没有外力作用,这些进程无法向前继续推进 死锁产生的必要条件 互斥条件:进程对分配的资源进行排他性控制 不可剥夺条件:进程获得资源在未使用完之前不能被其他进程强行夺走 请求并保持条件:进程已经保持了至少一个资源,提出新的资源请求,而该资源已经被其他进程所占有,此时该进程被阻塞,但是自己已经获得的资源保持不放; 循环等待条件:你等我释放,我等你释放

    死锁处理的策略

    死锁预防: 破坏四个必要条件中的一个或者几个,防止死锁 优点:适用于突发式处理的进程,不必进行剥夺 缺点:效率低,进程初始化时间长,剥夺次数过多,不便灵活的申请新资源。 避免死锁 在资源动态分配中,用某种方法防止系统进入不安全状态,避免死锁,运行过程中预测分配资源是否会死锁。 优点:不必进行剥夺 缺点:必须知道将来的资源需求,进程不能被长时间阻塞 死锁的检测及解除 允许进程死锁,通过检测及时判断死锁,然后对其进行解除。 优点:不延长初始化时间,允许对死锁进行现场处理 缺点通过剥夺解除死锁造成损失

    死锁预防

    破坏互斥条件 允许资源共享使用(某些资源只能被互斥访问例如:打印机 不可行) 破坏不剥夺条件 在进程的请求得不到满足时,释放已经保持的所有资源 特点:增加系统开销,实现复杂,降低吞吐量 破坏请求并保持条件 一次性分配完所有资源 特点:实现简单,但是资源被严重浪费,甚至可能导致进程饥饿 破坏循环等待条件 采用顺序资源发,对进城进行顺序标识 特点:进程编号必须稳定,可能导致资源浪费,并且不利于用户编程

    死锁避免

    银行家算法

    死锁的检测和解除

    资源分配图 圆圈表示进程,框表示一类资源,进程到资源的有向边称为请求边,资源到进程的边称为分配边 死锁定理 在资源分配图中找到分配满足的进程,然后消除其请求边和分配边,如果最后所有边都可以被消除,那么就不存在死锁,反之则存在死锁 死锁解除 资源剥夺法 挂起某些死锁进程,抢占资源,讲这些资源分配给其他死锁进程,但是要防止挂起时间过长

    撤销进程法 强制撤销部分甚至全部死锁进程,并且剥夺他们的资源,撤销原则可以根据优先级和撤销进程的代价进行选择

    进程回退法: 让一个或者多个进程回退到足以避免死锁的地步,进程回退时资源释放资源而不是被剥夺,要求系统保存进程历史信息

    Processed: 0.008, SQL: 8