知识卡片

死锁的三个必要条件与假脱机的化解思路

专业/工作 · 1287.g

内容

死锁只有在三个条件同时满足时才会出现:资源不可共享、资源是分批不完整地请求的(进程已握有部分资源,还要再申请更多)、资源一旦分配就不能被强行收回。破坏其中任意一个条件即可消除死锁——检测收回已分配资源属于”死锁检测和改正”,要求进程一次性申请全部所需资源属于打破第二个条件;而假脱机技术则是把不可共享的资源伪装成可共享的:进程请求打印机时,操作系统实际上让它把要打印的内容写入海量存储器,之后再由操作系统统一把这些内容排队送去打印,每个进程都以为自己独占了打印机。发散:假脱机的思路本质是在真实的稀缺资源和请求方之间插入一层缓冲队列,把”多方争抢同一稀缺资源”的问题转化成”各自往队列里写、系统按顺序消费”的问题,这正是现代消息队列解耦生产者和消费者的雏形。

参考来源

《计算机科学概论》第3章《操作系统》