第7章 进程同步与进程通信_第1页
第7章 进程同步与进程通信_第2页
第7章 进程同步与进程通信_第3页
第7章 进程同步与进程通信_第4页
第7章 进程同步与进程通信_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第七章进程同步与进程通信7.1进程的顺序性与并发性7.2与时间有关的错误7.3临界区与PV操作7.4进程的互斥7.5进程的同步7.6进程通信7.7UNIX中的进程同步与通信7.8线程概念7.1进程的顺序性与并发性进程的顺序性任何进程在顺序的处理器上的执行是严格按照顺序进行的,这就是进程的顺序性。当一个进程独占处理器顺序执行时,具有两个特性:一、封闭性;二、可再现性。进程的同时执行在多道程序设计系统中,一个进程的工作没有全部完成之前,另一个进程就可以开始工作,它们的执行在时间上重迭的,把它们称为是“可同时执行的”进程的并发性若系统中存在一组可同时执行的进程,则说该组进程具有并发性,并把可同时执行的进程称为“并发进程”并发进程间的关系并发进程相互之间可能是无关的,也可能是交互的如果一个进程的执行不影响其他进程的执行,且与其他进程的进展情况无关,即它们是各自独立的,则这些并发进程相互之间是无关的。如果一个进程的执行依赖其他进程的执行,则这些并发进程之间是有交互的。7.2与时间有关的错误并发进程交替使用共享资源时会出现与时间有关的错误由于共享资源的原因,加上进程并发执行的随机性,一个进程对另一个进程的影响是不可预测的造成不正确的因素与进程占用处理器的时间、执行的速度以及外界的影响有关。因此被称为与时间有关的错误。7.3临界区与PV操作临界区的定义并发进程中与共享变量有关的程序段称为“临界区”相关临界区相关临界区是指并发进程中涉及到相同变量的那些程序段相关临界区的要求1)一次最多让一个进程在临界区执行,当有进程在临界区时其他想进入临界区执行的进程必须等待2)任何一个进入临界区执行的进程必须在有限的时间内退出临界区,即任何一个进程都不应该无限地逗留在自己的临界区3)不能强迫一个进程无限地等待进入它的临界区,即有进程退出时应让一个等待进入临界区的进程进入它的临界区7.4进程的互斥进程互斥是指当有若干进程都要使用某一共享资源时,任何时刻最多只允许一个进程去使用,其他要使用该资源的进程必须等待,直到占用资源者释放了该资源。实现进程互斥的工具--PV操作。PV操作是由两个操作,即P操作和V操作组成。P操作和V操作是两个在信号量上进行操作的过程。假定用S表示信号量,则把这两个过程记作P(S)和V(S),它们的定义如下:ProcedueP(VarS:Semaphore);beginS:=S-1;ifS<0thenW(S)end;{P}ProcedueV(VarS:Semaphore);beginS:=S+1;ifS<=0thenR(S)end;{V}为了确保PV操作自身的正确执行,因此P(S)和V(S)操作中不可中断,这种不可被中断的过程称为“原语”。用PV操作管理相关临界区的一般形式一个信号量与一组涉及共享变量的相关临界区联系起来,信号量S的初值定为“1”任何一个进程要进入临界区前先调用P操作,执行临界区的操作后,退出临界区时调用V操作由于信号量S的初值为“1”,P操作起到了限制一次只有一个进程进入临界区的作用,其余进程欲进入临界区必须符合对临界区管理的第一个要求,即一次最多让一个进程在临界区执行。进程退出后执行V操作,若有进程在等待则释放一个进程,这样就达到了对临界区管理的第二个和第三个要求(即不能无限逗留也不能无限等待)在写程序时要注意以下几点PV操作中间只执行相关临界区内容,不能把临界区外的程序段放到PV操作中间,否则会降低系统并发执行能力或引起系统瘫痪。当有条件语句时要注意在临界区内每个条件分支出口均要调用V操作,否则会违反对临界区管理的第二、三两个要求。7.5进程的同步进程同步是指并发进程之间存在一种制约关系,一个进程的执行依赖另一个进程的消息,当一个进程没有得到另一个进程的消息时应等待,直到消息到达才被唤醒。“生产者”与“消费者”问题有两个消息量:一是“缓冲器里有物品”,二是“可把物品存入缓冲器”,这两个消息量对应需要两个信号量SP和SG。生产者进程调用P(SP)和V(SG),消费者进程调用P(SG)和V(SP)根据SG和SP的值来决定是否可以存或取物。正确使用PV操作实现进程同步(1)用一个信号量与一个消息联系起来,当信号量的值为0时表示期望的消息尚未产生,当信号量值为非0时表示期望的消息已经存在(2)在用PV操作实现同步时,一个信号量与一个消息量联系在一起,当有多个消息时必须定义多个信号量;测试不同的消息是否到达或发送不同消息时,应对不同的信号调用P操作或V操作。PV操作实现进程同步与互斥的混合问题进程的同步与进程的互斥都涉及到并发进程访问共享资源的问题进程的互斥实际上是进程同步的一种特殊情况若干进程互斥使用资源时,一个等待使用资源的的进程在得到占用资源的进程发出“归还资源”的消息(调用了V操作)后,它就可去使用资源互斥使用资源的进程之间实际上也存在一个进程依赖另一个进程发出信息的制约关系进程的互斥与进程的同步称为进程的同步PV操作实现进程同步与互斥时怎样定义信号量,信号量的物理含义及其作用利用PV操作实现进程互斥时,用一个信号量与一组相关临界区对应,这些进程在同一个信号量上调用P操作和V操作来实现互斥。利用PV操作实现进程同步时,每一个消息与一个信号量对应,进程在不同信号量上调用P操作以测试自己需要的消息是否到达,在不同信号量上调用V操作把不同的消息发送出去。7.6进程通信进程通信通过专门的通信机制实现进程间交换大量信息的通信方式称为“进程通信”实现进程通信的基本原语“send(发送)”原语“receive(接收)”原语利用信箱通信时“发送”和“接收”原语的功能send(N,M)功能:把信件M送到指定的信箱N

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论