在多核系统中,每个cpu都有自己的linux内核吗?


2

我的意思是,在具有“ n”个cpu的多核系统中,每个cpu都将安装自己的linux内核,还是所有cpu都具有相同内核映像的副本?

关于多核的另一个问题是内核跟踪。由于跟踪是在内核级别进行的,那么我应该分别对每个cpu进行跟踪,还是可以对所有cpu进行整体跟踪?


3
听起来像是一个超级用户问题,因为它似乎与编程没有直接关系。
Mark Byers 2010年

1
我不太确定,这个问题对于内核的本质是根本的。我会把这个问题留在这里。
stsquad 2010年

Answers:


7

所有CPU共享同一内存系统,并且仅加载Linux的一个副本。每个正在运行的进程都有自己的堆栈,但是在单CPU系统上也是如此。

Strace是通过ptrace实现的,我认为它可以在单个PID上运行,因此我认为这意味着它只会跟踪单个线程的执行。


当然,对于仅与在一个内核上运行相关的事情,还增加了每CPU变量。
stsquad 2010年

0

您将拥有一个内核映像,其中代码的部分跨多个内核/ cpu执行。具体取决于内核开关/编译方式。

关于内核跟踪,您仍然会有一个跟踪!

请记住,同一个内核将由多个cpus /内核执行...

希望这对您有所帮助,汤姆,谢谢。


0

谢谢大家的答案。我自己做了一些研究,发现两者都可以在多核系统中实现。SMP多核系统的所有内核都将具有一个Linux内核,而在AMP多核系统中,每个内核将具有自己的内核。通常,某些多核将具有几个用于AMP的核心,以执行实时关键任务,其余的将是SMP,以执行非关键和正常任务。

我问的问题是关于内核跟踪的。如今,大多数内核都带有内置的kprobes,它将允许内核开发人员获取有关内核性能的信息。我想,第一个问题的答案也解决了这个问题。在SMP中,将生成内核的单个跟踪,而在AMP中,将生成与cpu数量一样多的跟踪。

AMP代表非对称多重处理,SMP代表对称多重处理

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.