"山东大学操作系统实验报告4:进程同步实验-抽烟者问题的 IPC 同步机制编程"
需积分: 15 17 浏览量
更新于2024-01-01
2
收藏 469KB DOC 举报
山东大学操作系统实验报告4进程同步实验.doc
本次实验的目的是加深对并发协作进程同步与互斥概念的理解,观察和体验并发进程同步与互斥操作的效果,分析与研究经典进程同步与互斥问题的实际解决方案。同时,我们也要了解 Linux 系统中 IPC 进程同步工具的用法,并练习并发协作进程的同步与互斥操作的编程与调试技术。
实验内容是实现“抽烟者问题”。假设一个系统中有三个抽烟者进程,每个抽烟者不断地卷烟并抽烟。抽烟者卷起并抽掉一颗烟需要有三种材料:烟草、纸和胶水。一个抽烟者有烟草,一个有纸,另一个有胶水。系统中还有两个供应者进程,它们无限地供应所有三种材料,但每次仅轮流提供三种材料中的两种。得到缺失的两种材料的抽烟者在卷起并抽掉一颗烟后会发信号通知供应者,让它继续提供另外的两种材料。这一过程不断重复。
为了实现这个问题,我们采用了 IPC 同步机制进行编程。首先,我们需要一个共享资源池,用来存放材料。这个共享资源池可以由两个供应者进程交替地提供材料,并由抽烟者进程使用。为了保证同一时间只有一个进程能够访问共享资源池,我们使用了信号量来实现互斥。当一个抽烟者进程需要材料时,它会尝试获取共享资源池的信号量,如果获取失败,则进程被阻塞,直到有材料可用。当一个供应者进程提供完材料后,会发送信号通知阻塞的抽烟者进程,让它继续执行。
在具体的编程实现中,我们使用了Linux系统中的IPC工具,包括信号量和共享内存。信号量用于实现互斥和同步,共享内存用于存放共享资源池。通过在进程中对信号量和共享内存的操作,我们实现了抽烟者问题的功能。
在硬件环境方面,我们使用了Intel® Core™ i3-2350M CPU处理器,2.30GHz × 4的图形芯片和4G的内存。
通过本次实验,我们深化了对并发协作进程同步与互斥概念的理解,观察和体验了并发进程同步与互斥操作的效果。同时,我们也学习了Linux系统中IPC进程同步工具的用法,并练习了并发协作进程的同步与互斥操作的编程与调试技术。这些知识和经验对于我们进一步学习操作系统和并发编程都具有重要的意义。
2021-10-12 上传
2022-06-22 上传
2021-10-06 上传
2022-12-22 上传
2022-12-22 上传
2022-12-22 上传
智慧安全方案
- 粉丝: 3837
- 资源: 59万+
最新资源
- 基于元胞自动机的拓扑排序算法(pdf)
- RISC-DSP组合处理器设计优化
- ATL-之深入淺出,ATL是ActiveX Template Library 的缩写,它是一套C++模板库。
- c语言的面相对象设计
- GCC中文手册-gcc中文手册-相当详细的使用讲解手册
- VB小程序随即选数程序源码
- CSS及其应用 书籍
- 图书馆管理系统 需求分析
- IC生产流程与测试系统
- 达内实训笔记相关下载
- RDLC使用手册v2
- Quartus常见错误分析.doc
- VC++ 中实现进制2进制,10进制,16进制的相互转换
- IFIX 154学生手册
- Thinking.In.Java.3rd.Edition.Chinese.eBook
- css2.0高级技巧