操作系统实验5.docx

上传人:b****7 文档编号:10428851 上传时间:2023-02-11 格式:DOCX 页数:10 大小:233.37KB
下载 相关 举报
操作系统实验5.docx_第1页
第1页 / 共10页
操作系统实验5.docx_第2页
第2页 / 共10页
操作系统实验5.docx_第3页
第3页 / 共10页
操作系统实验5.docx_第4页
第4页 / 共10页
操作系统实验5.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

操作系统实验5.docx

《操作系统实验5.docx》由会员分享,可在线阅读,更多相关《操作系统实验5.docx(10页珍藏版)》请在冰豆网上搜索。

操作系统实验5.docx

操作系统实验5

操作系统

实验报告

课程名称

操作系统实验

实验项目名称

进程的同步

学号

班级

姓名

专业

学生所在学院

指导教师

实验室名称地点

 

 

一、实验概述

1.实验名称

进程的同步

2.实验目的

使用EOS的信号量,编程解决生产者消费者问题,理解进程同步的意义。

3.实验类型

验证

二、实验环境

OSLab

三、实验过程

3.2查看生产者消费者同步执行的过程:

3.3调试EOS信号量的工作过程

3.3.1创建信号量

进入CreateSemaphore函数

进入PsCreateSemaphoreOobject函数

观察PsInitiaIzeSemaphore函数中用来初始化信号量结构体成员的值与传入CreateSemaphore函数的参数值一致。

调用堆栈,查看函数的调用层次

3.2.2等待,释放信号量

3.2.2.1等待信号量

在144行插入断点

在68行插入断点

Empty的值为0xa

完成PsWaitForSemaphore函数中的所有操作,Empty减少了1

3.3.2.2释放信号量

在152行插入断点

Full信号量为0

完成PsReleaseSemaphore函数中所有操作后,Full信号量变为1

3.3.2.3等待信号量

在78行插入断点,调试

Producer:

14

查看Empty的值为-1

查看输出结果:

3.3.2.4释放信号量

Consumer的值变为4

Empty信号量的值为-1

Empty信号量的值由-1变为0

验证生产者线程被唤醒后是从之前被阻塞时的状态继续执行的:

Empty的信号量计数的值为0:

查看Producer函数中变量i的值为14

3.4修改EOS的信号量算法

修改后的PsWaitForSemaphore

修改后的PsReleaseSemaphore

测试

执行原有的生产者-消费者应用程序项目,结果与13-2一致

修改Producer和Consumer函数后消费两个产品

四、思考题

1.缓冲区只有十个空间,现在装了4到13号十个产品,消费者只消费了三个,所以生产者不能继续装入产品,必须等消费者消费了4号产品才能继续生产14号产品。

2.

PsWaitForSemaphore流程图

PsReleaseSemaphore流程图

五、实验体会

通过本实验我学会了使用EOS信号量,编程解决生产者-消费者问题,理解了进程同步的意义,原理,通过修改EOS的信号量的算法,使之支持等待超时唤醒功能,加深理解进程同步的原理。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1