我对内核级的多核编程感兴趣。我预计这会影响到许多领域,而且对于每个体系结构来说可能是不同的。有些人必须读内核的部分是什么?如果我想比较和对比英特尔I7和ARM Cortex-A9 MPCore的代码,我会在哪里找到不同之处?
发布于 2012-10-15 18:12:45
要理解处理器提供的多核操作支持和操作系统使用的多核操作支持,深入研究代码可能不是理想的方法。首先了解它做了什么才能得到一个框架,在此框架上挂起与它如何实现相关的许多部分,这一点可能很重要。规范处理问题域,代码处理解决方案域,而在大多数系统中,有一个设计过程进行面向对象或功能分解来将两者联系起来。
处理这个问题的一种方法是从感兴趣的体系结构的操作文档理论开始,对多核或多处理器进行修饰,这两个概念虽然与实现有一些区别,特别是在硬件方面,但有着密切的联系。对于Intel体系结构,我从英特尔Itanium体系结构软件开发人员手册的第2卷第2部分: MP一致性和同步页2:507中找到了一些有趣的信息。
从这个材料,下面的一些代码变得更容易理解。
当然,阅读代码是无可替代的,但也不能替代阅读供应商手册,尤其是在使用地球上最复杂的设备之一时。
发布于 2012-10-07 13:01:53
Linux中的多核编程没有什么特别之处。你必须理解整个内核。不要问具体的问题,继续从kernel.org下载Linux代码,然后遍历自述文件和源代码结构。(您关于英特尔和arm流程的问题在自述文件中得到了回答)。开始阅读源代码和一本好的linux内核书籍。
发布于 2012-10-09 23:20:48
内核中的所有编程都是多核编程(也就是说,它必须能够在多个核上运行)。因此,对于一般的内核编码,没有什么是您没有做过的。
与多核系统相关的内核编程领域是锁定、调度和内存访问(NUMA,如果您在这种类型的机器上)。
这里有几个很好的起点:
https://softwareengineering.stackexchange.com/questions/167844
复制相似问题