Linux进程间通信.pptVIP

  • 16
  • 0
  • 约9.14千字
  • 约 34页
  • 2017-02-19 发布于上海
  • 举报
Linux进程间通信

* 操作系统与实验 第4章3 * 2.利用信号量实现进程同步 分析: ⑴需要创建3个子进程:生产者、消费者A、消费者B; ⑵需要使用3个信号量:empty、full、mutex,分别表示缓冲区是否有空、是否有数和互斥信号量,其初值分别为:5,0,1; ⑶需要2个共享内存:array和get,分别表示多缓冲区数组变量array [0]~[4]、和消费者读缓冲区号的计数get,get计数由两个消费者进程共享,由于生产者只有一个没,所以写缓冲区号的计数set不需要使用共享内存。 * 操作系统与实验 第4章3 * 算法: 创建共享存储区array,get; 附接共享存储区到进程空间; 共享存储区赋初值; 创建信号量empty并初始化; 创建信号量full并初始化; 创建信号量mutex并初始化; 创建生产者子进程; 如果生产者子进程返回: for(i=0;i10,i++) { P(empty); P(mutex); 写数据到共享存储区; 缓冲区计数set++; V(mutex); V(full); exit(0); } 如果父进程返回: 创建消费者A子进程; 如果消费者A进程返回: for(i=0;i10,i++) { P(full); P(mutex); 从共享存储区中取数据; 缓冲区计数(*get)+

文档评论(0)

1亿VIP精品文档

相关文档