下载此文档

进程通信.ppt


文档分类:IT计算机 | 页数:约137页 举报非法文档有奖
1/137
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/137 下载此文档
文档列表 文档介绍
第4章进程通信
引言
进程的同步与互斥
互斥的软件方法
硬件指令机制
信号量机制
用信号量机制实现互斥与同步
经典进程同步问题
进程通信
引言
现代操作系统均是基于进程管理的操作系统,是通过对进程的管理与控制实现多道程序并发执行的。但进程在异步并发时,或是由于彼此合作或是由于竞争资源,使得进程在保留异步特征的同时,在特定点上产生出速度上的相互制约。若对这种速率协调关系不加以保证,进程在并发过程中可能产生与时间有关的错误。
为了保证进程有序正确地执行,系统必须提供必要的通信机制,以保证进程间的同步。本章将讨论实现这一目的的许多不同方案。

在多道程序设计环境下,任务被分解成了多个进程,而一个进程可能只完成某个任务中的一部分,多个进程的共同执行才可以使一项任务顺利完成。这就提出了以下问题:

,以保证共享信息的正确使用和进程并发的正确执行。
这样在进程间就产生出某种彼此依赖或相互制约的关系。
进程间的这种相互制约关系又分为同步与互斥两种情形。

进程的同步(直接制约):synchronism
指系统中一些进程需要相互合作,共同完成一项任务。具体说,一个进程运行到某一点时要求另一伙伴进程为它提供消息,在未获得消息之前,该进程处于等待状态,获得消息后被唤醒进入就绪态
进程的互斥(间接制约)mutual exclusion
由于各进程要求共享资源,而有些资源需要互斥使用,因此各进程间竞争地使用这些资源,进程的这种关系为进程的互斥
进程合作
进程同步例子:谁买面包?

5:00 查看冰箱,面包没了
5:05 去超市
5:10 到达超市
5:15 买好面包
5:20 回家,把面包放入冰箱
5:25
5:30

查看冰箱,面包没了
去超市
到达超市
买好面包
回家,把面包放入冰箱
噢,Too Much
进程合作
引起进程相互制约的第一个原因是系统中存在着一些合作进程,它们相互配合完成同一任务。
【例4-1】计算X=fun1(y)fun2(z)之值,其中fun1(y)和fun2(z)都是较为复杂的函数。
【分析】考虑创建进程P1来完成X的计算。为减轻P1的任务,创建一个与P1异步并发的进程P2完成fun2(z)的计算。显然,P1、P2既是一对父子进程又是两个合作者进程,由于两者之间的直接联系,使它们在异步并发的同时而在关键点上产生了某些相互制约,这种相互制约关系如下图所示:
进程合作
L2:

进程P2
计算fun2(z)
设置计算完成标志
终止



进程P2算完fun2
进程P1
计算fun1(y)
取用P2计算结果
L1:

进程合作
P1、P2进程之间的协同关系可描述为:
P1、P2异步并发,但必须在某些特定的点上协调它们推进的速率,体现为当P1推进至L1点时,除非P2已推进至L2点,否则P1就不得不在L1点处等待,直至P2到达L2点后才能继续向前推进。
共享资源
直接制约发生在彼此间有着逻辑联系的进程之间。然而,更一般地,并发进程间没有逻辑上的关联,但由于它们竞争独占性资源,获得资源的进程可以继续运行,未获得资源的进程则只得暂停等待,直至其它进程释放资源后才能继续运行。这样,对同类资源的使用就使得这些进程间产生了相互制约关系,这是一种由于使用资源而导致的间接方式的制约关系。
例如,有两个进程A和B,如果在A进程提出打印请求时,系统已将惟一的打印机分配给了进程B,此时进程A只能阻塞;一旦进程B将打印机释放,则A进程才能由阻塞改为就绪状态。
与时间有关的错误
在多道程序设计环境中,由于并发进程执行的相对速度无法相互控制,则进程在共享相同资源时,伴随进程间不同的相对速率,就会对同类资源产生出不同的操作序列,各种与时间有关的错误就可能出现。

进程通信 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数137
  • 收藏数0 收藏
  • 顶次数0
  • 上传人文库旗舰店
  • 文件大小4.65 MB
  • 时间2018-08-23