我知道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在执行之前完成执行。
这是否有意义?如果是的话,我是否走在正确的轨道上?谢谢,我今天参加了考试,我正在读书。感谢您提供任何帮助。
另外,线程是如何调度的?我知道这是一个非常广泛的问题,但有什么具体的方法吗?或者它是基于系统实施的Scheaduling?我知道有循环裁剪,更高的优先级,时间切片,分时,最短的时间......如果这个问题没有意义,不用担心,我感谢你们给予的任何帮助。
答案 0 :(得分:2)
实际上,SMP是MP的一个部门。因此,差异问题没有多大意义。任何MP都可以是两者中的任何一个 - 对称MP或并行(非对称)MP。
在您的情况下,由于上述原因,无法考虑示例来区分这两个。
此外,在SMP中,两个CPU或处理器位于不同的计算机上,或者是单独的处理器,或者是在同一共享内存上工作的不同内核,以完成工作!
如维基百科中提到的Symmetric Multiprocessing
: -
对称多处理(SMP)涉及对称多处理器 系统硬件和软件架构中两个或多个相同 处理器连接到单个共享主存储器,具有完全访问权限 到所有I / O设备,并由单个操作系统控制 平等对待所有处理器的实例,保留无处理器 特殊目的。目前大多数多处理器系统都使用SMP 建筑。在多核处理器的情况下,SMP 体系结构适用于核心,将它们视为独立的 处理器。
答案 1 :(得分:0)
在多处理系统(例如,VAX 11/782)中,一个处理器是主处理器,其余处理器是从处理器。主处理器在空闲时将任务分配给其他处理器并以其他方式工作。
在SMP系统中,上帝创造了相同的处理器。他们使用锁定机制来选择任务。