- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
四川大学操作系统课程设计第三次实验程序实验三 生产者消费者
实验三 生产者、消费者问题 2012-04 实验三 生产者、消费者问题 实验目的: 掌握基本的同步互斥算法,理解生产者和消费者模型。 了解Windows 2000/XP中多线程的并发执行机制,线程间的同步和互斥。 学习使用Windows 2000/XP中基本的同步对象,掌握相应的API 实验三 生产者、消费者问题 课件的内容组织: (一)相关基础知识1、进程同步2、同步对象 3、生产消费者模型 模型特点(缓冲池、生产和消费的规则、测试用例) 实验三 生产者、消费者问题 课件的内容组织: (二)程序的实现: 1、实验环境 2、相关API:有关操纵同步对象API 实验三 生产者、消费者问题 程序的结构 .函数: 一个主函数、 两个模拟(生产、消费)函数、 三个辅助函数 .数据结构: 产品缓冲区、 线程信息、 同步对象(写写互斥:互斥量;读写同步:信号量;读互斥:临界区;临界资源:信号量) 实验三 生产者、消费者问题 相关基础知识——进程同步1 实验三 生产者、消费者问题 进程相互间的制约关系: ◆间接相互制约:源于各进程对临界资源的访问,用互斥方式协调进程 ◆直接相互制约:源于进程间为共同完成任务的相互合作,用同步方式协调进程 实验三 生产者、消费者问题 同步对象:是指Windows用来实现同步和互斥的实体。 下面是常见的同步对象:信号量(Semaphore)、互斥量(Mutex)、临界段(Critical Section)事件(Event)等。 实验三 生产者、消费者问题 同步对象的使用: ①创建或者初始化; ②请求该同步对象,随即进入临界区,这一步对应于互斥量的上锁; ③释放该同步对象,这一步对应于互斥量的解锁。 实验三 生产者、消费者问题 通常这些对象是全局的,或者对相关进程(或线程)来说是全局的,所以可以在一个进程中创建的同步对象,在其他线程中都可以使用,从而实现了同步互斥。互斥量、信号量、事件可以跨线程甚至跨进程使用以实现同步。 实验三 生产者、消费者问题 模型特点: 主进程中创建n个线程来模拟生产者或者消费者。生产者生产产品,消费者只消费指定生产者的产品。 实验三 生产者、消费者问题 缓冲池(本实验是数组)代表产品,缓冲池的不同值代表产品的状态: -1:空闲; -2:被写状态; 其他值(大于0):可消费的产品编号(以生成者的线程编号表示) 实验三 生产者、消费者问题 缓冲池不是环形循环的,也不要求按顺序访问。生产者可以把产品放到目前某一个空缓冲区中。 共享缓冲区作为空闲空间的条件:共享缓冲区的数据满足了所有关于它的消费需求,此时该空闲空间允许新的生产者使用。 实验三 生产者、消费者问题 为生产者分配缓冲区时各生产者间必须互斥,此后各个生产者的具体生产活动可以并发。 消费者之间只有在对同一产品进行消费时才需要互斥,同时在消费过程结束时需要判断该消费对象是否已经消费完毕并清除该产品。 实验三 生产者、消费者问题 线程信息的结构:线程信息写入“测试用例文件” (为一个文本文件)中,格式和含义如下: 3 1 P 3 2 P 4 3 C 4 1 4 P 2 5 C 3 1 2 4 实验三 生产者、消费者问题 第一行说明程序中设置几个缓冲区,其余每行分别描述了一个生产者或者消费者线程的信息。 每一行的各字段间用Tab键隔开。不管是消费者还是生产者,都有一个对应的线程号,即每一行开始字段那个整数。 实验三 生产者、消费者问题 第二个字段用字母P或者C区分是生产者还是消费者。 第三个字段表示在进入相应线程后,在进行生产和消费动作前的休眠时间,以秒计时;通过调整这一列参数,控制开始进行生产和消费动作的时间。 实验三 生产者、消费者问题 如果是代表生产者,则该行只有三个字段。如果代表消费者,则该行后边还有若干字段,代表要求消费的产品所对应的生产者的线程号。 生产和消费的规则: ◆共享缓冲区存在空闲空间时,生产者即可使用共享缓冲区。 实验三 生产者、消费者问题 ◆某一生产者生产一个产品后,可能不止一个消费者,或者一个消费者多次地请求消费该产品。此时,只有当所有的消费需求都被满足以后,该产品所在的共享缓冲区才可以被释放,并作为空闲空间允许新的生产者使用。 实验三 生产者、消费者问题 ◆每个消费者线程的各个消费需求之间存在严格的先后顺序。 如 “5 C 3 1 2 4”,可知这代表一个消费线程,该线程请求消费顺序严格为1、2、4号生产者线程生产的产品。 实验三 生产者、消费者问题 WindowsXP + VC++6.0 利用Windows SDK提供的系统接口(API,应用程序接口)完成程序的功能
您可能关注的文档
- 喜达屋酒店集团-主管的有效沟通培训课程.ppt
- 商贸翻译艰难有出路.ppt
- 喝水不够对身体造成的不良后果.doc
- 喷漆过程控制.ppt
- 喷射阀 工作原理.pptx
- 商英谈判 温德姆酒店ppt.ppt
- 喜达屋酒店集团前厅部操作程序.doc
- 嘉兴英语教学.doc
- 噬血细胞综合征发病机制、诊断和治疗.ppt
- 噻呋酰胺-满穗.ppt
- 四川省2016届高三高考适应性测试英语试题(含答案).doc
- 四川省2017高考英语完形和阅理类指导选练(一)及答案.doc
- 四川省2017中考数学专题突破复习:题型专项(十一) 几何图形综合题.doc
- 四川省2017高考英语完形和阅理类指导选练(八)及答案.doc
- 四川省乐山一中12-13学年高二下学期第一次段考英语试题.doc
- 四川省乐山市2017届高三下学期第二次调研考试英语试题 Word版含答案.doc
- 四川省仁寿县2016年中考二模英语试卷含答案.doc
- 四川省凉山州2017届高中毕业班第三次诊断性检测英语试题 Word版含答案.doc
- 四川省内江市2015年中考地理试题(word版含解析).doc
- 四川大学英语全新版Unit3.ppt
文档评论(0)