论文部分内容阅读
在局域网软件实现内存共享是近年来研究的一个热门课题,实现的系统具有良好的可扩展性和简单的用户编程接口,并能实现在PC机组成的局域网小模拟高性能计算机运行并行科学计算程序。 实现这样的系统关键涉及到三个方面的问题:内存的组织、数据的同步和节点间通信。内存的组织主要分成共享页面是有宿主节点还是没有宿主节点两种;数据的同步关键是要保证数据的正确性、完整性和访存的先后顺序,为此提出的多种存储器一致性模型和高速缓存一致性协议保证了系统中的各节点按照一定的方式和顺序访问分散在不同机器上的数据;节点间通信是影响系统性能的一个非常关键的因素,如果通信的性能不好会导致系统的设计目标不能实现,所以要设计能高效运行的共享内存系统就要设计高效的通信模块。 在本文所阐述的系统中,主要采用了基于主节点的内存管理方式,也就是所有的共享页面都有一个固定的主节点,当页面被修改过后就要把修改的值传回主节点中,并保证其它机器读取的数据总是最新的;数据同步方面系统采用了域一致性模型、多写协议,和基于锁的同步方式;在通信方面,本文提出了一种新的通信模块框架,采用用户级通信的概念,在操作系统和应用程序之间插桩一个守护进程模块,这个模块专门给应用程序提供通信服务,从最底层的协议栈中直接为应用程序收发数据,从而大大减少了原来由网络系统软件传递数据带来的通信开销。 本文先讨论了用软件实现局域网中的共享内存系统要涉及到的相关理论问题,然后提出了一个具体的实现方案,最后描述了这个系统的实际运行结果和得出的结论。