操作系统 – 对称多处理(SMP)和多处理(MP)之间有什么区别?

我知道MP是多个处理器内多个进程的管理,但是它和SMP之间有什么区别吗?是不是在SMP中你可以同时从同一个进程执行多个线程,而MP你只能有一个进程占用一个处理器?

我认为差异的例子如下:

SMP

P1有3个线程:P1T1,P1T2和P1T3
P2有2个线程:P2T1和P2T2.

在具有3个处理器的计算机上,如果全部可用,则可以将P1T1分配给处理器1,将P1T2分配给处理器2,将P1T3分配给处理器3,或者将P2T2分配给处理器1,将P2T2分配给处理器2,将P1T1分配给处理器3.

MP

P1有3个线程:P1T1,P1T2和P1T3
P2有2个线程:P2T1和P2T2.

在具有3个处理器的计算机上,您可以将P1T1分配给处理器1和 –
P1有3个线程:P1T1,P1T2和P1T3
P2有2个线程:P2T1和P2T2.

在具有3个处理器的计算机上,您可以将P1T1分配给处理器1,但是P1T2和P1T3必须等到P1T1完成才能执行,而P2T1可以进入处理器2,而且P2T2必须等到P2T1在执行之前完成执行.

这样做了吗?如果是的话,我是否走在正确的轨道上?谢谢,我今天参加了考试,我正在读书.感谢您提供的任何帮助.

另外,如何线程调度?我知道这是一个非常广泛的问题,但有什么具体的方法吗?或者它是基于系统实施的Scheaduling?我知道有循环裁剪,更高的优先级,时间切片,分时,最短的时间……如果这个问题没有发生,没有后顾之忧,我感谢你们给予的任何帮助.

最佳答案 实际上,SMP是MP的一个部门.因此,差异问题没有多大意义.任何MP都可以是两者中的任何一个 – 对称MP或并行(非对称)MP.

在您的情况下,由于上述原因,不能将示例区分为这两者.

此外,在SMP中,两个CPU或处理器驻留在不同的机器上,或者是单独的处理器,或者是在同一共享内存上工作的不同内核,以完成工作!

正如维基百科中提到的关于对称多处理: –

Symmetric multiprocessing (SMP) involves a symmetric multiprocessor
system hardware and software architecture where two or more identical
processors connect to a single, shared main memory, have full access
to all I/O devices, and are controlled by a single operating system
instance that treats all processors equally, reserving none for
special purposes. Most multiprocessor systems today use an SMP
architecture. In the case of multi-core processors, the SMP
architecture applies to the cores, treating them as separate
processors.

点赞