[关闭]
@WillireamAngel 2018-06-10T07:56:28.000000Z 字数 550 阅读 883

信号量与管程

操作系统


信号量

相关定义

信号量:系统资源数量
信号:
- 整形(sem)变量和两个原子操作
- p()sem减少,sem<0,进入等待否则继续
- v()sem+1, sem<=0,唤醒一个等待进程
- p可能阻塞,v不会阻塞
- 线程不会武侠器阻塞在P()

信号量使用

缺点

同步,管理,死锁
程序员运用信号量机制,容易出错,不能处理死锁问题

管程

相关定义

管程:多线程互斥访问共享资源,有一个线程执行管程代码,管程线程可临时放弃互斥访问,等待事件恢复。

管程使用

对象/模板,收集共享数据,定义访问共享数据的方法。

组成

锁(控制互斥访问),0或多个条件变量(管理共享数据的并发)(每个条件变量对应一个等待队列,资源被占用而处于等待)
awit():阻塞队列,唤醒等待或释放互斥空间
signal():唤醒等待线程
变量释放:Hansen管程(高效)、Hoare管程

相关问题

哲学家就餐问题

读者写者问题

读者:只读取不修改
写者:读-读、读-写互斥(读写分离)、写写互斥
优先;读者优先&写者优先

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注