[第3章Windows20进程管理A.pptVIP

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

第3章 Windows2000/XP 进程、线程和处理机管理 权义宁 西安电子科技大学计算机学院 3.1 进程同步与进程间通信 3.2 线程调度 3.1 进程同步与进程间通信 3.1.1 Windows 2000/XP的进程互斥和同步 3.1.2 Windows 2000/XP的信号(signal) 3.1.3 Windows 2000/XP基于文件映射的共享存储区 3.1.4 Windows 2000/XP管道 3.1.5 Windows 2000/XP邮件槽 3.1.6 Windows 2000/XP套接字 3.1.7 剪帖板(Clipboard) 3.1.1 Windows 2000/XP的进程互斥和同步 互锁变量访问 临界区对象(Critical Section) 互斥对象(Mutex) 信号量对象(Semaphore) 事件对象(Event) 互锁变量访问 临界区对象(Critical Section) 只能用于在同一进程内使用的临界区,同一进程内各线程对它的访问是互斥进行的。相关API包括: InitializeCriticalSection对临界区对象进行初始化; EnterCriticalSection等待占用临界区的使用权,得到使用权时返回; TryEnterCriticalSection非等待方式申请临界区的使用权;申请失败时,返回0; LeaveCriticalSection释放临界区的使用权; DeleteCriticalSection释放与临界区对象相关的所有系统资源。 互斥对象(Mutex) 信号量对象(Semaphore) 信号量对象的取值在0到指定最大值之间,用于限制并发访问的线程数。有关的API: CreateSemaphore创建一个信号量对象,指定最大值和初值,返回对象句柄; OpenSemaphore返回一个已存在的信号量对象的句柄,用于后续访问; ReleaseSemaphore释放对信号量对象的占用; 事件对象(Event) 事件对象相当于触发器,可通知一个或多个线程某事件的出现。有关的API: CreateEvent创建一个事件对象,返回对象句柄; OpenEvent返回一个已存在的事件对象的句柄,用于后续访问; SetEvent和PulseEvent设置指定事件对象为可用状态; ResetEvent设置指定事件对象为不可用状态;手工复位,并唤醒所有等待线程; 同步对象等待 3.1.2 Windows 2000/XP的信号(signal) SetConsoleCtrlHandler和GenerateConsoleCtrlEvent signal和raise SetConsoleCtrlHandler和GenerateConsoleCtrlEvent SetConsoleCtrlHandler在本进程的处理例程(HandlerRoutine)列表中定义或取销用户定义的处理例程;如:缺省时,它有一个CTRL+C输入的处理例程,我们可利用本调用来忽视或恢复CTRL+C输入的处理; GenerateConsoleCtrlEvent发送信号到与本进程共享同一控制台的控制台进程组; 处理信号列表(5种) signal和raise signal设置中断信号处理例程;如:SIGINT(CTRL+C)、SIGABRT异常中止等信号的处理; raise给本进程发送一个信号; UNIX中的kill可向其他进程发信号,但在Windows 2000/XP中没有kill。 处理信号列表(6种) 3.1.3 Windows 2000/XP基于文件映射的共享存储区 将整个文件映射为进程虚拟地址空间的一部分来加以访问。在CreateFileMapping和OpenFileMapping时可以指定对象名称。 CreateFileMapping为指定文件创建一个文件映射对象,返回对象指针; OpenFileMapping打开一个命名的文件映射对象,返回对象指针; MapViewOfFile把文件映射到本进程的地址空间,返回映射地址空间的首地址; 这时可利用首地址进行读写; FlushViewOfFile可把映射地址空间的内容写到物理文件中; UnmapViewOfFile拆除文件映射与本进程地址空间间映射关系; 随后,可利用CloseHandle关闭文件映射对象; 共享存储区实例 /msj/defaultframe.asp?page=/msj/1198/wicked/wicked1198.htmnav=/msj/1198/newnav.htm 在CsharedMemory::Create中: SharedMem.cpp: Line 71: CreateFileMappi

文档评论(0)

19840506 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档