进程通信
在多道程序设计的系统中,由于多个进程可以并发执行,因此进程间必然存在资源共享和相互合作的问题。
进程通信是指各个进程交换信息的过程。
通常,同步是合作进程间的直接制约问题,互斥是申请临界资源进程间的间接制约问题。
1
1)进程间的同步
在计算机系统中,多个进程可以并发执行,每个进程都以各自独立的、不可预知的速度向前推进,但是需要在某些确定点上协调相互合作进程间的工作。
例如,进程A向缓冲区送数据,进程B从缓冲区取数据加工,当进程B要取数据加工时,必须是进程A完成了向缓冲区送数据的操作,否则进程B必须停下来等待进程A的操作结束。
2
进程同步
同步是进程间共同完成一项任务时直接发生相互作用的关系
3
——同步进程间具有合作关系
——在执行时间上必须按一定的顺序协调进行
4
2)进程间的互斥
在多道程序系统环境中,各进程可以共享各类资源,但有些资源一次只能供一个进程使用,称为临界资源( Critical Resource } CR ),如打印机、共享变量等。
进程间的互斥是指系统中各进程互斥使用临界资源。
5
互斥
互斥是并发执行的多个进程由于竞争同一资源而产生的相互排斥的关系
6
——互斥进程彼此在逻辑上是完全无关的
——它们的运行不具 有时间次序的特征
7
临界资源和临界区
信号量
P、V操作
8
临界区
临界区(Critical Section CS )是进程中对临界资源实施操作的那段程序。对互斥临界区管理的4条原则如下。
有空即进。当无进程处于临界区时,允许进程进入临界区,并且只能在临界区运行有限的时间。
无空则等。当有一个进程在临界区时,其他需要进入临界区的进程必须等待,以保证进程互斥地访问临界资源。
有限等待。对要求访问临界资源的进程,应保证进程等待有限时间后进入临界区,以免陷入“饥饿”状态。
让权等待。当进捏不能进入自己的临界区时,应立即释放处理机,以免进程陷入“忙等“状态。
9
信号量
信号量机制主要有整形信号量、记录性信号量、信号量集机制。
信号量是一个整形变量,根据控制对象的不同赋不同的值。信号量可分为公用信号量和私用信号量两类。
公用信号量:实现进程间的互斥,初值=1或资源的数目
私用信号量:实现进程间的同步,初值=0或某个整数
信号量S的物理意义:
S>=0时表示某资源的可用数
s<0时其绝对值表示阻塞队列中等待该资源的进程数。
P、V操作是实现进程同步与互斥的常用方法。
信号量的值仅由P、V操作改变
10
223 进程通信 来自淘豆网www.taodocs.com转载请标明出处.