对称多处理(SMP)和多处理(MP)之间有什么区别?

时间:2014-11-06 17:49:14

标签: operating-system multiprocessing job-scheduling smp

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

我认为差异的例子是:

SMP

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

在具有3个处理器的计算机上,您可以将P1T1分配给处理器1,将P1T2分配给处理器2,将P1T3同时分配给处理器3(如果全部可用),或P2T1分配给处理器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?我知道有循环裁剪,更高的优先级,时间切片,分时,最短的时间......如果这个问题没有意义,不用担心,我感谢你们给予的任何帮助。

2 个答案:

答案 0 :(得分:2)

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

在您的情况下,由于上述原因,无法考虑示例来区分这两个。

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

如维基百科中提到的Symmetric Multiprocessing: -

  

对称多处理(SMP)涉及对称多处理器   系统硬件和软件架构中两个或多个相同   处理器连接到单个共享主存储器,具有完全访问权限   到所有I / O设备,并由单个操作系统控制   平等对待所有处理器的实例,保留无处理器   特殊目的。目前大多数多处理器系统都使用SMP   建筑。在多核处理器的情况下,SMP   体系结构适用于核心,将它们视为独立的   处理器。

答案 1 :(得分:0)

在多处理系统(例如,VAX 11/782)中,一个处理器是主处理器,其余处理器是从处理器。主处理器在空闲时将任务分配给其他处理器并以其他方式工作。

在SMP系统中,上帝创造了相同的处理器。他们使用锁定机制来选择任务。