0

程序在内存中,第一个处理程序执行它,然后调用一个据说在另一个内核上执行的函数 - 第一个内核如何将调用地址发送到另一个内核?除了共享内存之外,内核之间是否存在某种通信机制?

4

1 回答 1

1

好的,是这样的。线程不能被调用,只能发出信号,并且函数通常不与线程绑定 - 多个内核上的多个线程可能正在执行相同的函数/代码。

也就是说,肯定有一个处理器间驱动程序可以在内核之间进行通信。这对于允许将线程分配给内核以及允许操作系统在进程终止时停止线程至关重要。

当需要内核间通信时,生产者线程将数据存储在共享内存中,并通过断言硬件中断向另一个内核发出信号,从而强制“目标”内核进入操作系统并处理发出信号的数据。

从本质上讲,这一切都不是微不足道的,如果您想了解更多/让您的大脑弯曲变形,请查看 linux 的调度程序/调度程序代码或用 M$ 签署您的生活。

于 2013-06-22T22:48:06.010 回答