免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123
最近访问板块 发新帖
楼主: newroot_phy
打印 上一主题 下一主题

[C] 百度的测试题 - 最后一题 [复制链接]

论坛徽章:
0
21 [报告]
发表于 2014-07-11 21:08 |只看该作者
回复 9# starwing83


    这也是让我搞不清楚的地方,现在多核CPU都有自己的cache, 不做同步很难保证数据的一致性,但这么想的话,似乎跟出题人的目的好像不太一样。

论坛徽章:
0
22 [报告]
发表于 2014-07-11 21:08 |只看该作者
回复 10# cobras


    此贴不考虑效率问题。

论坛徽章:
0
23 [报告]
发表于 2014-07-11 21:09 |只看该作者
回复 12# windoze


    可能我没太明白你的意思,锁总线并不能解决一致性的问题

论坛徽章:
0
24 [报告]
发表于 2014-07-11 21:10 |只看该作者
回复 14# folklore


    如何得知???

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
25 [报告]
发表于 2014-07-11 21:19 |只看该作者
回复 14# folklore


    额= =显然我的意思是这是个无寄存器的栈机器,而且恰好栈是公用的(好吧,这种东西根本就不可能多核吧= =)

我重新想了一下,x = y;的确是需要两条机器指令,问题是,即使是这样,这个操作也是原子的= =就算在取得y以后执行了任何代码,但是在执行mov之后,仍然能设置至少y的某个历史值。

不过还有一个问题是这样的:y和x是不是相关?如果y的之前值和x相关(比如y = x + 1),那么这个语句肯定不会达到预期的效果吧?虽然x = y也仍然是原子的……

论坛徽章:
44
15-16赛季CBA联赛之浙江
日期:2021-10-11 02:03:59程序设计版块每日发帖之星
日期:2016-07-02 06:20:0015-16赛季CBA联赛之新疆
日期:2016-04-25 10:55:452016科比退役纪念章
日期:2016-04-23 00:51:2315-16赛季CBA联赛之山东
日期:2016-04-17 12:00:2815-16赛季CBA联赛之福建
日期:2016-04-12 15:21:2915-16赛季CBA联赛之辽宁
日期:2016-03-24 21:38:2715-16赛季CBA联赛之福建
日期:2016-03-18 12:13:4015-16赛季CBA联赛之佛山
日期:2016-02-05 00:55:2015-16赛季CBA联赛之佛山
日期:2016-02-04 21:11:3615-16赛季CBA联赛之天津
日期:2016-11-02 00:33:1215-16赛季CBA联赛之浙江
日期:2017-01-13 01:31:49
26 [报告]
发表于 2014-07-11 22:51 |只看该作者
回复 23# newroot_phy

x86/x64的LOCK指令会做cache coherency,能保证cache一致性。

论坛徽章:
0
27 [报告]
发表于 2014-07-12 17:38 |只看该作者
回复 26# windoze


    嵌入式开发中通过地位来实现对cache/uncache的访问, x86/x64上没有这么做过(我不清楚有没有),有点联系的可能就是volatile关键字,难道是因为你所说的原因吗?

论坛徽章:
0
28 [报告]
发表于 2014-07-12 17:42 |只看该作者
回复 25# starwing83


    类似的问题是,如果之前的类似以下的判断呢
  1. if (x)
  2. {
  3.     x = y
  4. }
  5. else
  6. {
  7.     x = ?????
  8. }
复制代码
我在x86上写程序时也认为32位机器,x = y 是原子的,但现在的的同事跟我说,不是原子操作

论坛徽章:
44
15-16赛季CBA联赛之浙江
日期:2021-10-11 02:03:59程序设计版块每日发帖之星
日期:2016-07-02 06:20:0015-16赛季CBA联赛之新疆
日期:2016-04-25 10:55:452016科比退役纪念章
日期:2016-04-23 00:51:2315-16赛季CBA联赛之山东
日期:2016-04-17 12:00:2815-16赛季CBA联赛之福建
日期:2016-04-12 15:21:2915-16赛季CBA联赛之辽宁
日期:2016-03-24 21:38:2715-16赛季CBA联赛之福建
日期:2016-03-18 12:13:4015-16赛季CBA联赛之佛山
日期:2016-02-05 00:55:2015-16赛季CBA联赛之佛山
日期:2016-02-04 21:11:3615-16赛季CBA联赛之天津
日期:2016-11-02 00:33:1215-16赛季CBA联赛之浙江
日期:2017-01-13 01:31:49
29 [报告]
发表于 2014-07-12 21:24 |只看该作者
回复 27# newroot_phy

这都哪儿跟哪儿啊?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP