电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

2011061324张耀(第五讲进程的同步)VIP免费

2011061324张耀(第五讲进程的同步)_第1页
1/14
2011061324张耀(第五讲进程的同步)_第2页
2/14
2011061324张耀(第五讲进程的同步)_第3页
3/14
操 作 系 统 实 验 报 告 课程名称 操作系统实验 课程编号 0906553 实验项目名称 进程的同步 学号 ********** 年级 2011 姓名 张耀 专业 计算机科学与技术 学生所在学院 计算机科学与技术 指导教师 印桂生 实验室名称地点 21B 276 哈尔滨工程大学 计算机科学与技术学院 1 第五讲 进程的同步 一、实验概述 1. 实验名称 进程的同步 2. 实验目的 (1)使用EOS 的信号量,编程解决生产者—消费者问题,理解进程同步的意义; (2)调试跟踪 EOS 信号量的工作过程,理解进程同步的原理; (3)修改 EOS 的信号量算法,使之支持等待超时唤醒功能(有限等待),加深理解进程同步的原理。 3. 实验类型 验证型和设计型实验 4. 实验内容 (1)准备实验; (2)使用 EOS 的信号量解决生产者-消费者问题; (3)调试 EOS 信号量的工作过程; 创建信号量 等待释放信号量 等待信号量(不阻塞) 释放信号量(不唤醒) 等待信号量(阻塞) 释放信号量(唤醒) (4)修改 EOS 的信号量算法。 二、实验环境 (1)OSLab 集成实验环境; (2)EOS 操作系统; (2)C 语言。 三、实验过程 1. 设计思路和流程图 2 图3.1.1 2. 需要解决的问题及解答 (1) 生产者在生产了13号产品后本来要继续生产14号产品,可此时生产者为什么必须等待消费者消费了4号产品后,才能生产14号产品呢?生产者和消费者是怎样使用同步对象来实现该同步过程的呢? 答:因为临界资源的访问限制,程序中限定了缓冲池的大小为10,只有缓冲池有空余时生产者才能向里边放产品,同时只有缓冲池有产品时消费者才能向外取东西。当生产者生产了13号产品后,共生产了从0到13的14个产品,但是只消费了从0到3的4个产品,所以缓冲池中的10个缓冲区就都被占用了,所以不能继续生产14号产品,而要等到消费者消费掉一个产品后,缓冲池有空余位置,才能main 函数开创 建 Mu tex创 建 Empty信号量对象 创建 Fu ll 信 号量对象 创 建 生产者创 建 消费者等待生产者线程和消费者线程结关闭句柄 main 函数结Produ cer 函 数生产完等待Empty 信等待Mu tex 对生产一 个 产品,占用一个循环向后移动缓冲区指针 释放Mu tex 对释放Fu ll 信号等待500 毫Produ cer函Consu mer函数开消费等待Fu ll 信号量等待Mu tex消费一个产品,清空一个缓冲区 循 环 向后移释 放Mu tex释放Empty 信号量...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

2011061324张耀(第五讲进程的同步)

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部