汤子瀛_计算机作系统第三版期末总复习.pptVIP

  • 1
  • 0
  • 约9.46千字
  • 约 61页
  • 2016-11-21 发布于贵州
  • 举报

汤子瀛_计算机作系统第三版期末总复习.ppt

假定系统有3个并发进程get 、copy 和put共享缓冲器B1和B2。进程get负责从输入设备上读信息,每读出一条记录后放到B1中。进程copy从缓冲器B1中取出一条记录拷贝后存入B2。进程put取出B2中的记录打印输出。B1和B2每次只能存放一条记录。要求3个进程协调完成任务,使打印出来的与读入的记录个数、次序完全一样。请用记录型信号量写出并发程序。(北大1990年试题) 解: 设置4个信号量,其中empty1对应空闲的缓冲区1,其初值为1;full1对应缓冲区1中的记录,其初值为0; empty2对应空闲的缓冲区2,其初值为1;full2对应缓冲区2中的记录,其初值为0。相应进程描述为: get( ){ while(1){ 从输入设备读入一条记录; P(empty1); 将记录存入缓冲区1; V(full1); } } copy( ){ while(1){ P(full1); 从缓冲区1中取出一条记录; V(empty1); P(empty2); 将取出的记录存入缓冲区2 ; V(full2); } } put( ){ while(1){ P(full2); 从缓冲区2中取出一条记录; V(empty2); 将取出的记录打印出来; } } Main( )

文档评论(0)

1亿VIP精品文档

相关文档