免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1478 | 回复: 9
打印 上一主题 下一主题

请问在linux/unix中, atomic操作的含义 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-08-08 11:15 |只看该作者 |倒序浏览
请问在linux/unix中, atomic操作的含义

比如: 在多cpu环境的情况下
两个进程p1,p2同时分别在两个cpu下运行,执行把主存的一个值A(初始值为0)加1,并返回原值的操作.他们是atomic操作
,其结果是什么

论坛徽章:
0
2 [报告]
发表于 2005-08-08 11:20 |只看该作者

请问在linux/unix中, atomic操作的含义

原子操作吗?单CPU好说,多CPU不知道是不是一样...
另外不太明白您的返回原值是什么意思.返回加后的还是原来的?
是+1后又返回0?

论坛徽章:
0
3 [报告]
发表于 2005-08-08 12:39 |只看该作者

请问在linux/unix中, atomic操作的含义

并返回原值就是返回操作以前的值
您也可以说一说单cpu的情况,谢谢了

论坛徽章:
0
4 [报告]
发表于 2005-08-09 17:44 |只看该作者

请问在linux/unix中, atomic操作的含义

各位高手!小问题,请回复一下

论坛徽章:
0
5 [报告]
发表于 2005-08-09 18:00 |只看该作者

请问在linux/unix中, atomic操作的含义

atomic,顾名思义,就是在smp下也保证原子性。不用担心 读-改-写回 这三个步骤被打断

论坛徽章:
0
6 [报告]
发表于 2005-08-09 18:10 |只看该作者

请问在linux/unix中, atomic操作的含义

应该是指最小操作,不能被打断

论坛徽章:
0
7 [报告]
发表于 2005-08-10 13:50 |只看该作者

请问在linux/unix中, atomic操作的含义

两个atomic操作分别同时在两个cpu下运行---对一个数值进行操作
请问: 这两个atomic操作会同时进行,还是同一时间只有一个atomic操作
可以进行呢?why?

论坛徽章:
0
8 [报告]
发表于 2005-08-10 14:19 |只看该作者

请问在linux/unix中, atomic操作的含义

原子操作的意思就是不可分割的.那么意思就是说:

一个完成以后才会进行下一个...

论坛徽章:
0
9 [报告]
发表于 2005-08-13 10:18 |只看该作者

请问在linux/unix中, atomic操作的含义

我是看了<<操作系统内幕>;>;里,中关于多个cpu的同步中讲到:
单cpu的同步与互斥操作在多个cpu环境中不能保证数据的完整性
,但atomic操作在多个cpu环境中能保证数据的完成性.
那么atomic操作的原理是什么?
请详细描述!谢谢!

论坛徽章:
0
10 [报告]
发表于 2005-08-13 11:27 |只看该作者

请问在linux/unix中, atomic操作的含义

单个CPU的情况下可能会出现两个进程P1 P2
正确的情况应该是P1读A并加一,P2读A并加一
结果就应该是P1读的是A,P2读的是A+1
但是如果在P1读完A以后出现上下文切换(context switch),执行p2,完以后继续执行p1的加一指令,那么p1,p2都读的是a。为了保证正确性,就把读A并加一定义成一个原子操作,这样在读A以后就不允许上下文切换,直至这个原子操作进行完毕

一个cpu的情况下,只需要进入原子操作时不允许上下文切换就可以保证一致性,但是多cpu就不行

因此需要从硬件上设计保证原子操作的正确执行,怎么弄,我搞不懂
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP