- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
多处理器系统中的读写自旋锁宏.ppt
Linux源代码分析
多处理器SMP系统结构
1. SMP概述
2. SMP结构中的互斥问题
3. 高速缓存与内存的一致性
1. SMP概述
在给定的时间里,CPU能达到的最高速度总是给定的,再要提高速度就只好设法增加并行度,方法之一就是在计算机中使用多个处理器。
人们在长期的研究中先后开发了几种重要的多处理器系统结构模型,其中之一就是所谓“对称多处理器结构”(Semetric Multi-Processor Architecture),缩写为SMP,这是一种比较简单的多处理器系统结构。
1. SMP概述
SMP对CPU的要求
1、CPU内部必须内置APIC单元。Intel 多处理规范的核心就是高级可编程中断控制器(Advanced Programmable Interrupt Controllers--APICs)的使用。
2、相同的产品型号,同样类型的CPU核心。
3、完全相同的运行频率。
4、尽可能保持相同的产品序列编号。
详细请见:smp1.doc
1. SMP概述
在SMP中,所有CPU(为了方便这里用CPU表示处理器)在运行时(除系统引导和初始化以外)都是对称的,或者说都是“平等”的,没有主次之分。
所有CPU通过一条总线共享同一个内存以及所有的外设,为了减少访问内存的冲突,SMP结构中的各个CPU通常都有自己的高速缓存。
1. SMP概述
内存
外部设备
系统总线
SMP系统结构模型示意图
1. SMP概述
各个CPU动态地从系统地就绪进程中调度进程加以执行。
一个进程在不同的时间中可以在不同的CPU上运行;中断请求则动态地分配给其中的某个CPU,由这个CPU提供中断服务。
除一般共享内存外,处理器间的通信手段还有进程间通信和处理器之间的中断请求。
1. SMP概述
通常各CPU都配有自己的高速缓存以减少访存时的冲突;而且,虽然系统中所有处理器都采用相同的时钟脉冲,但由于指令长短不一加上访存时可能会有的冲突以及高速缓存的使用等因素,一般而言指令的边界是不能对齐的。
因此,系统中的各个CPU都在独立地异步地执行指令。
1. SMP概述
SMP的那种结构适合于要求提高系统总的“吞吐量”但系统中各进程相互独立的应用。
至于是否可以通过SMP计算机来提高解决大问题的速度则取决于是否存在好的并行算法,从而可以有效地把给定的问题分解成若干可以并发执行的进程;另一方面,SMP作为一种通用的系统结构,用它来实现一些重要的并行算法往往不如一些专用的系统结构(如向量机)那么有效。
1. SMP概述
与单处理器结构相比,SMP结构地实现有一些特殊问题:
处理器间的同步与互斥
高速缓存与内存之间(内容的)的一致性问题
对中断的处理
1. SMP概述
(一)处理器间(进程间)的同步与互斥
单处理器结构
各进程宏观并行,微观串行(并发)
进程同步——对临界资源的互斥操作(临界区)
保证对临界资源操作中途不会发生进程调度且不会发生中断(或发生的中断与操作对象无关)
极端情况(如不允许关中断):只要对临界资源的操作在单条指令完成(这样中断发生在指令间)
保证临界资源操作的“原子性”,设置“测试并设置”、“测试并清除”等指令
1. SMP概述
(一)处理器间的同步与互斥
SMP结构
系统中多个处理器独立运行,即使在单条指令中完成得操作也有可能受到干扰。
以“测试并设置”这条指令为例:它先从某个内存单元读出其内容,测试其中的某一位并设置为1(也可能原来就是1),再写回到内存单元中,并根据测试的结果设置标志位寄存器中的相应标志位。访存两次,“读-改-写”的过程,每一步都是一个“微操作”,整条指令由若干微操作构成。于是SMP机构中就完全可能发生这样的情况:
1. SMP概述
(一)处理器间的同步与互斥
SMP结构
内存
外部设备
系统总线
1. SMP概述
(一)处理器间的同步与互斥
SMP结构(接前)
(1)CPU1从一个特定的内存单元读出内容并测试其中的某一位(如bit4)为0,然后将其改为1
(2)在CPU1还没来得及将结果写回前,CPU2也从同一处读出并测试bit4为0,也将其改为1
(3)然后,CPU1将结果写回内存单元。由于bit4原来是0,CPU1以为取得了该临界资源,并且确信不会有其他进程打扰。在CPU1看来,该内存单元的bit4已经被其改成1了,如果其他进程再来对此项临界资源执行“测试并设置”将会因此而无效。
1. SMP概述
(一)处理器间的同步与互斥
SMP结构(接前)
(4)然后,CPU2也把修改后的结果写回内存单元,也以为取得了该项临界资源,也确信不会有其他进程可以前来打扰
实际上这两个CPU之间互相干扰十分可能。
从前面的例子可以看出:与单处理器结构相比,SMP结构对互斥操作的微观“分辨率”需要更高,有些在单处理器结
文档评论(0)