- 1、本文档共22页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3.3 进程同步 3.3.1 进程同步的基本概念 1.临界资源 2、临界区 访问临界资源的循环进程 3、同步机制应遵循的准则 空闲则入:其他进程均不处于临界区; 忙则等待:已有进程处于其临界区; 有限等待:等待进入临界区的进程不能死等; 让权等待:不能进入临界区的进程,应释放CPU(如转换到阻塞状态) 4、进程互斥的软件方法(补充) 算法2:锁变量方法(双标志、先检查) 算法3:锁变量方法(双标志、后检查) 算法4(Peterson’s Algorithm):先修改、后检查、后修改者等待 结合算法1和算法3,是正确的算法 turn=j;描述可进入的进程(同时修改标志时) 在进入区先修改后检查,并检查并发修改的先后: 检查对方flag,如果不在临界区则自己进入——空闲则入 否则再检查turn:保存的是较晚的一次赋值,则较晚的进程等待,较早的进程进入——先到先入,后到等待 5、进程互斥的硬件方法(补充) 利用TS实现进程互斥 Swap指令(或Exchange指令) 利用Swap指令实现互斥算法 利用Swap实现进程互斥:每个临界资源设置一个公共布尔变量lock,初值为FALSE。每个进程设置一个私有布尔变量key 硬件方法的优缺点 Lifang ?2011 */25 操作系统 * 3.3.1 进程同步的基本概念 3.3.2 信号量(semaphore) 3.3.3 经典进程同步问题 3.3.4 进程间通信 正常行车 到站停车 开车 售票 开车门 关车门 司机 售票员 合作 合作 进程间的合作关系 打印进程1 打印进程2 打印 打印 获得打印数据 获得打印数据 竞争 进程间竞争资源 计算进程 打印进程 计算结果送到Buffer 从Buffer中取数 Buffer 竞争 竞争 完成数据计算 打印 通知打印进程打印 通知计算进程 送下一个数 合作与竞争 合作 合作 司机与售票员 多个打印者 计算者与打印者 进程间存在两种关系 协调好这些关系的过程——进程的同步 操作顺序冲突 共享外设、内存(变量)等资源 竞争资源关系: 进程同步的主要任务:保证诸进程能互斥地访问临界资源 相互合作关系: 进程同步的主要任务:保证相互合作的诸进程在执行次序上的协调——同步。 计算进程 打印进程 计算结果送到Buffer 从Buffer中取数 Buffer 互斥 互斥 向打印进程发信号 通知其从Buffer里取数 Buffer空? 否 是 完成数据计算 打印 向计算进程发信号 通知其向Buffer送数 Buffer空? 否 是 协调 计算进程与打印进程的同步 对于计算机中的有些软硬件资源,当多个进程对其进行访问时(关键是进行写入或修改),必须互斥地进行,这些一次只允许一个进程使用的资源称为临界资源(critical resource)。 打印机、内存变量、指针、数组等都是临界资源。 生活中的例子如:电话机等。 临界资源需要采用互斥方式,实现对资源的共享。 每个进程中访问临界资源的那段程序段称为临界区(critical section)。 Until false; Entry section Critical section; Exit section Remainder section; Repeat 进入区:进入临界区之前,检查可否进入临界区的一段代码。如果可以进入临界区,通常设置相应“正在访问临界区”标志; 临界区:进程中访问临界资源的一段代码; 退出区:用于将正在访问临界区标志清除。 剩余区:代码中的其余部分。 进入区 临界区 退出区 进入区 临界区 退出区 ... ... ... ... ... ... ... ... 阻塞等待 资源释放 改变资源 状态 释放资源 进程1 进程2 进入区、退出区各部分的作用 算法1:强制轮换法(单标志) 设立一个公用整型变量 turn:描述允许进入临界区的进程标识 在进入区检查是否允许本进程进入:turn为i时,进程Pi可进入; 在退出区修改turn的值:进程Pi退出时,改turn为j; 缺点: 强制轮流进入临界区,没有考虑进程的实际需要。容易造成资源利用不充分: 在Pi出让临界区之后,Pj使用临界区之前,Pi不可能再次使用临界区; Until false; Repeat While turn?i do no_op Critical section; turn:=j; remainder section; 有两个进程Pi, Pj,其中的Pi描述如下图 优点:不用交替进入,可连续使用 缺点:Pi和Pj可能同时进入临界区。按下面序列执行时,会同时进入:Pia Pja Pib Pjb。 Until false; While flag[j] do no_op a Flag[
您可能关注的文档
- 1.《观潮》课件之pj版.ppt
- 1.函数实际应用题答题模板.ppt
- miRNA讲稿(徐和学生用).ppt
- 1.大学生心理健康教育概论.ppt
- Module3写作课教学案例.ppt
- module5unit3课件黄泮梅.ppt
- MonteCarlo算法模拟.ppt
- 1.椭圆的标准方程.ppt
- MPA逻辑考试常见题.ppt
- 1.WindowsAPI应用程序开发概述.ppt
- 吉安县公开招聘专职文明实践员笔试备考试题及答案解析.docx
- 2025重庆枫叶国际学校招聘教师笔试备考试题及答案解析.docx
- 游机队电玩自制联网教程-tplink.pdf
- 2025重庆新华出版集团招聘1人笔试模拟试题及答案解析.docx
- 2025宜宾高新丽雅城市产业发展有限公司公开招聘笔试模拟试题及答案解析.docx
- 2025云南保山市龙陵县勐糯镇人民政府招聘合同制专职消防员1人笔试模拟试题及答案解析.docx
- 11.1生活中常见的盐 九年级化学人教版下册.pptx
- 6.1法律保护下的婚姻 高二政治《法律与生活》课件(统编版选择性必修2)(新版).pptx
- 文昌市中小学教师校园招聘29人笔试模拟试题及答案解析.docx
- 10.1.5 常见的酸和碱(第5课时)课件-九年级化学人教版下册.pptx
文档评论(0)