4

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

我认为差异的例子是:

脱模剂

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

在具有 3 个处理器的计算机上,您可以同时将 P1T1 分配给处理器 1,将 P1T2 分配给处理器 2,将 P1T3 分配给处理器 3(如果全部可用),或者将 P2T1 分配给处理器 1,将 P2T2 分配给处理器 2,将 P1T1 分配给处理器 3。

国会议员

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在它执行之前完成执行。

这有意义吗?如果是这样,我在正确的轨道上吗?谢谢,我今天参加了操作系统考试,我正在学习。感谢你们提供的任何帮助。

另外,线程是如何调度的?我知道这是一个非常广泛的问题,但是有什么具体的方法吗?还是基于系统实施的调度?我知道有循环调度,更高的优先级,时间切片,时间共享,最短的时间......如果这个问题没有意义,不用担心,我感谢你们可以提供的任何帮助。

4

2 回答 2

2

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

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

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

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

对称多处理 (SMP) 涉及对称多处理器系统硬件和软件架构,其中两个或多个相同的处理器连接到一个共享的主内存,可以完全访问所有 I/O 设备,并由一个操作系统实例控制所有处理器一律平等,不为特殊目的保留任何处理器。当今大多数多处理器系统都使用 SMP 架构。在多核处理器的情况下,SMP 架构适用于内核,将它们视为单独的处理器。

于 2014-11-06T18:06:07.183 回答
0

在过去的多处理系统(例如,VAX 11/782)中,一个处理器是主处理器,其余处理器是从处理器。主处理器在空闲时将任务分配给其他处理器,否则会工作。

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

于 2014-11-07T16:26:35.660 回答