操作系统二版徐宗元第三章实验2课件.docVIP

操作系统二版徐宗元第三章实验2课件.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统二版徐宗元第三章实验2课件.doc

3.7.2 实验2:Windows 2000 内存管理API函数的使用 一.实习要求 在Windows 环境下,模拟Windows2000的本地过程调用LPC通信方式之一,用内存映射文件(共享内存方式)实现client/server架构进程间较大数据量的通信。 用VC编程,创建一个server进程和一个client进程,server进程用共享内存的名(lpName)调用CreateFileMapping()函数产生并初始化共享内存,client进程使用相同的共享内存的名来调用OpenFileMapping()函数,打开一个已命名的文件映射对象。client进程先向共享存储区写信息,server进程再从共享存储区读信息,用信号量对象实现client和server进程间的同步。 二.与实验相关的API 介绍 1. Windows进程控制API函数CreateProcess函数 当一个线程调用CreateProcess时,系统就会创建一个进程内核对象,为新进程创建一个虚拟地址空间,并将可执行文件加载到该进程的地址空间中。然后系统再为新进程的主线程创建一个线程内核对象。通过执行启动代码,该主线程便开始运行,它最终调用WinMain、wWinMain、main或wmain函数。如果系统成功地创建了新进程和主线程,该函数便返回TRUE。 格式:BOOL CreateProcess( PCTSTR pszAppliCationName ,  PTSTR pszCommandLine , PSECURITY_ATTRIBUTES pSaProcess , PSECURITY_ATTRIBUTES psaThread , BOOL bInheritHandles ,  DWORD fdwCreate , PVOID pvEnvironment , PCTSTR pszCurDir , PSTARTUPINF0 psiStartInfo , PPROCESS_INFORMATION ppiProcInfo ) ; 参数: pszAppicationName:参数用于设定新进程将要使用的可执行文件的名字,该参数99%以上的情况是NULL。 PszCommandLine:参数用于设定传递给新进程的命令行字符串,即想运行的可执行文件的名字。如它没有扩展名,便假设它的扩展名为 .exe。 psaProcess、psaThread参数分别设定进程对象和线程对象需要的安全性。如参数为NULL,系统为这些对象赋予默认安全性描述符。也可以指定两个SECURITY_ATTRIBUTES结构,并对它们进行初始化,以便创建自己的安全性权限,并将它们赋予进程对象和线程对象。 bInheritHandles:进程对象和线程对象句柄的继承性 fdwCreate:参数用于规定如何来创建新进程的标志。 pvEnvironment:参数用于指向包含新进程将要使用的环境字符串的内存块。 pszCurDir:参数允许父进程设置子进程的当前驱动器和目录;如果本参数是NULL,则新进程的工作目录将与生成新进程的应用程序的目录相同。 psiStartInfo:参数用于指向一个STARTUPINFO结构。 ppiProcInfo:参数用于指向你必须指定的PROCESS_INFORMATION结构。 2. 由系统的页文件支持的内存映射文件实现进程间的数据通信的API函数 (1) 设定一块共享内存区域 先使用系统调用CreateFileMapping为指定文件创建一个文件映射核心对象,并指定共享内存区域的大小,返回对象指针,格式如下: HANDLE CreateFileMapping ( HANDLE hFile , LPSECURITY_ATTRIBUTES lpFileMappingAttributes , DWORD flProtect , DWORD dwMaximumSizeHigh , DWORD dwMaximumSizeLow ,LPCTSTR lpName ) ; .hFile:正常应是CreateFile()传回来的一个有关文件的handle,用以告诉系统将它映射到内存中。如果指定此参数为INVALID_HANDLE_VALUE,就可以使用页文件中的一块空间,取代一般的文件。 .lpFileMappingAttributes:安全属性,指向文件映射内核对象的SECURITY_ATTRIBUTES结构的指针,通常传递的值是NULL。 .flProtect:文件的保护属性。可以是PAGE_READONLY或PAGE_READWRITE或PAGE_WRITECOPY。针对跨进程的共享内存,应该指定此参数为PAGE_READWRITE。 .DwMaximumSizeH

您可能关注的文档

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档