OS-3

mac2024-04-21  7

并发:死锁和饥饿

死锁的规律

死锁:由于竞争资源对进程的阻塞。

资源的分类

可重用资源

可消费资源

可重用资源

永久性(多为硬件设备,打印机、I/O device、数据库等)

特点:在一个时间上使用,不会被消耗

死锁发生的条件:某个进程占用,另一个进程请求(可能发生死锁)

可消耗资源

可以被进程创建和销毁,通常发生在设计不合理时。

死锁的条件

互斥(mutual exclusion) 同时只有一个进程使用资源占有且等待(hold-and-wait) 当某个进程占有每个资源时还想请求别的资源非抢占(no preemption) 没有资源可以被强行释放循环等待(circular wait)

预防死锁

消灭互斥

non-share memory

消灭占有且等待

给予进程全部需要的资源 缺点:资源利用率低(有可能进程不使用或使用不当)

消灭不可抢占

让进程可抢用资源(设置优先级)(较常用)

消灭唤醒等待

创建线性资源需求链

避免死锁

动态的采用一些方法避免死锁。

进程拒绝启动

如果新启动的进程申请的资源会造成死锁,则拒绝启动这个进程。

新要创建的进程用到的资源要比此资源剩下的总额低。

进程拒绝申请资源

如果申请的资源会造成死锁,则拒绝申请资源。

构造申请表、分配表、可用资源表进行判断。

最新回复(0)