文件名称:OSshengchanzhexiaofeizhe
介绍说明--下载内容均来自于网络,请自行研究使用
“生产者-消费者”的问题是进程互斥中一个著名的案例。
抽象背景:生产者和消费者共享一个缓冲区:
当生产者快时,保证不会有数据遗漏消费;
当消费者快时,保证不会有数据未产生就被消费;
此问题要求解决如下并发需求:
互斥:任一时刻仅有一个生产者或消费者访问缓冲区
同步:缓冲区满时生产者等待,缓冲区空时消费者等待
大概意思是:有一个有限缓冲区和两类线程,它们是生产者和消费者,生产者把产品放入缓冲区,相反消费者便是从缓冲区中拿走产品。 生产者在缓冲区满时必须等待,直到缓冲区有空间才继续生产;消费者在缓冲区空时必须等待,直到缓冲区中有产品才能继续读取。
我们可以看到,这里存在潜在的竞争条件,所谓竞争条件就是这样一种情况:多个线程对数据产生的作用要依赖于线程的调度顺序的。当两个线程竞相访问同一数据时,就会发生竞争条件。由于时间片的原因,一个线程可以在任意一个时刻打断其他线程,因此数据可能会被破坏或者被错误地解释。
-err
抽象背景:生产者和消费者共享一个缓冲区:
当生产者快时,保证不会有数据遗漏消费;
当消费者快时,保证不会有数据未产生就被消费;
此问题要求解决如下并发需求:
互斥:任一时刻仅有一个生产者或消费者访问缓冲区
同步:缓冲区满时生产者等待,缓冲区空时消费者等待
大概意思是:有一个有限缓冲区和两类线程,它们是生产者和消费者,生产者把产品放入缓冲区,相反消费者便是从缓冲区中拿走产品。 生产者在缓冲区满时必须等待,直到缓冲区有空间才继续生产;消费者在缓冲区空时必须等待,直到缓冲区中有产品才能继续读取。
我们可以看到,这里存在潜在的竞争条件,所谓竞争条件就是这样一种情况:多个线程对数据产生的作用要依赖于线程的调度顺序的。当两个线程竞相访问同一数据时,就会发生竞争条件。由于时间片的原因,一个线程可以在任意一个时刻打断其他线程,因此数据可能会被破坏或者被错误地解释。
-err
(系统自动生成,下载前可以参看下载内容)
下载文件列表
OS课设源程序.cpp