操作系统PV操作习题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、用P、V操作描述前趋关系。P1、P2、P3、P4、P5、P6为一组合作进程,其前趋图如图2.3所示,试用P、V操作描述这6个进程的同步。p23

图2.3说明任务启动后P1先执行,当它结束后P2、P3可以开始执行,P2完成后P4、P5可以开始执行,仅当P3、P4、P5都执行完后,P6才能开始执行。为了确保这一执行顺序,设置5个同步信号量n、摄、f3、f4、g分别表示进程P1、P2、P3、P4、P5是否执行完成,其初值均为0。这6个进程的同步描述如下:

图2.3 描述进程执行先后次序的前趋图

int f1=0; /*表示进程P1是否执行完成*/ int f2=0; /*表示进程P2是否执行完成*/ int f3=0; /*表示进程P3是否执行完成*/int f4=0; /*表示进程P4是否执行完成*/ int f5=0; /*表示进程P5是否执行完成*/ main()

{

cobegin

P1( );

P2( );

P3( );

P4( );

P5( );

P6( );

coend

}

P1 ( )

{

v(f1);

v(f1):

}

P2 ( )

{

p(f1);

v(f2);

v(f2);

)

P3 ( )

{

p(f1);

v(f3);

}

P4( )

{

p(f2);

v(f4);

}

P5 ( )

{

p(f2);

v(f5);

}

P6( )

{

p(f3);

p(f4);

p(f5);

}

二、生产者-消费者问题 p25

生产者-消费者问题是最著名的进程同步问题。它描述了一组生产者向一组消费者提供产品,它们共享一个有界缓冲区,生产者向其中投放产品,消费者从中取得产品。生产者-消费者问题是许多相互合作进程的一种抽象。例如,在输入时,输入进程是生产者,计算进程是消费者;在输出时,计算进程是生产者,打印进程是消费者。因此,该问题具有很大实用价值。

我们把一个长度为n的有界缓冲区(n>0)与一群生产者进程P1、P2、…、Pm和一群消费者进程C1、C2、…、Ck联系起来,如图2.4所示。假定这些生产者和消费者是互相等效的。只要缓冲区未满,生产者就可以把产品送入缓冲区,

类似地,只要缓冲区未空,消费者便可以从缓冲区中取走物品并消耗它。生产者和消费者的同步关系将禁止生产者向满的缓冲区输送产品,也禁止消费者从空的缓冲区中提取物品。

图2.4 生产者-消费者问题

为解决这一类生产者-消费者问题,应该设置两个同步信号量,一个说明空缓冲单元的

数目,用empty表示,其初值为有界缓冲区的大小n,另一个说明满缓冲单元的数目,用

full表示,其初值为0。在本例中有P1、P2、…、Pm个生产者和C1、C2、…、Ck个消费者,它们在执行生产活动和消费活动中要对有界缓冲区进行操作。由于有界缓冲区是一个临界资源,必须互斥使用,所以,另外还需设置一个互斥信号量mutex,其初值为1。生产者-消费者问题的同步描述如下:

int full=O; /*满缓冲单元的数目*/

int empty=n; /*空缓冲单元的数目*/

int mutex=1; /*对有界缓冲区进行操作的互斥信号量*/

main()

{

cobegin

produceri();/*i=1,2,┅,m;j=l,2,┅,k*/

consumerj();

coend

}

produceri() /*i=1,2,┅,m*/

{

while(生产未完成)

{

生产一个产品;

p(empty);

p(mutex);

送一个产品到有界缓冲区;

v(mutex);

v(full);

)

}

consumerj() /*j=1,2,…,k*/

{

while(还要继续消费)

{

p (full);

p(mutex);

从有界缓冲区中取产品;

v (mutex);

v (empty);

消费一个产品;

}

}

三、在操作系统中,进程是一个具有一定独立功能的程序在某个数据集上的一次

__________。

A.等待活动 B.运行活动

C.单独操作 D.关联操作

答:B

四、多道程序环境下,操作系统分配资源以_______为基本单位。

A.程序 B.指令 C进程 D.作业

答:C

五、对于两个并发进程,设互斥信号量为mutex,若mutex=O,则_____。

A.表示没有进程进入临界区

B.表示有一个进程进入临界区

C.表示有一个进程进入临界区,另一个进程等待进入

D.表示有两个进程进入临界区

答:B

六、两个进程合作完成一个任务。在并发执行中,一个进程要等待其合作伙伴发来消

息,或者建立某个条件后再向前执行,这种制约性合作关系被称为进程的____。

A.同步 B.互斥 C. 调度 D.执行

答:A

七、为了进行进程协调,进程之间应当具有一定的联系,这种联系通常采用进程间交换数据的方式进行,这种方式称为______。

A.进程互斥 B.进程同步 C进程制约 D.进程通信

答:D

八、在测量控制系统中,数据采集任务把所采集的数据送入

一单缓冲区;计算任务从该单缓冲区中取出数据进行计

算。试写出利用信号量机制实现两者共享单缓冲区的同步算法。P33

[分析及相关知识] 在本题中采集任务与计算任务共用一

个单缓冲区.当采集任务采集到一个数据后,只有当缓

相关文档
最新文档