MUP(多单处理器)是否与多核处理器相同,或者它们是否具有相互连接的单独 CPU 以进行通信?我觉得 AMP 还是不一样的。谁能澄清一下?在阅读有关 RTAI(实时扩展到 linux)调度程序时遇到这个问题。请检查链接,最好是第一行和相关的最后一段 。https://www.rtai.org/userfiles/documentation/magma/html/ api/sched_overview.html
1 回答
这是 RTAI ( http://en.wikipedia.org/wiki/RTAI , https://www.rtai.org/ ) 特定术语,用于指定三种调度程序类型之一。它们是在 2003 年的论文https://www.rtai.org/userfiles/documentation/documents/motioncontrol2003.pdf中定义的
“低成本高性能运动控制中的 Linux 实时应用程序接口 (RTAI)”
RTAI 提供三种调度程序: 单处理器 (UP),针对单处理器机器进行了优化;用于对称多处理器应用的对称多处理器 (SMP) 和多单处理器 (MUP)。SMP 调度程序在使用 RTAI 适当的内核任务的内核空间应用程序中提供了灵活性和效率之间的最佳折衷,因为它可以在任何 CPU 上调度任何就绪任务,同时允许有选择地强制选择任务在特定 CPU 或 CPU 集群上运行。相反,MUP 调度程序强制任何任务从创建之初就分配给特定的 CPU,并且可以实现更好的性能,因为它可以更有效地利用内存缓存。... 任何调度程序的使用都没有限制,实时任务可以不受任何限制地交互,无论它们运行在什么 CPU 上。
因此,“UP”调度程序只能使用处理器的单核。“SMP”调度程序可以使用多个核心(或 CPU 集群 - NUMA 中的物理处理器)在它们上计划任务,并且可以将任务从一个核心重新映射到另一个核心。并且“MUP”调度程序可以使用多个核心,但不会将任务从一个核心移动到另一个核心。任务将始终使用 MUP 将其数据放在最近的缓存中,这与“SMP”不同,当任务可能从其缓存数据中移开时。
MUP 调度程序中不共享某些资源,这对于在一台机器上组合多个实时任务很有用。MUP 每个 CPU 使用一个定时器(而 SMP 有公共定时器?):
还需要注意的是,MUP 调度程序使用独立的每个 CPU 定时器,它们中的每一个都可以独立于任何其他定时器运行,因此可以自由分配定时器的操作模式,例如可以有周期性和一次性定时器,而周期性定时器不需要同时运行。
www.cs.ucf.edu/~lboloni/Teaching/EEL6897_2007/presentations/ZubairIlhan_RTAI.ppt
SMP&MUP 调度器
- SMP 可以将任务调度到多个 CPU。在特定的 CPU 上可以处理不同程度的附加服务。
- SMP 调度器仍然是一个优先级驱动的调度器。
- MUP 调度程序将多处理器机器视为许多单处理器的集合。每个 CPU 可以对其定时器进行不同的编程。
- 使用 MPU,一个 CPU 可以在周期性模式下运行,而另一个 CPU 在一次性模式下运行。