操作系统清华大学版笔记(十一)死锁、银行家算法和进程间通信(直接通信、间接通信)

前篇见此:
操作系统清华大学版笔记(十) 信号量、管程、条件互斥、经典同步问题(读者写者、哲学家问题)
操作系统清华向勇陈渝版笔记(九) 同步协同多道程序设计和并发问题,同步互斥,死锁,临界区

index
死锁、死锁模型、死锁预防和恢复、银行家算法
进程间通信

死锁、死锁模型、死锁预防和恢复、银行家算法

死锁:一组阻塞的进程(两个或多个),持有一种资源,等待获取另一个进程所占有的资源,而导致谁都无法执行。
这里写图片描述
由于进程的并发执行引起了死锁。

死锁模型
资源类型很多,比如CPU cycles , memory space , I/O devices,某个进程运行中的共享变量
资源个数可以有n个
每个进程可以怎么使用资源:

  • request/get ——-free resource
  • use/hold ————requested/used resource, other processes cannot get
  • release ———–free resource

可重复使用的资源:

  • 在一个时间只能一个进程使用,且不能被删除。OS避免杀死拥有资源的进程。
  • 进程使用资源后要释放,让其他进程重用
  • 有物理资源(cpu, I/O通道,主和副存储器),也有抽象的资源(设备和数据结构,如文件,数据库和信号量)
  • 如果每个进程拥有一个资源并请求其他资源,可能导致死锁

怎么使用资源?
创建,销毁—内存管理单元
I/O缓冲区的中断,信号,消息,信息
如果接受信息阻塞可能会发生死锁
少见的组合事件可能会引起死锁

如何表述资源的分配?
资源分配图,顶点V和边E的集合
V有两种
P={P1, P2…Pn } 所有进程
R={R1, R2… Rm} 所有资源类型
Requesting/claiming edge –directed edge Pi→Rj
Assignment/holding edge –directed edge Rj→Pi
这里写图片描述

  • 2
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值