

6.1 给出可重用资源和可消费资源的例子。
可重用资源:处理器,I/O通道,主存和辅存,设备以及诸如文件,数据库和信号量之类的数据结构。
可消费资源:中断,信号,消息和I/O缓冲区中的信息。
6.2 可能发生死锁所必须的三个条件是什么?
互斥,占有且等待,非抢占。
6.3 产生死锁的第4个条件是什么?
循环等待。
6.4 如何防止占有且等待的条件?
可以要求进程一次性地请求所有需要的资源,并且阻塞这个资源直到所有请求都同时满足。
6.5 给出防止无抢占条件的两种方法。
第一种,如果占有某些资源的一个进程进行进一步资源请求被拒绝,则该进程必须释放它最初占用的资源,如果有必要,可再次请求这些资源和另外的资源。
第二种,如果一个进程请求当前被另一个进程占有的一个资源,则操作系统可以抢占另一个进程,要求它释放资源。
6.6 如何防止循环等待条件?
可以通过定义资源类型的线性顺序来预防。如果一个进程已经分配到了R类型的资源,那么它接下来请求的资源只能是那些排在R类型之后的资源类型。
6.7 死锁避免,检测和预防之间的区别是什么?
死锁预防是通过间接地限制三种死锁必要条件的至少一个或是直接地限制循环等待的发生来避免死锁的出现。死锁避免允许可能出现的必要条件发生,但是采取措施确保不会出现死锁的情况。而死锁检测允许资源的自由分配,采取周期性的措施来发现并处理可能存在的死锁情况。
本文探讨了死锁产生的四个必要条件:互斥、占有且等待、非抢占和循环等待。详细介绍了防止死锁的方法,包括一次性请求所有资源、资源预分配策略以及资源抢占策略。此外,还讨论了死锁预防、避免和检测的区别。
604

被折叠的 条评论
为什么被折叠?



