计算机操作系统中生产者-消费者问题分析.pdf
《计算机操作系统中生产者-消费者问题分析.pdf》由会员分享,可在线阅读,更多相关《计算机操作系统中生产者-消费者问题分析.pdf(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计算机操作系统中生产者二消费者问题分析徐曼1。孙曼曼2(1 河北大学人民武装学院。河北0 5 0 0 6 l;2 河北师范大学附属民族学院,石家庄0 5 0 0 9 1)擒耍:操作系统中引入进程使得计算机系统性能得到很大提升。系统中同时存在多个进程。它们彼此独立。各自按照自己的方式运行,同时共事系统中的资源其中重点问题是进程问的同步。针对进程同步中的经典同步问题生产者一消费者问题进行详细分析并采用信号量机制实现其同步。关键词:进程同步;生产者一消费者问题;信号量;P v 操作0引言操作系统是计算机的核心软件是计算机专业学生的专业必修课。进程同步问题是计算机操作系统中的重点内容而生产者一消费者问
2、题是进程同步问题中的经典它是计算机中相互合作进程关系的一种抽象,该问题具有很大的代表性和使用价值。1进程同步的基本概念在多道程序环境下系统中可能存在许多的进程在这些进程之间必定存在一些制约关系这种制约关系表现为以下两种形式:资源共享关系。进程之间不知道其他进程的存在而这些进程又处在同一个系统中。对系统资源必须共享使用而有些资源不允许进程同时访问。例如打印机。系统只能保证进程间互斥地使用这种临界资源称这种资源共享关系叫做互斥;相互合作关系。在某些进程间还存在一种相互合作的关系。例如在某个系统中存在两个进程,输入进程A 和计算进程B A 负责向B 提供数据当缓冲区空时,B 进程因不能获得所需数据而
3、等待。当A 把数据送入缓冲区后并向B 发送一个信号将B 唤醒,B 才能取走数据。同样当B 没有提取数据。也就是说缓冲区满时进程A 也无法向其中投入数据而等待。这就是一种相互合作关系,称之为进程间的同步关系。2信号量机制实现进程同步本文分析的生产者一消费者问题就是一种相互合作问题的代表,对进程同步问题的解决,早在1 9 6 5年,荷兰科学家D i j k s 仃a 就提出信号量机制是一种卓有成效的进程同步工具。在信号量机制中信号量仅能通过两个标准的原子操作w a i t(8)和8 i I l g r l a l(s)来访问。这两个操作被称为P V 操作。在信号量机制中除了需要一个用于代表资源数目
4、的整型变量v a l u e 外。还应增加一个进程链表L,用于链接上述的所有等待进程。记录型信号量是由于它采用了记录型的数据结构而得名的。它所包含的上述两个数据项可描述为:咖e 眦p h o 婶=r e c o r dv a l u e:i I I t c g e r;k l i 砒0 fp r 哪;E I I d相应地,w a i t(s)和s i n g a l(s)操作可描述为:P r o c e d u 把w a i t(8)v 盯8:m 叩h o 坨;B e g i nS v a l u e:=S V a l u e l:I fS v a l u e q Ot l I e nb l
5、o c k(S L)E n dP I _ o c e d u 聪s i 印a l(8)v a rS:s e m a p h o 陀;B e g i n收稿日期:2 0 0 9 一儿一0 6 修稿日期:2 0 0 9 1 2 0 4作者简介:徐曼(1 9 8 0 一),誊,石家庄人,助教,本科,研究方向为编程、计算机操作系统现代计算机总第三二-期v 万方数据理代计算机总第三一:期vS v a l u e:-s v 批+l;S v a l 眦=0t l l 朗w a l【e u p(S,L);E n d每次的w a i t 操作意味着进程请求一个单位的资源因此描述为S v a l u e:=S v
6、 a l u e-1;当S v a l u e O 时。表示资源已分配完毕。因而进程调用b k k 原语。进行自我阻塞,放弃处理机,并插入到信号量链表S L 中。S v a l u e 的绝对值表示在该信号量链表中已阻塞进程的数目。每次s i 朋a l 操作,表示执行进程释放一个单位资源故S v a l u e:=S v a l u e+1 操作表示资源数目加1。若加l 后仍是S v a l u e 0。则表示在该信号量链表中。仍有等待该资源的进程被阻塞,故还应调用珊k e u p 原语,将S U 链表中的第一个等待进程唤醒。3利用信号量解决生产者一消费者问题3 1 一个蛐,一个生产者,一个消
7、费者(1)规则只有b u 虢r 为空才能生产者才能进行p u t 操作,只有蝴曲有数据消费者才能进行舻t 操作。利用信号量机制实现消费者和生产者的协同工作其中信号量s l 代表的缓冲区这种资源。初值为1 代表有1个b u 脆r。s 2 代表b u 仃e r 是否有数据,初值为0,所以也称这种信号量叫做资源信号量。(2)实现流程p(8 1)”判断b u 晒是否为空”p u t放人数据v(s 2)”设置b u 虢r 有数据的标志,给消费者发一个有数椐的信号”p(B 2)”判断b u 在打是否有数据”g e t取走数据v(s 1)”设置b u r 为空标志”3 2 一个b 硼融,多个生产者,多个消费
8、者(1)规则只有b u 踮r 为空才能p u t;只有b u f 6 e r 中有数据才能g e t;不允许袅个p m 操作同时进行;不允许多个薛t 操作同时进行。这时b u 虢r 变成了临界资源消费者之间需要互斥地使用,生产者之间也需要互斥地使用消费者和生产者之间也需要互斥地使用这时设置两个信号量s l。s 2 实现同步,例外设置S 信号,代表b u r 这种临界资源,用于互斥。称之为互斥信号量。8 2(2)实现流程p(8 1)。判断b u 虢r 是否空”p(8)”是否可进行p u t,是否有其他进程占用b u 艉r f p u tv(s)。释放b u 雎r,让其他进程可以使用”v(8 2)
9、。给消费者进程释放一个b u 胜r 中有数据的信号”p(8 2)p(8)g e tv(8)v(s 1)”判断是否有数据”是否可进行8 e t,是否有其他进程占用”释放b u 虢r 让其他进程可以使用”给生产者释放一个b u 踮r 为空的信号”通过3 个信号量实现了消费者和生产者之间同步关系也保证了在某个时刻只有一个进程使用临界资源b u 船r。3 3 多个生产者,多个消费者,N 个b u 脑(1)规则任一时刻只允许一个进程操作b u 舶r。在生产者和消费者之间的公共缓冲池中,有n 个缓冲区,可利用互斥信号量s p g 使诸进程实现对缓冲池的互斥使用。利用资源信号量s 1,s 2 分别代表缓冲池
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 操作系统 生产者 消费者 问题 分析
限制150内