Art of Multiprocessor Programming 答案 ch3
来源:互联网 发布:高尔察克 知乎 编辑:程序博客网 时间:2024/04/30 15:19
大部分的答案:http://www.cs.nyu.edu/courses/spring09/G22.2631-001/sol2.pdf
21 A,B复合之后的任一静止状态必然同时是A和B的静止状态,则由这个静止状态分开的任何方法都满足 原理3.3.2
22. 否。如图示: R1一个时间单位返回,但是效果需要3个时间单位才能被看到; R2需要3个时钟单位返回,并且立刻能被看到。对于组合,t3为静止态,读操作能得到合理的结果;但是对于R1,t1为静止态,不满足静态一致性。
23. 静态一致非顺序一致:
顺序一致非静态一致:
24.1 是静态一致: r.write(2) --> r.read(2)。 是可线性化:r.w(1) --> r.r(1) --> r.w(2) --> r.r(2)。所以也是顺序一致的。
24.2 是静态一致: r.write(1) --> r.read(1)。 是可线性化:r.w(2) --> r.w(1) --> r.r(1) --> r.r(1)。 所以也是顺序一致的。
25. 因为合法不代表遵循单线程中的代码顺序,所以去掉L2不能保证顺序一致。比如:
26. 假设有 H | x不可线性化, 必然违反定义3.6.1中的一条。因为S是响应紧邻调用的事件组合,对于H等价的S去掉所有其他H| y对应的S | y的事件后,剩下的事件必然构成一个H | x的顺序经历,所以不可能违反L1。如果违反L2,所有能找到的S(x)都至少有2个事件m2 --> m1但是在H | x中有m1 --> m2;对于满足L2的S,在m2与m1之间插入任意的事件都不能改变这个事实,即如果没有S | x满足L2,也不可能有S满足L2。
27. 见参考答案。
28. 根据我所知道的c的内存模型,如果代码进行了优化,可能会出现volatile的v比非volatile的x先在多核之间同步的情况,即y可能被0除;不清楚java的模型中happens before是不是消除了这种情况。
29. 假如完成了无限个方法调用执行了无限的平方个操作步,每个调用仍然执行了无限个操作步,不是无锁的。
30. 如果x中某一个方法调用不是无锁的,即进行了无限次(n, n趋近于无限)操作,则任意选取只包含了这个调用的H,例如, |H| = O(2n),n趋近无限大。则H是个无限经历,但只有2个操作完成。矛盾。所以是无锁的。
31. 如果i有限则2^i有限,所以无等待。但是2^i不收敛,不是有界无等待。
32. 见参考答案。
33.
- Art of Multiprocessor Programming 答案 ch3
- Art of Multiprocessor Programming 答案 ch2
- Art of Multiprocessor Programming 答案 ch4
- Art of Multiprocessor Programming 答案 ch5
- Art of Multiprocessor Programming 答案 ch6
- Art of Multiprocessor Programming 答案 ch7
- Art of Multiprocessor Programming 答案 ch8
- Art of Multiprocessor Programming 答案 ch9
- Art of Multiprocessor Programming 答案 ch10
- Art of Multiprocessor Programming 答案 ch11
- Art of Multiprocessor Programming 答案 ch12
- Art of Multiprocessor Programming 答案 ch13
- Art of Multiprocessor Programming 答案 ch14
- Art of Multiprocessor Programming 答案 ch15
- Art of Multiprocessor Programming 答案 ch16
- Art of Multiprocessor Programming 答案 ch17
- Art of Multiprocessor Programming 答案 ch8 p93
- Art of Multiprocessor Programming 答案 ch8 p96
- xp上ORACLE 9i 卸载并重新安装
- 常见3DS Max格式概述
- 2013湖北服务外包论坛召开 纵论外包未来十年选择
- Struts中ActionForm的初始化步骤
- ios开发中使用storyboard关于touch的event的响应
- Art of Multiprocessor Programming 答案 ch3
- Http请求之--C#的HttpWebRequest实现POST方式请求
- 各版本oracle软件】【9i XP】【10g XP】
- Lua中使用C函数之简化版
- Filter的使用(对请求和响应数据进行替换)
- Sencha Touch权威指南 PDF+源代码下载
- Unit Testing DAO Classes with JUnit, Spring
- QT4.8.5编程过程中遇到的问题及解决办法
- android读取文件时乱码的问题,以及eclipse中java编码查看方式