几百块钱建网站,高端网站设计教程,云南最新消息,wordpress yoast一、进程间的通信 在多道程序环境的系统中存在多个可以并发执行的进程#xff0c;故进程间必然存在资源共享#xff08;互斥#xff09;和相互合作#xff08;同步#xff09;的问题。进程通信是指各个进程交换信息的过程。 同步是合作进程间的直接制约问题#xff0c;互…一、进程间的通信 在多道程序环境的系统中存在多个可以并发执行的进程故进程间必然存在资源共享互斥和相互合作同步的问题。进程通信是指各个进程交换信息的过程。 同步是合作进程间的直接制约问题互斥是申请临界资源进程间的间接制约问题. 1-1、同步
在计算机系统中多个进程可以并发执行每个进程都以各自独立的、不可预知的速度向前推进即异步执行。
但是需要在某些确定点上协调相互合作进程间的工作。例如进程 A 向缓冲区送数据,进程 B 从缓冲区取数据加工当进程 B 要取数据加工时必须是进程 A 完成了向缓冲区送数据的操作否则进程 B 必须停下来等待进程 A 的操作结束。
可见所谓进程间的同步是指在系统中一些需要相互合作协同工作的进程这样的相互联系称为进程的同步。 1-2、互斥
进程的互斥是指系统中多个进程因争用临界资源而互斥执行。
在多道程序系统环境中各进程可以共享各类资源但有些资源一次只能供一个进程使用称为临界资源 (CriticalResourceCR)如打印机、共享变量和表格等。 1-3、临界资源管理的原则
临界区是进程中对临界资源实施操作的那段程序。 对互斥临界区管理的 4 条原则如下
(1)有空即进 当无进程处于临界区时允许进程进入临界区并且只能在临界区运行有限的时间。不能一直占用资源不放
(2) 无空则等 当有一个进程在临界区时其他欲进入临界区的进程必须等待以保证进程互斥地访问临界资源。
(3)有限等待 对于要求访问临界资源的进程应保证进程能在有限的时间进入临界区以免陷入“饥饿”状态。
(4) 让权等待 当进程不能进入自己的临界区时应立即释放处理机CPU以免进程陷入忙等状态。 忙等状态 当一个进程因某个事件如等待某个资源或条件成立而无法继续执行时它仍然占用着CPU。任何试图进入其临界区的进程都必须等待进入忙等状态。 忙等状态的主要缺点是它会浪费CPU的时间因为进程在等待期间仍然占据着CPU资源不能进行其他有用的工作。 1-4、信号量机制
信号量机制是一种有效的进程同步、互斥工具。 1-4-1、整型信号量
信号量是一个整型变量根据控制对象的不同被赋予不同的值。
信号量分为如下两类
(1) 公用信号量。实现进程间的互斥初值为 1 或资源的数目。
(2) 私用信号量。实现进程间的同步初值为 0 或某个正整数。 信号量 S 的物理意义
S0 表示某资源的可用数S0则其绝对值表示阻塞队列中等待该资源的进程数。 S-1即阻塞队列中有一个资源在等待。 1-5、PV操作
对于系统中的每个进程其工作的正确与否不仅取决于它自身的正确性而且与它在执行中能否与其他相关进程正确地实施同步、互斥有关。
PV 操作是实现进程同步、互斥的常用方法。
P 操作和 V 操作是低级通信原语在执行期间不可分割。其中P 操作表示申请一个资源V操作表示释放一个资源。 P操作和V操作成对出现。 1-5-1、P操作申请一个资源
P 操作的定义: S:S-1
若 S0则执行 P 操作的进程继续执行
若 S0则置该进程为阻塞状态/等待队列因为无可用资源并将其插入阻塞队列。 1-5-2、V操作释放一个资源
V操作定义S:S1
若 S0则执行V操作的进程继续执行
若 S0则从阻塞队列唤醒一个进程并将其插入就绪队列然后执行V操作的进程继续。 S10说明有进程在阻塞队列中等待资源如P2。此时有资源被释放则将资源给P2将P2插入就绪队列。 1-5-3、真题
真题1 真题2 真题3 真题4 真题5 1-6、利用PV操作实现进程的互斥
令信号量 mutex 的初值为 1当进入临界区时执行P操作退出临界区时执行V操作。
这样利用 PV操作实现进程互斥的代码段如下 P(mutex) 临界区 V(mutex) 示例 1-7、利用PV操作实现进程的同步
进程的同步是由于进程间合作引起的相互制约的问题要实现进程的同步可用一个信号量与消息联系起来当信号量的值为0时表示希望的消息未产生当信号量的值为非0时表示希望的消息已经存在。
假定用信号量S表示某条消息进程可以通过调用P操作测试消息是否到达调用V操作通知消息已准备好。
最典型的同步问题是单缓冲区的生产者和消费者的同步问题。 1-7-1、生产者、消费者问题
生产者进程P1不断地生产产品送入缓冲区消费者进程P2不断地从缓冲区中取产品消费。 1、单缓冲区
缓冲区可以存放1件产品。
为了实现P1与P2进程间的同步问题需要设置两个信号量S1、S2方案
信号量S1初值为1表示缓冲区空可以将产品送入缓冲区 生产者可以往缓冲区中可以放几个产品 信号量S2的初值为0表示缓冲区有产品。 消费者可以往缓冲区中取几个产品。 【回顾】 P 操作的定义: S:S-1 若 S0则执行 P 操作的进程继续执行若 S0则置该进程为阻塞状态/等待队列因为无可用资源并将其插入阻塞队列。 V操作定义S:S1 若 S0则执行V操作的进程继续执行若 S0则从阻塞队列唤醒一个进程并将其插入就绪队列然后执行V操作的进程继续。 2、多缓冲区
缓冲区可以存放n件产品。
生产者不断地生产产品消费者不断地消费产品为了实现P1与P2进程间的同步问题需要设置三个信号量S、S1、S2
S1初值n是否可以将产品放入缓冲区 生产者可以往缓冲区中可以放几个产品 S2初值0缓冲区是否存有产品 消费者可以往缓冲区中取几个产品。 S互斥信号量初值1因为缓冲区是一个互斥资源所以要进行互斥控制。 3、真题
真题1 S1S2是同步信号量 S是互斥信号量。 真题2 真题3