《计算机硬件与软件》2.2.3处理机管理_进程通信.ppt

《计算机硬件与软件》2.2.3处理机管理_进程通信.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2.2.3 进程通信 在多道程序设计的系统中,由于多个进程可以并发执行,因此进程间必然存在资源共享和相互合作的问题。 进程通信是指各个进程交换信息的过程。 通常,同步是合作进程间的直接制约问题,互斥是申请临界资源进程间的间接制约问题。 1)进程间的同步 在计算机系统中,多个进程可以并发执行,每个进程都以各自独立的、不可预知的速度向前推进,但是需要在某些确定点上协调相互合作进程间的工作。 例如,进程A向缓冲区送数据,进程B从缓冲区取数据加工,当进程B要取数据加工时,必须是进程A完成了向缓冲区送数据的操作,否则进程B必须停下来等待进程A的操作结束。 进程同步 同步是进程间共同完成一项任务时直接发生相互作用的关系 ——同步进程间具有合作关系 ——在执行时间上必须按一定的顺序协调进行 2)进程间的互斥 在多道程序系统环境中,各进程可以共享各类资源,但有些资源一次只能供一个进程使用,称为临界资源( Critical Resource } CR ),如打印机、共享变量等。 进程间的互斥是指系统中各进程互斥使用临界资源。 互斥 互斥是并发执行的多个进程由于竞争同一资源而产生的相互排斥的关系 ——互斥进程彼此在逻辑上是完全无关的 ——它们的运行不具 有时间次序的特征 临界区 临界区(Critical Section CS )是进程中对临界资源实施操作的那段程序。对互斥临界区管理的4条原则如下。 有空即进。当无进程处于临界区时,允许进程进入临界区,并且只能在临界区运行有限的时间。 无空则等。当有一个进程在临界区时,其他需要进入临界区的进程必须等待,以保证进程互斥地访问临界资源。 有限等待。对要求访问临界资源的进程,应保证进程等待有限时间后进入临界区,以免陷入“饥饿”状态。 让权等待。当进捏不能进入自己的临界区时,应立即释放处理机,以免进程陷入“忙等“状态。 信号量 信号量机制主要有整形信号量、记录性信号量、信号量集机制。 信号量是一个整形变量,根据控制对象的不同赋不同的值。信号量可分为公用信号量和私用信号量两类。 公用信号量:实现进程间的互斥,初值=1或资源的数目 私用信号量:实现进程间的同步,初值=0或某个整数 信号量S的物理意义: S=0时表示某资源的可用数 s0时其绝对值表示阻塞队列中等待该资源的进程数。 P、V操作是实现进程同步与互斥的常用方法。 信号量的值仅由P、V操作改变 P、V操作都是原语 P操作 P操作表示申请一个资源,V操作表示释放一个资源。 P操作的定义:S=S-1,若S=0,则执行P操作的进程继续执行;若S0,则置该进程为阻塞状态,并将其插入阻塞队列。 Procedure P(Var S:Semaphore); ? Begin ?? S:=S-1; ?? If S0 then? w(S)?? {执行P操作的进程插入等待队列} ? End; P操作 V操作 V操作定义:S=S+1,若S0则执行V操作的进程继续执行;若S0,则从阻塞状态唤醒一个进程,并将其插入就绪队列,执行V操作的进程继续执行。 ? Procedure V(Var S:Semaphore); ? ???Begin? S:=S+1 If S=0 then R(s) {从阻塞队列中唤醒一个进程} End; V操作 用P、V原语实现互斥 利用PV操作实现进程的互斥 ?令信号量mutex的初值为1,当进入临界区时执行P操作,退出临界区时执行V操作。这样利用PV操作实现进程互斥的代码段如下: P(mutex)   临界区 V(mutex) 用P、V原语实现简单同步 信号量及P、V操作讨论 对于两个并发进程,互斥信号量的值仅取1、0和-1三个值 若MUTEX=1表示没有进程进入临界区 若MUTEX =0表示有一个进程进入临界区 若MUTEX =-1表示一个进程进入临界区,另一个进程等待进入。 思考 对于N个并发进程,信号量的取值范围是什么,有什么含义。 信号量及P、V操作讨论(续1) 1) 信号量的物理含义: S0表示有S个资源可用 S=0表示无资源可用 S0则| S |表示S等待队列中的进程个数 P(S):表示申请一个资源 V(S):表示释放一个资源。 信号量的初值应该大于等于0 信号量及P、V操作讨论(续2) 2) P.V操作必须成对出现,有一个P操作就一定有一个V操作 当为互斥操作时,它们同处于同一进程 当为同步操作时,则不在同一进程中出现 如果P(S1)和P(S2)两个操作在一起,那么P操作的顺序至关重要。 一个同步P操作与一个互斥P操作在一起时同步P操作在互斥P操作前 而两个V操作无关紧要 信号量及P、V操作讨论(续3) 3)P、V操作的优缺点 优点:

文档评论(0)

autohhh + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档