实习3 多进程(线程)快速排序 操作系统高级 教学课件.ppt

实习3 多进程(线程)快速排序 操作系统高级 教学课件.ppt

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实习3 多进程(线程)快速排序 操作系统高级 教学课件

实习三 多进程(线程)实现快速排序 题目说明(1) 实习要求 在Windows 环境下,编写一个多进程(线程)进行快速排序的程序,使用的是有1,000,000个随机数的文件 要求说明你的程序运行的系统资源配置,给出测试结果并对测试程序和结果做出说明 题目说明(2) 实现提示 每次数据分割后产生两个新的进程(线程)处理分割后的数据,进程间的数据交换采用内存映射文件(见后面) 每个进程(线程)处理的数据小于1000以后不再分割(控制产生的进程在20个左右) 可以利用一些技巧使分割尽可能均匀 相关的函数请查阅MSDN 题目说明(3) 回答下列问题 用多进程实现和多线程实现体现了什么差异,产生的原因是什么? 分割的均匀程度对进程(线程)数目和结果有什么影响? 思考题 对数据分割的均匀程度对排序的时间有何影响,为什么会有这种影响? 分解到每个线程的排序算法应不应采用快速排序算法,为什么? 如何通过数据量和边界条件来控制参与排序的线程数? 在多线程协同工作的过程中,进程之间有几种办法实现通信?各有什么特点? 在Windows中,内存映射文件是如何使用的(步骤)。 建立内存映射文件的过程中使用的命令OpenFileMapping需要哪些参数,表达什么含义? 进程和线程在处理数据通信上有何差别,为什么会有这种差别? 用多进程实现和用多线程实现有哪些不同,产生这些不同的原因是什么? 本实验用到的重要函数及其参数,名称及含义。 背景知识 Memory-mapped File的用法 由一个进程用CreateFile建立内存和文件的映射CreateFileMapping创建内存映射文件,其他进程用OpenFileMapping打开 打开之后用MapViewOfFile建立该文件到本进程地址空间的映射 程序结束时请注意释放File和View 有关内存映射文件的使用请参见文档/library/default.asp?url=/library/en-us/dngenlib/html/msdn_manamemo.asp API CreateFile 说明:全功能的例程,可打开和创建文件、管道、邮槽、通信服务、设备以及控制台 返回值:Long,如执行成功,则返回文件句柄。INVALID_HANDLE_VALUE表示出错,会设置GetLastError 参数 dwDesiredAccess:若为 GENERIC_READ 表示允许对设备进行读访问;若为 GENERIC_WRITE 表示允许对设备进行写访问(可组合使用);若为零,表示只允许获取与一个设备有关的信息 dwShareMode :零表示不共享; FILE_SHARE_READ 和/或 FILE_SHARE_WRITE 表示允许对文件进行共享访问 dwFlagsAndAttributes :指定文件属性和标志,可取多种组合 dwCreationDisposition :对文件采取的措施 API(续) CreateFileMapping 说明:创建一个新的文件映射对象 返回值:新建文件映射对象的句柄;零表示出错 参数 hFile :指定欲在其中创建映射的一个文件句柄 lpFileMappigAttributes:指定一个安全对象,在创建文件映射时使用 flProtect :PAGE_READWRITE 表示以可读可写方式打开映射 dwMaximumSizeHigh 和dwMaximumSizeLow :设为0表示使用磁盘文件的实际长度 API(续) MapViewOfFile 说明:将一个文件映射对象映射到当前应用程序的地址空间 返回值:文件映射在内存中的起始地址,零表示出错 参数 hFileMappingObject :文件映射对象的句柄 dwDesiredAccess :多种方式,其中FILE_MAP_ALL_ACCESS 表示映射可读可写 API(续) OpenFileMapping 说明:打开一个现成的文件映射对象 返回值:指定文件映射对象的句柄,零表示出错 参数 dwDesiredAccess :参考MapViewOfFile函数的dwDesiredAccess参数的说明 bInheritHandle :如这个函数返回的句柄能由

文档评论(0)

jiupshaieuk12 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档