计算机操作系统第三版第2章.ppt

如果有进程Q处于阻塞状态, 当进程P执行了X.signal操作后,怎样决定由哪个进行执行,哪个等待,可采用下述两种方式之一进行处理: (1) P等待,直至Q离开管程或等待另一条件。 (2) Q等待,直至P离开管程或等待另一条件。 采用哪种处理方式, 当然是各执一词。 但是Hansan却采用了第一种处理方式。 2.4 经典进程的同步问题 2.4.1 生产者—消费者问题 前面我们已经对生产者—消费者问题(The proceducer-consumer problem)做了一些描述,但未考虑进程的互斥与同步问题,因而造成了数据Counter的不定性。由于生产者—消费者问题是相互合作的进程关系的一种抽象,例如, 在输入时,输入进程是生产者,计算进程是消费者;而在输出时,则计算进程是生产者,而打印进程是消费者, 因此,该问题有很大的代表性及实用价值。 1. 利用记录型信号量解决生产者—消费者问题 假定在生产者和消费者之间的公用缓冲池中,具有n个缓冲区,这时可利用互斥信号量mutex实现诸进程对缓冲池的互斥使用;利用信号量empty和full分别表示缓冲池中空缓冲区和满缓冲区的数量。又假定这些生产者和消费者相互等效,只要缓冲池未满,生产者便可将消

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档