09实验5 文件读写及上锁文档格式.docx
- 文档编号:17646011
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:10
- 大小:914.93KB
09实验5 文件读写及上锁文档格式.docx
《09实验5 文件读写及上锁文档格式.docx》由会员分享,可在线阅读,更多相关《09实验5 文件读写及上锁文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
专业计算机科学与技术(专升本)
年级15级
组号09
成员1学号B2015102320成员1姓名陈朋朋
成员2学号B2015102323成员2姓名林振贤
指导教师黄进华
实验日期2016-5-10
实验目的与要求:
通过编写文件读写及上锁的程序,进一步熟悉Linux中文件I/O相关的应用开发,并且熟练掌握open(),read(),write(),fcntl()等等函数的使用。
实验设备(环境):
每组一台安装VMwareWorkstation的计算机。
实验内容:
在Linux中FIFO是一种进程之间的管道通信机制。
Linux支持完整的FIFO通信机制。
本实验内容,通过使用文件操作,仿真FIFO(先进先出)结构以及生产者-消费者运行模型。
本实验中需要打开两个虚拟终端,分别运行生产者程序(producer)和消费者程序(customer)。
此时两个进程同时对同一个文件进行读写操作。
因为这个文件是临界资源,所以可以使用文件
锁机制来保证两个进程对文件的访问都是原子操作。
先启动生产者进程,它负责创建
仿真FIFO结构的文件(其实是一个普通文件)并投入生产,就是按照给定的时间间隔
,向FIFO文件写入自动生成的字符(在程序中用宏定义选择使用数字还是使用英文字符)
,生产周期以及要生产的资源数通过参数传递给进程(默认生产周期为1s,
要生产的资源数为10个字符)。
后启动的消费者进程按照给定的数目进行消费,
首先从文件中读取相应数目的字符并在屏幕上显示,然后从文件中删除刚才消费过的数据。
为了仿真FIFO结构,此时需要使用两次复制来实现文件内容的偏移。
每次消费的资源数通过参数传递给进程,默认值为10个字符。
实验步骤:
详细描述实验的主要步骤,包括文字描述、实验结果截图等方式均可。
1.Producer.c
2.Customer.c
3.Lock_set.c
实验结果分析
1.生产者运行的截图
2.消费者运行的截图
实验总结(包括过程总结、心得体会及实验改进意见等):
1、过程总结:
学到的include的“”中不可以放入除了引用程序的任何东西,包括空格。
当引用“*.h”的文件是在编译的时候是:
“gcc*.c-I加“*.h”文件的路径-o*”。
cat加文件代表查看文件(不可修改)。
3.巩固了open、read、write、fcntl函数的运用,对于lock_set,lseek函数有了进一步的了解。
2、心得体会:
通过运行结果可以看出运行生产者的程序时在./produer后面加的数字可以控制一次生产多少的东西。
而消费者在可以消费的情况下一次固定消费10个。
在对应看看myfifo中生产的文件和消费文件发现遵循FIFO的规律,所以对于先进先出模拟成功。
指导教师评语:
成绩评定B
教师签字黄进华
2016年5月25日
备注:
注:
1、报告内的项目或设置,可根据实际情况加以补充和调整
2、教师批改学生实验报告应在学生提交实验报告10日内
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 09实验5 文件读写及上锁 09 实验 文件 读写 上锁