电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

操作系统PV操作习题

操作系统PV操作习题_第1页
1/59
操作系统PV操作习题_第2页
2/59
操作系统PV操作习题_第3页
3/59
一、用 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...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

操作系统PV操作习题

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部