华东理工815操作系统第7讲讲义.ppt

华东理工815操作系统第7讲讲义

第7讲作业: P82-83页:第23-28,30,32题 2.4 经典进程的同步问题 在多道程序环境下,进程同步问题十分重要,出现一系列经典的进程同步问题,其中有代表性有: 生产者—消费者问题 哲学家进餐问题 读者—写者问题 一、“生产者—消费者”问题 问题描述: “生产者---消费者”问题是最著名的进程同步问题。它描述了一组生产者向一组消费者提供产品,它们共享一个缓冲池(有n个缓冲区),生产者向其中投放产品,消费者从中取得产品。 它是许多相互合作进程的抽象,如输入进程与计算进程;计算进程与打印进程等。 一、“生产者—消费者”问题 一个生产者,一个消费者,公用一个缓冲区 定义两个同步信号量: empty——表示缓冲区是否为空,初值为n。 full——表示缓冲区中是否为满,初值为0。 生产一个产品 取出一个产品 生产者 缓冲区 一、“生产者—消费者”问题 生产者进程: while(TRUE){ 生产一个产品; P(empty); 把产品送往Buffer; V(full); } 消费者进程: while(TRUE){ P(full); 从Buffer取出一个产品; V(empty); 消费产品; } 一、“生产者—消费者”问题 M个生产者,K个消费者,公用有n个缓冲区的缓冲

文档评论(0)

1亿VIP精品文档

相关文档