系统架构师进程互斥与同步以及P, V操作

系统架构设计师 责任编辑:lingyunn 2013-12-09

添加老师微信

备考咨询

加我微信

摘要:异步环境下的一组并发进程之间互发消息、相互合作、互相等待,使得各进程按一定的速度执行的过程称为进程同步,也即同步是使在异步环境下的各进程按一定的顺序和速度执行。

2.1.2题机与进程管理

3.进程互斥与同步以及P, V操作

进程间的同步

异步环境下的一组并发进程之间互发消息、相互合作、互相等待,使得各进程按一定的速度执行的过程称为进程同步,也即同步是使在异步环境下的各进程按一定的顺序和速度执行。

进程间的互斥

一组并发进程中的一个或多个程序段,因共享某一公有资源而使得它们必须以一个 不允许交叉的顺序执行。也即,互斥要保证临界资源在某一时刻只被一个进程访问。

临界资源

系统中有些资源可以供多个进程同时使用,有些资源一次只能供一个进程使用,称 为临界资源(Critical Resource, CR),如打印机、公共变量和表格等。

临界区管理原则

临界区(Critical Section, CS)是进程中对临界资源实施操作的那段程序。互斥临界区管理的原则是有空即进、无空则等、有限等待、让权等待。

信号量机制

1965年,荷兰学者Dijkstra提出的信号量机制是一种卓有成效的进程同步与互斥的工具。

整型信号量与PV操作

信号量是一个整型变量,根据控制对象的不同赋不同的值。信号量分为两类。

公用信号量:实现进程间的互斥,初值=1或资源的数目。

私用信号量:实现进程间的同步,初值=0或某个正整数。

信号SS的物理意义是:S>0表示某资源的可用数,S<0其绝对值表示阻塞队列中 等待该资源的进程数。

PV操作是实现进程同步与互斥的常用方法。PV操作是低级通信原语,在执行期间 不可分割。其中,p操作表示申请一个资源,V操作表示释放一个资源。

P操作定义:S:=S-1,若S彡0,则执行P操作的进程继续执行;否则若S<0,则置 该进程为阻塞状态(因为无可用资源),并将其插入阻塞队列。

P操作可用如下过程表示:

Procedure P (Var S:Semaphore);

Begin

S:=S-1;

If S<0 then W (S) {执行P操作的进程插入等待队列}

End;

V操作定义:S:=S+1,若SX),则执行V操作的进程继续执行;否则若S<0,则从 阻塞状态唤醒一个进程,并将其插入就绪队列,然后执行V操作的进程继续执行。

V操作可用如下过程表示:

Procedure V (Var S:Semaphore);

Begin

S:=S+1;

If S彡0 then R (S) {从阻塞队列中唤醒一个进程}

.End;

利用PV操作实现进程的互斥

令信号量mutex的初值为"1",当进入临界区时执行P操作,退出临界区时执行V 操作。则进入临界区的代码段如下:

P (mutex)

临界区

V (mutex)

利用PV操作实现进程的同步

进程的同步是由于进程间合作引起的相互制约的问题,要实现进程的同步可用一个信号量与消息联系起来。当信号量的值为0时表示希望的消息未产生,当信号量的值为非0时表示希望的消息己经存在。假定用信号量S表示某条消息,进程可以通过调用P操作测试消息是否到达,调用V操作通知消息已准备好。

同步问题的经典例子是生产者-消费者问题。相应的程序段形式如下:

生产者 Loop

生产一产品next;

P (Bufempty);

Next产品存缓冲区:

(Buffiill); endloop

消费者 Loop

P (BufRill);

(Bufempty);

从缓冲区中取产品;

使用产品; endloop

其中,信号量Bufempty和Buffbll分别表示缓冲区中的空单元数和非空单元数,它们的初值分别是1和0.

返回目录系统架构师教程第2章:计算机与网络基础知识

   系统架构设计师考试报名系统架构设计师考试大纲

 系统架构设计师考试 

系统架构师考试培训


更多资料
更多课程
更多真题
温馨提示:因考试政策、内容不断变化与调整,本网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!

软考备考资料免费领取

去领取

!
咨询在线老师!