DSM分布式共享内存
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
每一进程的操作都按程序规定的顺序执行。
所有进程看到相同的内存访问操作次序。
例:运行同一个程序得到的两个可能的结果
P1: W(x)1 P2: R(x)0 R(x)1 P1: W(x)1 P2: R(x)1 R(x)1
顺序一致性存储器不保证读返回的值是之前另一进程写入的; 它只保证所有进程以相同的顺序看见存储器访问。
5.入口一致性
( 1)只有某一进程的保护共享变量全部被更新以后,该 进程才允许执行同步变量的获取访问;
(2)在一进程以互斥模式访问该进程的同步变量之前,不 允许其他进程持有此同步变量,即使在非互斥模式下; (3)在结束互斥模式下对一个同步变量的访问后,任意其 他进程必须与该变量的拥有者核查,才能试图以非互斥 模式访问该同步变量。
获得访问权:通知系统进程正准备进入临界区,所有其 它成员所做的修改结果都要加以传播,并由本地的处理 器来更新。 释放访问权:通知系统,进程准备退出临界区,对共享 内存所作的本地修改将传播到其它的各个成员。
在访问共享变量前,进程所有先前的获取访问都必须成
功地完成; 分布式共享存储器在遵守以下规定时是释放一致的 在允许释放访问前,进程先前的所有读写操作都必须结 束; 获取访问和释放访问必须是处理器一致的。
DSM使不同的机器无需共享物理内存就 可以访问共享数据。进程访问DSM中的数据 就如同访问本机的内存一样。DSM运行系统 还应保证在不同机器上执行的进程可以观 察到别人对DSM的修改。
分布式共享内存
物理 内存
物理 内存
物理 内存
图1.1
DSM 抽象
DSM应用的中心问题有三个:一是当系统容 纳相应多的设备时,怎样保持系统的高性 能;二是访问DSM将导致大量通信开销的产 生;三是访问DSM的进程相当多时,怎样保 证系统的一致性。 本章将讨论DSM的一些设计和应用问题, 重点在于一致性模型。
P1:W(x)1 P2: R(x)1 W(x)2 P3: P4:
R(x)2 R(x)1
R(x)1 R(x)2
因果一致性举例
(2)符合因果一致性
P1:W(x)1 P2: W(x)2 P3: P4:
R(x)2 R(x)1
R(x)1 R(x)2
2.管道内存(PRAM )一致性
同一个进程的写操作的执行次序,其它进程 看到的都相同 不同进程的写操作的执行次序,不同进程看 到的可以是不同的 例:符合PRAM一致性,但不符合因果一致性
1.因果一致性
对于因果相关的写操作,所有进程看到的执行顺 序应相同。 并发写操作在不同CPU看到的顺序可能不同
P1:W(x)1 P2: R(x)1 W(x)2 P3: R(x)1 P4: R(x)1
因果关系
W(x)3 R(x)3 R(x)2 R(x)2 R(x)3
并行
因果一致性举例 (1)违反因果一致性
缺页中断时,所缺页从另一机器而不是磁盘中换入, 处理缺页中断的代码和传统相同。
段
优点:当移动大量地址空间时,使用大单元传输数据
可以减少传输的次数。可以很快访问保存在本地的页。 缺点:大量的传输使网络连接更紧密,可能会阻塞 其他进程的缺页中断。有效页太大会产生“错误共享” 问题。
段
错误共享:无关的变量出现在同一页上,当一进程使
分布式共享内存主要有三种处理方式: 1. 基于硬件的方式 依靠硬件来装载、存储指令以完成DSM的 寻址操作及远程内存结点的通信。(适合于多 处理机系统)
2.基于虚拟页的方式 这种方式与传统的虚拟存储器系统类似, 不同之处在于:操作系统不是从磁盘中而是通 过网络从另一个处理机中获取页。
3.基于库的方式 一些程序设计语言或语言的扩展,支持 DSM方式。进程通过库调用来完成对DSM中 数据的访问。 基于虚拟页的方式应得到更多的关注
严格
顺序 因果 PRAM
处理器
一致性模型总结
使用同步操作的一致性模型
一致性
弱 释放
说明
同步完成后,共享数据才可能保持一 致 当离开临界区时,共享数据就保持一 致
入口
当进入临界区时,和该临界区相关的 共享数据保持一致
Thanks !
2.写无效:
当一个进程要进行写操作时,它首先要通知其他进程数 据的备份无效,然后进行写操作,其他进程因此可以避 免读到过时的数据,因为在写操作进行期间,无效数据 是不能访问的。
11.2. 5 颗粒性
基于虚拟页的DSM中的颗粒性问题就是页 面的大小。
页
调入所需的整个页。由于使用相同的单元,设计简单。
11.1.1 消息传递与DSM的比较
1.程序模型 •不需要编码、解码 •数据的安全 •数据的表示(是否统一的) •进程同步方法 •异步的通信方式
2.效率
为DSM编写的并行程序的执行功能, 在相同的硬件平台上,与基于消息传递 模型编写的程序基本相等,至少在机器 数量相对少的情况下是这样。
11.1.2 DSM的主要处理方式
4. 释放一致性
举例
P1: Acq(L) W(x)1 W(x)2 Rel(L) P2: P3: Acq(L) R(x)2 Rel(L) R(x)1
释放一致性的有效序列
说明:进程P1执行获取访问,两次改变共享变量,然后执行释放操作 进程P2执行获取访问,读取x。 进程P3读共享变量,但在读共享变量前没有执行获取访问
有序一致性举例
3个并行执行的进程 4种正确的执行顺序
a=1; print(b,c); b=1; print(a,c); c=1; print(a,c);
(a)
ຫໍສະໝຸດ Baidua=1;
b=1;
c=1;
print(b,c); print(a,c); print(a,b); (a) (b) (c)
a=1; b=1; print(a,c); print(b,c); c=1; print(a,b);
用他们之一时,进程也得到了其他的变量。有效页越 大,发生错误共享的可能性越大。
处理器1 A B 使用A的 代码 处理器2 A B
两个无关的 共享变量
共享页
使用B的 代码
包含两个无关变量的页的错误共享
11.2. 6 抖动问题
抖动:数据无效的时间超出了等待访问它的进 程的有效工作时间。
11.3其它一致性
P1:W(x)1 P2: R(x)1 W(x)2 P3: P4:
R(x)1 R(x)2
R(x)2 R(x)1
3.处理机一致性
与PRAM一致性相似
附加条件:
存储相关性:对于任意存储器地址X, 对 于写入X的顺序是全局一致的。 写入不同地址,对于不同进程来看,不需 要相同顺序
4.释放一致性(自由一致性)
(b)
b=1; c=1; print(a,b); print(a,c); a=1; print(b,c);
(c)
b=1; a=1; c=1; print(a,c); print(b,c); print(a,b);
(d)
2.弱一致性
同步变量:广播导出所有写操作,导入所有写操作 对同步变量(S)的访问必须是顺序一致性的。 在所有前面的写操作完成之前,不能访问同步变量。 在前面所有同步变量的访问完成前,不能访问(读或 写)数据。
一致性模型总结
不用同步操作的一致性模型
一致性 说明
所有的共享访问事件都有绝对时间顺序
所有进程都以相同的顺序检测到所有的共享访问 事件 所有进程都以相同的顺序检测到所有因果联系的 事件 所有的进程按照预定的顺序检测到来自一个处理 器的写操作,来自其它处理器的写操作不必以相 同的顺序看见 PRAM一致性+存储器相关性
第十一章 分布式共享内存
主要内容
11.1 11.2 11.3 11.4 概 述 设计和应用 一致性模型 小结
11.1
概 述
分布式共享内存(Distributed Shared Memory):它使得不同机器上的 进程不用通过共享物理内存就可以使用 共享数据。DSM是一个共享内存的程序模 型,它在某些方面要优于基于消息的模 型。
释放一致性
急性释放一致性(EAGER release consistency)
当执行了释放操作,执行此操作的处理机将所有修 改的数据传给所有那些已经有其缓冲拷贝且可能需 要它的处理机 在执行释放时,不发送任何数据。 在执行获取操作时,处理机试图从拥有这些变量的 机器上取得它们的最新值
惰性释放一致性(LAZY release consistency)
11.2
设计和应用
数据结构 同步模型
一致性模型
修改问题 颗粒性
抖动问题
11.2
设计和应用
11.2.1 数据结构
1.基于字节方式
应用程序按照自己想要的数据结构去共 享内存,如同普通的虚拟存储器访问。 2.共享对象
将共享内存当作一个对象集合。将一系列 操作施加在给定的对象上。
3.不可变数据 将DSM看成一个所有进程都可以读的不可变 数据的集合。 11.2. 2 同步模型 包含同步模型的DSM才能称为一个完整DSM。 锁、信号量。
11.2. 3 一致性模型
缓存一致性(coherency) 数据在各个缓存中的值保持一致 一致性模型 软件与存储器间的约定(contract) 如果软件遵守约定的规则,存储器就 能工作正常。 如果软件违反了这些规定,存储器就 不再保证操作的正确性
1.有序一致性 在这个模型下,任何操作都满足条件: 由单个进程引起的读和写操作都以程序 执行的顺序发生,同时属于不同进程引起 的内存操作也按一定的次序发生。
P1:W(x)1 W(x)2 S P2: R(x)1 R(x)2S P3: R(x)2 R(x)1S
不允许 允许
P1: W(x)1 W(x)2 S P2: S R(x)1
11.2. 4 修改问题
1.写有效:
当一个进程在本地修改了一个数据项时,它将修改值传 送给拥有该数据项的备份管理者,其他进程要从本地读 出这个修改值来替代原来的值。