如何实现其他核心呼叫

时间:2013-06-22 21:41:06

标签: multithreading x86 64-bit cpu processor

程序在内存中,第一个proseor执行 它,然后有一个函数的调用,据说 在另一个核心上执行 - 第一个核心如何发送 这个电话是对另一个核心的吗?有沟通吗? 除了共享ram之外的核心之间的机制?

1 个答案:

答案 0 :(得分:1)

好的,就像这样。线程不能被调用,只能用信号通知,并且函数通常不会与线程相关联 - 多个内核上的几个线程可能正在执行相同的函数/代码。

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

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

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