- 1、本文档共75页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
4-进程通信2
第四章 进程通信 4.1 进程的同步与互斥 4.1.2 临界段问题 在一段时间内只能允许一个进程访问的资源称为临界资源,如打印机、磁带机、光盘刻写机、绘图仪等 进程执行的访问临界资源的程序段称为临界段或互斥段。 统计两个进程 P1和P2对共享变量count访问计数: P1: : P2: : R1=count R2=count R1=R1+1 R2=R2+1 count=R1 count=R2 : : 两个进程可能的相对执行次序 P1:R1=count R1=R1+1 P2:R2=count R2=R2+1 count=R2 P1:count=R1 虽然P1和P2进程各自都执行了对count加1的操作段,但结果count只增加1。因此,变量count就是临界资源,P1、P2访问count的两个程序段就是临界段,诸进程必须互斥地进入临界段。 2 临界段的调度原则 1)在所有共享相同资源或对象的临界段中,每次只能允许一个进程进入; 2)一个进程在非临界段中的暂停运行必须不会影响其它进程。 3)一个进程如需要进入临界段,必须不会发生无限延迟的情况,即既不会死锁,也不会饥饿。 4)当无进程在临界段时,必须让任何希望进入该程序段的进程无延迟地进入; 5)一个进程只能在临界段内停留有限的时间; 6)对于相关进程的运行速度和处理机的数量不作假设。 4.2 进程间互斥控制方法c 当进程希望进入临界段时,首先要测试锁的状态,如锁是打开的,表示无进程处于临界段,那么可以关闭该锁,并进入临界段。 当该进程处于临界段时,其它试图进入临界段的进程由于在测试锁的状态时发现它处于关闭状态,就只能在临界段外等待。 用锁操作控制进程对临界段的互斥执行 4.2.2 锁的安全控制 锁的关闭操作LOCK包括测试和关闭两个操作步骤,这两个操作步骤涉及临界资源x,故这段程序也是临界段。 假定锁是打开的,当一个进程P1在测试锁的状态后,还没来得及关闭它的一瞬间,发生了中断; 中断返回时,系统可能调度另一个进程P2执行。P2执行时也对该锁的状态进行测试,发觉它处于打开状态,于是关闭该锁,并进入临界段。那么两个进程就同时处于一个临界段之中。 1. 测试并设置指令testset 有些计算机提供专门的锁操作指令testset,该指令首先测试锁变量的值,如为1,则重复执行本指令;如为0,则立即将锁变量的值置为1。 由于testset是一条完整的指令,而在一条指令的执行中间是不会被中断的,故保证了锁的测试和关闭操作的连续性。 2. 交换指令—用8086指令实现锁操作 3. 开、关中断法 1)这种方法只能用于单CPU系统。 2)如果临界段操作比较复杂,执行时间较长,那么长时间地关闭中断会降低系统对外部中断响应的速度,影响系统处理紧迫事件的能力; 3)采用开、关中断的硬件锁方法禁止了其它无关的进程进入不同的临界段,这种做法显然伤害了很多的“无辜者”。 4. 用硬件锁锁软件锁,用软件锁锁临界段 软件锁的LOCK操作包括测试和关闭两个操作步骤,它本身也是一种临界段,故可以用硬件锁——开、关中断保证软件锁操作的完整性。 由于软件锁是一种程序长度最短的临界段,故用开、关中断的方法保证锁操作的完整性几乎不会影响到系统响应其它的中断请求。 用软件锁保证临界段执行的独占性,不会影响到其它无关进程进入不同的临界段,这是一种安全而高效的锁。 4.3 信号灯和P、V操作 信号灯定义成具有整型值,并能对其施加以下三种操作的变量,除了这三种操作之外的任何操作都不能测试和处理信号灯的值。 (1)初始化操作,信号灯能初始化为非负的值。 (2)P操作(wait),能减小信号灯的值,如结果值为负,执行P操作的进程就被封锁。 (3)V操作(signal),能增加信号灯的值,如果结果值非正,那么原先因执行P操作而阻塞的进程被解除阻塞。 P、V操作两个原语定义 typedef struct semaphore { int value ; Queue queue; } Semaphore ; Semaphore s; 4.4 信号灯的应用 4.4.1 利用信号灯实现互斥 信号灯的所有可能取值及意义为: s = 1 无进程进入临界段 0 有一进程进入临界段 -1 有一进程进入临界段, 另一进程被阻塞 如有几个并发进程涉及一个临界段,则上式最后一行s的取值为i, -(n-1) ≤i≤-1,表示当前有|i|个进程被阻塞。 4.4.2 阻塞∕唤醒协议 从图中可以看出,当
您可能关注的文档
- 河南财经政法大学自考毕业论文模板.doc
- 第二章 工程项目相关规章制度..doc
- 2011年度青年岗位能手事迹材料.doc
- QZ--3型高压注油器使用说明书.doc
- 浅议如何做好小学作文教学指导1.doc
- 团队建设-基础培训教材.ppt
- 创新实践学习报告.doc
- 2010~2011学年度社会实践报告 文档.doc
- 教练员领导理论与应用研究进展.pdf
- 规划快题设计常用规范要求总结一.doc
- 2025年湖南省公务员录用考试《行测》题(网友回忆版).docx
- 2020年安徽省公务员录用考试《行测》试题(网友回忆版).docx
- 2025年安徽省公务员录用考试《行测》题(网友回忆版).docx
- 2025下半年省公务员录用考试第四季行测模考(浙江a卷).docx
- 2025上半年省公务员录用考试第四季行测模考(云南卷).docx
- 钢铁长城_1多媒体教学课件.ppt
- 细胞化学成分的统一性多媒体教学课件.ppt
- 2025年湖北省选调生招录考试综合知识和行政职业能力测验试卷(网友回忆版).docx
- 2025下半年省公务员录用考试第二季行测模考(浙江c卷).docx
- 2025年江苏省公务员录用考试《行测》题(A类)(网友回忆版).docx
文档评论(0)