深入理解计算机系统——第12章:用信号量同步线程
2015-09-10 23:52
337 查看
用信号量同步线程:
同步错误:
一般而言你没有办法预测操作系统是否将你的线程选择一个正确的顺序执行。
12.5.1 进度图
(1)进度图:将n个并发线程的执行模型化为一条n维笛卡尔空间中的轨迹线。
(2)每条轴k对应着线程k的进度。
(3)每个点Ik代表着k线程已完成指令Ik这一个状态,原点处代表初始状态。
(4)进度图是指令执行模型化为从一个状态到另一个状态的转换,两条指令不能在同一时刻完成,对角线不允许的。
12.5.2 信号量
(1)一种特殊的类型变量
(2)信号量s是具有非负整数值的全局变量。
(3)只能用两种特殊的操作来处理。
P(s):
V(s):
PV操作需要注意:
PV操作函数:
同步错误:
一般而言你没有办法预测操作系统是否将你的线程选择一个正确的顺序执行。
12.5.1 进度图
(1)进度图:将n个并发线程的执行模型化为一条n维笛卡尔空间中的轨迹线。
(2)每条轴k对应着线程k的进度。
(3)每个点Ik代表着k线程已完成指令Ik这一个状态,原点处代表初始状态。
(4)进度图是指令执行模型化为从一个状态到另一个状态的转换,两条指令不能在同一时刻完成,对角线不允许的。
12.5.2 信号量
(1)一种特殊的类型变量
(2)信号量s是具有非负整数值的全局变量。
(3)只能用两种特殊的操作来处理。
P(s):
V(s):
PV操作需要注意:
PV操作函数:
相关文章推荐
- C++数据结构之链式队列(Linked Queue)
- ./configure: error: the HTTP rewrite module requires the PCRE library解决
- 网络部分(三)
- 网络数据包头部在linux网络协议栈中的变化
- HTTP请求的基本概念 HTTP请求头和响应头的含义
- nginx中http的fastcgi模块的配置指令1
- [Z]CiteSeer统计的计算机领域的期刊和会议的影响因子
- http://www.csdn.net/article/2015-08-06/2825395
- 数据结构之双向循环链表操作4-(插入,删除,建立等)
- 探索大数据之如何挖掘社交网络
- 一元多项式相加-链表应用
- 计算机病毒软件的发展演变
- CCNA笔记——802规定,网络层,传输层,会话层,表示层,应用层,封装
- 网络布局算法之【FR算法(Fruchterman-Reingold)】
- 计算机网络之TCP
- Linux网络管理命令
- 【数据结构系列】堆与堆排序
- UVA - 1658(网络流经典拆点方法)
- 使用事件驱动模型实现高效稳定的网络服务器程序
- Web开发设计(一)