关于MIMD计算机

今天收到了一个邮件,问了我一个这样的问题:多CPU能否同时处理多个进程?
在这里插入图片描述
我们都知道,CPU中每个核心都具有独立处理资源的能力,而多核心CPU的操作系统中,进程在微观上是并发执行的。所以,我们是没有办法使用单核心的CPU的进程控制方法进行控制的。
也就是说,如果我们采用常规的PV操作对多核心CPU中来实现对进程的互斥和同步,可能会产生很多的问题。
常见的解决方法为RPC、管道、共享缓冲区或者是Socket,不过Socket的效率太低,还是一般选择远程过程调用来解决互斥和同步问题。

而根据总所周知的Flnny分类法,我们脑海中应该有下列知识点
在这里插入图片描述

不知道为什么会发这么一言难尽的问题来问我,可能是计算机体系结构没学好或者是不会百度谷歌吧。

在MIMD和SIMD计算机中,具有多个处理器,也就是图中所说的多核CPU。

在现代的多核硬件结构中(intel x86),内存对多个CPU核是共享的,CPU核一般都是对称的,因此多核属于共享存储的对称多处理器。

在多核硬件结构中,如果要充分发挥硬件的性能,必须要采用多线程(或多进程)执行,使得每个CPU核在同一时刻都有线程在执行。

和单核上的多线程不同,多核上的多个线程是在物理上并行执行的,是一种真正意义上的并行执行,在同一时刻有多个线程在并行执行。而单核上的多线程是一种多线程交错执行,实际上在同一时刻只有一个线程在执行。

MIMD计算机包括:并行向量处理机、多处理机、大规模并行处理机、工作机群、分布式共享存储系统
对于实际意义上的分布式系统,我个人感觉不能完全归类于MIMD计算机中,他是一个集群的概念,在目前云计算的大环境下,称之为容器云可能更为实在,但是不同的是容器和virtual machine的概念是有所差别的。

关于UMA

处理器都通过软件或硬件装置连接到“全局可用”存储器。操作系统通常保持其内存一致性。从程序员的角度来看,这种存储器模型比分布式存储器模型更好理解。而且,存储器一致性由操作系统管理而不是靠写入程序管理。当然共享存储模型也右明显的缺点:当处理器数量超过三十二个时,处理起来非常困难;共享存储器模型不如分布式存储器模型灵活。

多处理机

共享存储器多处理机其两个或更多的CPU全部共享访问一个公用的RAM。因此在多处理机采用UMA机制时,需要实现交叉开关网络来实现资源控制。
交叉网络可以更新迭代为多级交叉网络,涉及到混洗的概念。

向量处理机

面向向量型并行计算,以流水线结构为主的并行处理计算机。 采用先行控制和重叠操作技术、运算流水线、交叉访问的并行存储器等并行处理结构,对提高运算速度有重要作用。但在实际运行时还不能充分发挥并行处理潜力。向量运算很适合于流水线计算机的结构特点。向量型并行计算与流水线结构相结合,能在很大程度上克服通常流水线计算机中指令处理量太大、存储访问不均匀、相关等待严重、流水不畅等缺点,并可充分发挥并行处理结构的潜力,显著提高运算速度。

猜你喜欢

转载自blog.csdn.net/qq_27180763/article/details/123773538
今日推荐