实验二_进程间通信课件
实验二 进程间通信
一、实验目的
在本实验中,通过对文件映射对象的了解,来加深对Windows 2000线程同步的理解.回顾系统进程、线程的有关概念,加深对Windows 2000线程间通讯的理解;了解文件映射对象;通过分析实验程序,了解线程如何通过文件映射对象发送数据;了解在进程中如何使用文件映射对象.
二、背景知识
1.共享内存:Windows 2000提供了一种在文件中处理数据的方法,名为内存映射文件,也称为文件映射.文件映射对象是在虚拟内存中分配的永久或临时文件对象区域 (如果可能的话,可大到整个文件) ,可将其看作是二进制的数据块.使用这类对象,可获得直接在内存中访问文件内容的能力.
文件映射对象提供了强大的扫描文件中数据的能力,而不必移动文件指针.对于多线程的读写操作来说,这一点特别有用,因为每个线程都可能想要把读取指针移动到不同的位置去——为了防止这种情况,就需要使用某种线程同步机制保护文件.
在CreateFileMapping() API中,一个新的文件映射对象需要有一个永久的文件对象 (由CreateFile() 所创建) .该函数使用标准的安全性和命名参数,还有用于允许操作 (如只读) 的保护标志以及映射的最大容量.随后可根据来自OpenFileMapping() API的其他线程或进程使用该映射——这与事件和互斥体的打开进程是非常类似的.
内存映射文件对象的
原创力文档

文档评论(0)