实验二进程同步实验报告

上传人:bin****86 文档编号:59980248 上传时间:2018-11-13 格式:DOCX 页数:6 大小:16.88KB
返回 下载 相关 举报
实验二进程同步实验报告_第1页
第1页 / 共6页
实验二进程同步实验报告_第2页
第2页 / 共6页
实验二进程同步实验报告_第3页
第3页 / 共6页
实验二进程同步实验报告_第4页
第4页 / 共6页
实验二进程同步实验报告_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《实验二进程同步实验报告》由会员分享,可在线阅读,更多相关《实验二进程同步实验报告(6页珍藏版)》请在金锄头文库上搜索。

1、为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划实验二进程同步实验报告实验报告操作系统实验进程同步互斥Exe1:观察多进程对共享文件的写入情况。编写程序:打开共享文件,由父进程创建两个子进程,父进程和两个子进程分别连续向共享文件中写入多行字符串。多次运行程序,或更改写入行数,观察分析共享文件的写”。Exe2:观察多进程通过共享文件进行通信或合作情况。编写程序:打开共享文件,由父进程创建一个子进程,父进程从外界获取字符串,并将其写入共享文件;子进程从共享文件中获取字符串,并将其输出出来。多次运行程序,观察分析进程运行结果。Exe3:

2、在上述1、2实验程序基础上,用lock/unlock系统调用实现对共享文件的同步互斥访问,多次运行程序,观察分析运行结果。进程管理实验报告1实验目的:理解进程/线程同步的方法,学会运用进程/线程同步的方法解决实际问题;了解windows系统或unix/linux系统下中信号量的使用方法。2实验内容编写一个有关生产者和消费者的程序:每个生产者每次生产一个产品存入仓库,每个消费者每次从仓库中取出一个产品进行消费,仓库大小有限,每次只能有一个生产者或消费者访问仓库。要求:采用信号量机制。3、环境说明本实验是在win7环境下使用dev编译器实现的,采用WinAPI的信号量机制。4、程序设计说明该程序根

3、据教材中的消费者生产者问题编写的,使用了教材中提供的框架思路以及库函数,使用CreateThread建立新的线程,使用CreateMutex创建一个互斥信号量,使用CreateSemaphore创建信号量,使用ReleaseMutex释放线程的互斥信号量,使用ReleaseSemaphore对指定的信号量增加指定的值,使用WaitForSingleObject等待空位,使用CloseHandle在操作结束后关闭线程和信号量。在这个程序里我设计了三个函数:Intmain是主函数,其中包含了缓冲区大小的设置,生产者消费者发出请求等内容以及线程创建等内容DWORDWINAPIproducer(LPV

4、OIDlpPara)是生产者等待缓冲区的使用权并对缓冲区进行操作DWORDWINAPIconsumer(LPVOIDlpPara)是消费者等待缓冲区的使用权并对缓冲区进行操作该程序模拟生产者消费者问题,首先要设置缓冲区的大小,输入请求资源的各个进程的信息以及请求时间,并且按照请求时间对各进程进行排序,创建线程,然后按序依次对缓冲区进行操作,详细设计见源代码。5、程序运行结果截图:只有生产者请求,没有消费者请求,请求满足只有消费者请求,没有生产者请求,消费者的请求不成功:生产者请求大于消费者请求并且消费者请求在生产者放入产品之后:消费者请求多于生产者请求,只能满足部分消费者请求,不能满足全部:6

5、、源代码:#include#include#include#include#include#includeusingnamespacestd;#defineMAX_BUF1000#defineMAX_REQ20HANDLEmutex;HANDLEfull;HANDLEempty;HANDLEthreadMAX_REQ;DWORDpro_idMAX_REQ;DWORDcon_idMAX_REQ;structrequestinttype;/记录生产者消费者的类型intseq;/记录请求次序reqMAX_REQ;intbuf_size;intreq_size;intno;intbufferMAX_B

6、UF;intin;intout;intresult;boolcmp(requesta,requestb);DWORDWINAPIproducer(LPVOIDlpPara)WaitForSingleObject(full,INFINITE);WaitForSingleObject(mutex,INFINITE);printf(生产者%d将第%d号产品放入缓冲区n,(int)lpPara,no);bufferin=no+;in=(in+1)%buf_size;printf(成功放入缓冲区!nn,(int)lpPara);ReleaseMutex(mutex);ReleaseSemaphore(e

7、mpty,1,NULL);return0;DWORDWINAPIconsumer(LPVOIDlpPara)WaitForSingleObject(empty,INFINITE);WaitForSingleObject(mutex,INFINITE);printf(消费者%d将第%d号产品从缓冲区取出n,(int)lpPara,bufferout);bufferout=0;printf(成功从缓冲区取出!nn,(int)lpPara);ReleaseMutex(mutex);out=(out+1)%buf_size;ReleaseSemaphore(full,1,NULL);return0;目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 总结/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号