操作系统PV操作习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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
[分析及相关知识] 在本题中采集任务与计算任务共用一
个单缓冲区.当采集任务采集到一个数据后,只有当缓