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

操作系统实验五

操作系统实验五_第1页
1/23
操作系统实验五_第2页
2/23
操作系统实验五_第3页
3/23
操作系统实 验 报 告课程名称操作系统实验课程编号0906553实验项目名称进程的同步学号年级姓名专业学生所在学院指导老师实验室名称地点 哈尔滨工程大学计算机科学与技术学院第五讲 进程的同步一、实验概述1. 实验名称进程的同步2. 实验目的使用EOS的信号量,编程解决生产者—消费者问题,理解进程同步的意义。 调试跟踪EOS信号量的工作过程,理解进程同步的原理。 修改EOS的信号量算法,使之支持等待超时唤醒功能(有限等待),加深理解进程同步的原理。 3. 实验类型验证,设计4. 实验内容4.1 准备实验 4.2 使用 EOS 的信号量解决生产者-消费者问题4.3 调试EOS信号量的工作过程 4.3.1 创建信号量 4.3.2 等待、释放信号量4.3.2.1 等待信号量(不堵塞)4.3.2.2 释放信号量(不唤醒)4.3.2.3 等待信号量(堵塞)4.3.2.4 释放信号量(唤醒)4.4 修改 EOS 的信号量算法二、实验环境操作系统集成实验环境 OS Lab  EOS 操作系统三、实验过程1. 设计思路和流程图2. 需要解决的问题及解答(1). P143生产者在生产了13号产品后原来要继续生产14号产品,可此时生产者为什么必须等待消费者消费了4号产品后,才能生产14号产品呢?生产者和消费者是怎样使用同步对象来实现该同步过程的呢?答:此时生产了0-13号14个产品,消费了0-3号4个产品,缓冲区都占满了。只有缓冲区有空闲生产者才能生产东西,有权向里面放东西。所以它必须等到消费者,取走产品,有空闲缓冲区时,才继续生产14号产品。(2). P145-3.4 修改EOS的信号量算法(只看一次消费1个产品的,一次消费2个产品的可以写到实验报告中)答:见之后部分(3). 思考在ps/semaphore.c文件内的PsWaitForSemaphore和PsReleaseSemaphore函数中,为什么要使用原子操作? 答:原子操作要求一旦开始就要运行到结束,不能有中断。在执行等待信号量和释放信号量的时候,不允许 cpu 响应外部中断,所以使用原子操作。(4). 绘制ps/semaphore.c文件内PsWaitForSemaphore和PsReleaseSemaphore函数的流程图。PsWaitForSemaphore原子操作前关中断开始原子操作 P 操作P 操作结束Wait 操作的信号量大于 0Y执行 P 操作NPs Release Semaphore3. 主要数据结构、实现代码及其说明ps/semaphore.c 文件#include "psp.h"VOIDPsInitializeSemaphore(IN PSEMAPHORE Semaphore,IN LONG InitialCount,原子操作前关中断开始原子操作 V 操作返回“信号数目量超出范...

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

碎片内容

操作系统实验五

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