- 1、本文档共48页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Windows操作系统-处理机管理(中)
同步对象等待 (1) WaitForSingleObject在指定的时间内等待指定对象为有信号状态(signaled state); DWORD WaitForSingleObject( HANDLE hHandle, // handle of object to wait for DWORD dwMilliseconds // time-out interval in milliseconds ); 进程互斥和同步 Windows的进程互斥和同步 (2) WaitForMultipleObjects在指定的时间内等待多个对象为有信号状态; DWORD WaitForMultipleObjects( DWORD nCount, //对象句柄数组中的句柄数; CONST HANDLE *lpHandles, // 指向对象句柄数组的指针,数组中 //可包括多种对象句柄; BOOL bWaitAll, // 等待标志:TRUE表示所有对象同时可用 //FALSE表示至少一个对象可用; DWORD dwMilliseconds // 等待超时时限; ); 同步对象等待 Windows的进程互斥和同步 其他同步方法 Critical Section对象:只能在同一进程内使用的临界区,同一进程内各线程对它的访问是互斥进行的。把变量说明为CRITICAL_SECTION类型,就可作为临界区使用。有关的API: InitializeCriticalSection对临界区对象进行初始化; EnterCriticalSection等待占用临界区的使用权,得到使用权时返回; TryEnterCriticalSection非等待方式申请临界区的使用权;申请失败时,返回0; LeaveCriticalSection释放临界区的使用权; DeleteCriticalSection释放与临界区对象相关的所有系统资源; 进程互斥和同步 Windows的进程互斥和同步 互锁变量访问 相当于硬件指令,对一个整数(进程内的变量或进程间的共享变量)进行操作。其目的是避免线程间切换的影响。有关的API: InterlockedExchange 进行32位数据的先读后写原子操作; InterlockedCompareExchange 依据比较结果进行赋值的原子操作; InterlockedExchangeAdd 先加后存结果的原子操作; InterlockedDecrement 先减1后存结果的原子操作; InterlockedIncrement 先加1后存结果的原子操作; 进程互斥和同步 Windows的进程互斥和同步 死锁问题(DEADLOCK) 概述 死锁的预防 死锁的检测 死锁的避免 解决死锁问题的综合方法 概述 可重用资源(reusable resource):每个时刻只有一个进程使用,但不会耗尽,在宏观上各个进程轮流使用。如CPU、主存和辅存、I/O通道、外设、数据结构如文件、数据库和信号量。 死锁是指系统中多个进程无限制地等待永远不会发生的条件; 死锁发生原因 对互斥资源的共享; 并发执行的顺序不当 死锁问题 进程使用的资源分为可重用资源和可消耗资源两类: 可重用资源死锁 死锁发生:双方都拥有部分资源,同时在请求对方已占有的资源。如次序:P1a P2a P1b P2b 概述 死锁问题 可消耗资源(consumable resource):可以动态生成和消耗,一般不限制数量。如硬件中断、信号、消息、缓冲区内的数据。 死锁发生:双方都等待对方去生成资源,如次序:P1a P2a 概述 死锁问题 死锁发生条件: 互斥:任一时刻只允许一个进程使用资源 请求和保持:进程在请求其余资源时,不主动释放已经占用的资源 非剥夺:进程已经占用的资源,不会被强制剥夺 环路等待:环路中的每一条边是进程在请求另一进程已经占有的资源。 只有4个条件都满足时,才会出现死锁。 死锁问题 概述 处理死锁问题的基本方法:预防、检测、避免 死锁的预防 预防死锁的两种策略: 预先静态分配法:进程开始运行前一次分配所需全部资源,若系统不能满足,则进程阻塞,直到系统满足其要求——保证进程运行过程中不会再提出新的资源请求; 降低了对资源的利用率,降低进程的并发程度; 有可能无法预先知道所需资源; 有序资源使用法:把资源分类按顺序排列,保证对资源的请求不形成环路; 限制进程对资源的请求顺序; 资源的排序占用系统开销; 预防是采用某种策略,限制并发进程对资源的请求,使系统在任何时刻都不满足死锁的必要条件。 死锁问题 死锁的检测 保存资源的请求和分配信息,利用某
您可能关注的文档
- WBS与PDCA.ppt
- WCDMA基本信令流程-chen.doc
- Web应用乱码问题.ppt
- WH5运行阶段的常用方法.ppt
- vbf技能兵种搭配.docx
- WILDEN矿用气动隔膜泵.pptx
- Windows 7资源管理器.pptx
- windows9幻灯片.ppt
- WFQ焊割气ppt.ppt
- Win7 下IIS问题设置问题.docx
- 2021~2022学年广东省佛山市佛山第一中学高三(上)月考物理试卷(12月).docx
- 2021-2022学年江苏省徐州市睢宁县高二(下)期中历史试卷.docx
- 2021-2022学年广东省汕头市潮阳区河溪中学高三(下)质检物理试卷.docx
- 2021-2022学年广东省肇庆市高三(下)第三次质检物理试卷.docx
- 2021-2022学年广东省深圳市高三化学二调试卷.docx
- 2022年广东省粤港澳大湾区普通高中高考化学二模试卷.docx
- 2021-2022学年广东省广州市天河区高三(下)综合测试物理试卷(二).docx
- 2021-2022学年广东省六校高三(下)第四次联考物理试卷.docx
- 2021-2022学年广东省广州市越秀区铁一中学高三(下)周测物理试卷(2月份).docx
- 2022年广东省潮州市高考物理二模试卷.docx
文档评论(0)