预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共59页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

一、用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描述进程执行先后次序的前趋图 intf1=0;/*表示进程P1是否执行完成*/ intf2=0;/*表示进程P2是否执行完成*/ intf3=0;/*表示进程P3是否执行完成*/ intf4=0;/*表示进程P4是否执行完成*/ intf5=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。生产者-消费者问题的同步描述如下: intfull=O;/*满缓冲单元的数目*/ intempty=n;/*空缓冲单元的数目*/ intmutex=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 七、为了进行进程协调,进程之间应当具