- 1、本文档共59页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四章 进程通信 一、进程的同步和互斥 1、进程的间的相互作用 相关进程:逻辑上具有某种联系的进程 无关进程:逻辑上没有任何联系的进程 2、相关进程间的关系 1)直接作用(相互合作) 同步关系:合作进程之间再执行次序上的协调关系 2)间接作用(资源共享) 互斥关系:一个进程正在访问共享资源,另一个要访问该资源的进程必须等待。 3、与时间有关的错误 例4-2 4、临界资源和临界区 临界资源:一次仅允许一个进程所使用的资源。如物理设备。(CR:critical resource) 临界区:每个进程中访问临界资源的那段程序代码。(CS:critical section) 进程的互斥关系:当一个进程进入临界区使用临界资源时,另外的进程必须等待;当占有临界资源的进程推出临界区后,另一个进程才被允许进入其临界区。 entry section critical section exit section remainder section ??临界区(critical section):进程中访问临界资源的一段代码 ???进入区(entry section):在进入临界区之前,检查可否进入临界区的一段代码。如果可以进入临界区,通常设置相应“正在访问临界区”标志 ? 退出区(exit section):用于将“正在访问临界区”标志清除 剩余区(remainder section):代码中的其余部分。 同步机构设计准则 1、空闲让进 2、忙则等待 3、多中则一 4、有限等待 5、让权等待 原则2反映了互斥的基本含义,即使用临界区资源的排他性,原则1表示要有效利用临界资源;原则3是原则1和2的一个特殊情况;原则4和5是为了避免进程间发生等待或死锁。 三、硬件指令体制 1、测试与设置技术 利用TS指令实现的进程互斥算法是:每个临界资源设置一个公共布尔变量lock,True表示正被占用,False表示空闲,初值为False. 进程使用临界资源时,应该按照如下三步: 1)测试lock值,如果为真,表示资源已经被占用,则不断等待测试;如果为假,则表示资源可用,这时候把lock设置为真,用来排斥其他进程使用资源,我们可以把这个过程叫做关锁。 2)进程进入临界区,访问临界资源 3)使用完毕,推出临界区,再把lock设置为假,以释放资源,让其他进程使用。这个过程可以叫做开锁。 2、TS指令 Function TS(Var lock:boolean):Boolean Begin TS:=lock; Lock:=true; End TS指令的执行是不可分割的,它实际上是一条原语。利用TS指令可以简单有效的实现互斥,以上指令是TS指令的功能描述,并非软件实现,事实上,TS指令的实现是由硬件直接完成的,并由硬件保证其原子操作性能。 3、利用TS指令完成进程互斥 每个临界资源设置一个公共布尔变量lock,初值为FALSE。在进入区利用TS进行检查:有进程在临界区时,TS为TURE,则重复检查;直到其它进程退出时,TS为FALSE,检查通过; while TS(lock) ; entry section critical section; lock:=false; exit section remainder section; 例4-5 ???硬件方法的优点 –????????1)适用于任意数目的进程,在单处理器或多处理器上 –???????? 2)简单,容易验证其正确性 –???????? 3)可以支持进程内存在多个临界区,只需为每个临界区设立一个布尔变量 ??硬件方法的缺点 –???????? 1)等待要耗费CPU时间,不能实现让权等待 –???????? 2)可能饥饿:从等待进程中随机选择一个进入临界区,有的进程可能一直选不上 3)可能死锁 四、信号量机制 一个进程强制的被停在一个特定的地方直到收到一个专门的信号,这个信号就是信号量,其工作方式类似于铁路交通管理中的信号灯。 信号量是一种特殊的变量,它表面形式是一个整型变量或者一个整型变量附加一个队列,它只能被特定的原语操作来执行。 1、整型信号量 将信号量定义为一个整型变量s 信号量s=0 表示可用的临界资源实体数 信号量s0 表示等待使用该资源的进程数 可执行的两个标准原子操作为wait(s)和signal(s) Wait(s): While s=0 do no-op 当发生s=0时,表 示临界资
文档评论(0)