操作系统实验报告三大经典问题之生产者与消费者问题.pdfVIP

操作系统实验报告三大经典问题之生产者与消费者问题.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机操作系统实验报告 题 目 三 大 经 典 问题 之 生 产 者 与 消 费 者 问 题 一、 课程设计的性质与任务 1、加深对并发协作进程同步与互斥概念的理解。 通 过 编 写 程 序 实 现 进 程 同 步 和 互 斥 , 使 学 生 掌 握 有 关 进 程 (线 程 ) 同 步 与 互 斥 的 原 理 , 以及 解 决 进 程 (线 程 ) 同步 和 互 斥 的 算 法 , 从 而 进 一 步 巩 固 进 程 (线 程 ) 同 步 和 互 斥 等 有 关 的 内容 。 2 、 掌 握 进 程 和 线 程 的 概 念 , 进 程 (线 程 ) 的 控 制 原 语 或 系 统 调 用 的 使 用 。 3 、 了 解 Windows2000/XP 中 多 线 程 的并 发 执 行 机 制 , 线 程 间 的 同 步 和 互 斥 。学 习 使 用 Windows2000/XP 中 基 本 的 同 步 对 象 , 掌 握 相 应 的 API 函 数 。 4 、培养学生能够独立进行知识综合,独立开发较大程序的能力。 5、培养提高学生软件开发能力和软件的调试技术。 6、培养学生开发大型程序的方法和相互合作的精神。 7、培养学生的创新意识。 8、培养学生的算法设计和算法分析能力。 9、培养学生对问题进行文字论述和文字表达的能力。 二 、课程设计的内容及其要求 在 Windows?XP 、 Windows?2000 等 操 作 系 统 下 , 使 用 的 VC、 VB、 Java 或 C 等 编 程 语 言 ,采 用 进 程 (线 程 ) 同 步 和 互 斥 的 技 术 编 写 程 序 实 现 生 产 者 消 费 者 问 题 或 哲 学 家 进 餐 问题 或 读 者 - 写 者 问题 或 自 己 设 计 一 个 简 单 进 程( 线 程 )同 步 和 互 斥 的 实 际 问 题 。 要 求 : (1 ) 经 调 试 后 程 序 能 够 正 常 运 行 。 (2 )采 用 多 进 程 或 多 线 程 方 式 运 行 , 体 现 了 进 程 (线 程 ) 同 步 互 斥 的 关 系 。 (3 ) 程 序 界 面 美 观 。 三、实验原理 本 实 验 要 求 利 用 PV 操 作 实 现 解 决 生 产 者 — — 消 费 者 问 题 中 的 同 步 问题 。此 问 题 描 述 的 是 一 群 生 产 者 进 程 在 生 产 产 品 并 将 这 些 产 品 提 供 给 消 费 者 进 程 去 消 费 , 在 两 者 之 间 设 置 了 一 个 具 有 n 个 缓 冲 区 的 缓 冲 池 , 生 产 者 进 程 将 它 所 生 产 的 产 品 放 入 一 个 缓 冲 区 , 消 费 者 进 程 可 从 缓 冲 区 中 取 走 产 品去 消 费 , 但 它 们 之 间 必 须 保 持 同步 , 即 不 允 许 消 费 者 进 程 到 一 个 空 缓 冲 区 去 取 产 品 , 也 不 允 许 生 产 者 进 程 向 一 个 已装 满 且 尚 未 取 出 的缓 冲 区 中 投 放 产 品 , 并 且 生 产 者 消 费 者 互 斥 使 用 缓 冲 区 。 四 、 实 验 原 理 图 五、算法实现 (1)有一个生产者线程 ProduceThread ,有 1 个消费者进程 CustomerThread;缓冲区为 shareList 。 (2)使用线程同步:用 synchonized 关键字(加锁)使得一个时间内只能有一个线程得到 执行,另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块 ;wait() 让 线程进入等待状态; notify ()函数唤醒一个处于等待状态的线程。 (3)程序运行流程图如下: (如不在外部中断,程序将一直循环运行) 生产者 消费者 仓 库 是 否 否 生产者生产

文档评论(0)

wanggx999 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档