首页
社区
课程
招聘
[未解决,已结帖] [悬赏]求问多核CPU异步机制实现的原理 2.00雪花
发表于: 2017-12-8 15:31 2399

[未解决,已结帖] [悬赏]求问多核CPU异步机制实现的原理 2.00雪花

2017-12-8 15:31
2399
最近遇到很苦恼的问题,对于多核CPU的异步实现原理不了解。写起代码来,总会有很多困惑。深入解析windows操作系统,深入理解linux内核,还有几本关于CPU书籍的目录,还是不能解惑。求大神指点。

1。 原子操作
在深入理解linux内核中,有这么一句描述:如果在读操作之后,写操作之前,没有其他进程占用内存总线,那么从内存中读取数据,更新数据,并把更新数据写回内存的读,修改,写汇编语言指令是原子的。

有一点是不理解的。没有其他进程占用内存总线。。。意思是说,当有一个核心需要做原子操作的时候,其他核心的当前指令执行完之后,就不可读内存了吗?也就保证了这一段代码的单核心执行。
还是在内存管理单元上做过滤,有访问该地址的,进入等待列队?
亦或是其他实现方式?

2。类似互斥体的内核异步对象
怎么保证一段代码,同一时刻,只被一个核心执行?
举个简单的例子:
if (0 == i)
    i++;
一段代码,只要涉及到多CPU运行,就有可能涉及这些问题。不知道这个问题是怎么解决的?如果说用内核对象去解决,那么请告诉我内核对象的实现里,他遇到这个问题是怎么解决?

我自己的思考是:
1。CPU之间可能会有通讯机制。能互相控制。
2。有一个更高级别的核心控制着我们所说的多核CPU。

多核CPU并发,无非是:
互不影响的时候高并发。有同步异步需求的时候,需要做到顺序执行。
觉得最有可能的是第二个思路。求大家帮帮忙,哪里有这方面的资料?

    




[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 1
活跃值: (364)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
3.1  处理器自动保证基本内存操作的原子性
3.2  使用总线锁保证原子性
3.3  使用缓存锁保证原子性
2017-12-17 20:25
0
雪    币: 504
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
楼主,麻烦问问发帖审核需要多长时间啊?
2017-12-17 22:21
0
雪    币: 1
活跃值: (364)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
wx_下雨天_502953 楼主,麻烦问问发帖审核需要多长时间啊?
我的这里好像有6天吧
2017-12-18 07:18
0
游客
登录 | 注册 方可回帖
返回
//