没有合适的资源?快使用搜索试试~ 我知道了~
首页山东大学操作系统nachos实验报告
资源详情
资源评论
资源推荐
计算机科学与技术学院实验报告:
实验题目:信号量同步问题
日期: 姓名:
实验目的:
在本次实验中,通过使用信号量,在原有的程序框架的基础上添加关键代码实
现生产者消费者同步问题。从而深入理解 的信号量的使用以及实现,
生产者消费者问题是如何用信号量实现的以及
在 中是如何创建线程,实现多线程。
硬件环境:
软件环境:
实验步骤:
首先初始化三个信号量,代码如下:
信号量初始化为 ,才能起到加锁
功能
!""!"" !"" 的大小在生产者没生产前为
##$%&&'()* # 的大小应该为
+, 的大小
首 先 考 虑 生 产 者 进 程 ,首先要 查 看 +, 是 否 有 空 #-. !
#-##,当对缓冲区操作时必须要加锁:
-. 加锁
然后向 / 中放入 / 信息,其次还要解锁 -0 解锁最后通
知消费者 +, 有新信息!""-0 !""!""1;具体实现代码如下:
考虑消费者进程,像生产者进程一样,查看 +, 中是否有信息
!""-. !!""-!"";取消息时也要上锁,即:-. 加锁
然后从 /+, 中取出信息;其次 -0 解锁;最后通知生产者
+, 有空 #-0 ##1,具体代码如下:
2创建线程生成一个生产者的代码:
345633'45
345-&7.3
2创建线程生成一个消费者的代码:
345633'45
345-&7.3
关键代码:
83
.3'
9
":/"
! ;'<*= 119
这是消息创建的代码
/-3'3
/-8"
8操作
#-.
-.
/-./
8操作
-0
!""-0
>
>
83
?'
9
4<@A*5
!4(**5
!3
":/"
!!'B3
C"%(A#""
!!3!D
9
EC"!"3
*
>
! 9
8操作
!""-.
-.
/-=/
8操作
-0
#-0
!/3/
!33-B3 </+-B3 F
/-3'3
/-8"
把信息写入文件
!!3"9
E!"3
*
>
>
>
.3?
初始化信号量以及需要的生产者消费者线程
83
.3?
9
G*$%=HH*/.3?
// 初始化信号量,包括一个访问互斥信号量,初值为1;
//一个nempty信号量,初值为缓冲区的大小
//一个nfull的信号量,初值为0
##$%&&'()*
!""!""
新建一个缓冲区
/I/$%&&'()*1
3!7'.IJG!33
! ;'.IJG 11
9
!/+3!
33
!3'453'B3
创建生产者线程
345633'45
345-&7.3
>
3!7'?J!3
! ;'?J 11
9
!/+3!
!'45'B3
创建消费者线程
4563'45
45-&7?
>
>
调试记录:
在源代码中 没有大写,调试过程发现了这个问题改正,
在使用 系统调用写入文件时,有一个头文件没有引入,因而需要修改
K"3;3-
K"3#/
K"3#
K"3;3-
K"3;!"-
而且对于新添加的头文件的方法其中源文件使用的一个方法是废弃的,所以改
剩余53页未读,继续阅读
feifei1237
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 27页智慧街道信息化建设综合解决方案.pptx
- 计算机二级Ms-Office选择题汇总.doc
- 单链表的插入和删除实验报告 (2).docx
- 单链表的插入和删除实验报告.pdf
- 物联网智能终端项目设备管理方案.pdf
- 如何打造品牌的模式.doc
- 样式控制与页面布局.pdf
- 武汉理工Java实验报告(二).docx
- 2021线上新品消费趋势报告.pdf
- 第3章 Matlab中的矩阵及其运算.docx
- 基于Web的人力资源管理系统的必要性和可行性.doc
- 基于一阶倒立摆的matlab仿真实验.doc
- 速运公司物流管理模式研究教材
- 大数据与管理.pptx
- 单片机课程设计之步进电机.doc
- 大数据与数据挖掘.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论29