第6章分布式存储管理 东北大学信息学院 于戈 2002年7月
第6章 分布式存储管理 东北大学信息学院 于 戈 2002年7月
主要内容 6,1分布式共享内存(DSM) 6.2一致性模型 6.3基于页面的DSM 264DSⅥM的应用 6.5习题 2002-7-12 东北大学软件所于戈 第六章分布式存储管理
2002-7-12 东北大学软件所 于戈 第六章 分布式存储管理 2 主要内容 6.1 分布式共享内存(DSM) 6.2 一致性模型 6.3 基于页面的DSM 6.4 DSVM的应用 6.5 习题
6.1分布式共享内存(DSM CPU与存储器连接模型 芯片包 口单片机 存储 ●口理想的共享存储器多处理机 CPU 器 CPU2 地址和数据线连结 CPU和主存 存储 CPL CPU3 CPU (b) 2002-7-12 东北大学软件所于戈 第六章分布式存储管理
2002-7-12 东北大学软件所 于戈 第六章 分布式存储管理 3 6.1分布式共享内存(DSM) CPU与存储器连接模型 ❑ 单片机 ❑ 理想的共享存储器多处理机
UNIX共享内存举例 I System call Description eint shmget(key, size, returns the SM identifier associated with ishmflg): key void*shmat(shmid, attaches the SM segment associated *shmaddr, shmflg); with the shmid to the data segment of the calling process int shmdt(const void detaches from the calling process's shmaddr); data segment the SM segment located at shmaddr int shmctl(shmid, cmd, provides a variety of SM control buf) operations as specified by cmd. 2002-7-12 东北大学软件所于戈 第六章分布式存储管理
2002-7-12 东北大学软件所 于戈 第六章 分布式存储管理 4 UNIX共享内存举例 System call Description int shmget(key, size, ishmflg); returns the SM identifier associated with key. void *shmat(shmid, *shmaddr, shmflg); attaches the SM segment associated with the shmid to the data segment of the calling process. int shmdt(const void *shmaddr); detaches from the calling process's data segment the SM segment located at shmaddr. int shmctl(shmid, cmd, *buf) provides a variety of SM control operations as specified by cmd
层次结构 Machine 2 Machine 1 Machine 2 Machine 1 Machine 2 Application Application Application Application Application Run-time Run-time Run-time Run-time Run-time Run-time system system system Operating Operati ng berating Operating ng system system system system system system Hardware Hardware Hardware Hardware Hardware Hardware Shared memory Shared memory Shared memory 200 c 第六方其存聞 5 东北大学软件所于戈
2002-7-12 东北大学软件所 于戈 第六章 分布式存储管理 5 层次结构
基于总线的多处理机 1.多处理器结构 2.带缓存的多处理器结构 √总线仲裁机制:集中式和非集中式 CPU CPU CPU CPUCPU CPU 缓存」[缓存」[缓存」 总线 总线 (a)内存 (b)内存 2002-7-12 东北大学软件所于戈 第六章分布式存储管理
2002-7-12 东北大学软件所 于戈 第六章 分布式存储管理 6 1. 多处理器结构 2. 带缓存的多处理器结构 ✓ 总线仲裁机制:集中式和非集中式 基于总线的多处理机 CPU 内存 总线 (a) 总线 (b) 缓存 CPU CPU CPU 内存 缓存 CPU 缓存 CPU
通写缓冲( write-though)致性协议 事件对本地CPU操作响应对远程CPU响应 读失败从内存中取得数据并存 (无动作) (ms)储到缓存中(MC) 读命中从本地缓存中取得数据 (无动作) (hit) 写失败更新内存中的数据并存 (无动作) 储到缓存中(C→M) 写命中更新存储器和缓存 置为无效 (M→>C→M) 2002-7-12 第六章分布式存储管理 7 东北大学软件所于戈
2002-7-12 东北大学软件所 于戈 第六章 分布式存储管理 7 通写缓冲(write-though)一致性协议 事件 对本地CPU操作响应 对远程CPU响应 读失败 (miss) 从内存中取得数据并存 储到缓存中(M→C) (无动作) 读命中 (hit) 从本地缓存中取得数据 (无动作) 写失败 更新内存中的数据并存 储到缓存中( C → M ) (无动作) 写命中 更新存储器和缓存 (M→C → M ) 置为无效
缓存拥有权( ownership)协议 口 Cache分成若干个 cache块 口每个 Cache块处于三种状态: 1. Invalid—数据无效 2. Clean-与存储器数据一致 3. Dirty-数据被更新,与存储器数据一致 各CPU监听(nooy)其它CPU在总线的操 作 2002-7-12 东北大学软件所于戈 第六章分布式存储管理
2002-7-12 东北大学软件所 于戈 第六章 分布式存储管理 8 缓存拥有权(ownership)协议 ❑ Cache分成若干个cache块 ❑ 每个Cache块处于三种状态: 1. Invalid-数据无效 2. Clean-与存储器数据一致 3. Dirty-数据被更新,与存储器数据一致 ❑ 各CPU监听(snoopy)其它CPU在总线的操 作
缓存拥有权协议举例 1.W初始状态W)A[e CPU 净干净工 无效 2.A读W(W1) 3.A写W(W2) [四a 脏气二无效 4.A再写W(W3) C 5.C读写W(W) 脏 2002-7-12 第六章分布式存储管理 9 东北大学软件所于戈
2002-7-12 东北大学软件所 于戈 第六章 分布式存储管理 9 缓存拥有权协议举例 1. W初始状态(W1 ) 2. A读W(W1 ) 3. A写W(W2 ) 4. A再写W(W3 ) 5. C读写W(W3 )
缓存拥有权( ownership)协议 口多个CPU可有读拥有权 口只有一个CPU有写拥有权 日当一个CPU写一个数据 取得对该数据的拥有权 其它CPU将该数据的缓存块置为“ invalid” 在本地缓存块中,写数据,并置为“ dirty 适当时候,刷新存储区,或提供给其它 CPU 2002-7-12 第六章分布式存储管理 10 东北大学软件所于戈
2002-7-12 东北大学软件所 于戈 第六章 分布式存储管理 10 缓存拥有权(ownership)协议 ❑ 多个CPU可有读拥有权 ❑ 只有一个CPU有写拥有权 ❑ 当一个CPU写一个数据 – 取得对该数据的拥有权 – 其它CPU将该数据的缓存块置为“invalid” – 在本地缓存块中,写数据,并置为“dirty” – 适当时候,刷新存储区,或提供给其它 CPU