进程和进程管道通信实验

进程和进程管道通信实验

ID:26245840

大小:408.50 KB

页数:8页

时间:2018-11-25

进程和进程管道通信实验_第1页
进程和进程管道通信实验_第2页
进程和进程管道通信实验_第3页
进程和进程管道通信实验_第4页
进程和进程管道通信实验_第5页
资源描述:

《进程和进程管道通信实验》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、操作系统实验报告实验题目:线程和进/线程管道通信实验学号:201000301161日期:2012年04月12日班级:软件10级(1)班姓名:盛宇帆实验目标通过Linux系统中线程和管道通信机制的实验,加深对于线程控制和管道通信概念的理解,观察和体验并发进/线程间的通信和协作效果,练习利用无名管道进行进/线程间通信的编程和调试技术。实验要求设有二元函数f(x,y)=f(x)+f(y)其中:f(x)=f(x-1)*x(x>1)f(x)=1(x=1)f(y)=f(y-1)+f(y-2)(y>2f(y)=1(y=1,2)请编程建立3个并发协作进程,

2、它们分别完成f(x,y)、f(x)、f(y)实验的软硬件环境CPU英特尔酷睿i7四核2.53GHz主板LENOVO-英特尔HM65(CougarPoint)[B3]内存RamaxelTechnology4GDDR3SDRAM1333MHz双通道显卡ATIMobilityRadeonHD6500M主硬盘希捷500GB声卡HighDefinitionAudioController[B3]网卡英特尔WiFiLink1000BGN实验思路本实验的设置首先要参考到实验一中的协同进程运行。首先创建3个子进程,分别处理f(x)、f(y)、f(x,y)。由

3、于f(x)和f(x,y)、f(y)和f(x,y)之间需要交换数据,参考实验手册可以发现:管道是半双工的,所以需要4个管道。再加上管道默认的同步方式是同步读写,所以可以建立低些的循环,进行运算。实验的模型描述1、进程创建2、管道通信:主要数据结构分析说明intpid1,pid2,pid3;创建将要生成的3个进程号intpipe1[2];传递X数据的无名管道标号intpipe2[2];传递y数据的无名管道标号intpipe3[2];传递fX数据的无名管道标号intpipe4[2];传递fy数据的无名管道标号intx,y;存放自变量intx_ma

4、x=10;inty_max=10;存放自变量的最大值intfx,fy;存放函数值intfx_t;存放f(x-1)intfy_a;存放f(y-2)intfy_b;存放f(y-1)实验投入的实际学时数2+4个学时(1个学时差不多1小时)2个小时是在实验室的,4个小时是课余的调试排错过程的记录调试中的错误,这个怎么说呢?由于看题目没有仔细看。将f(x)函数的运算式看成①x=1;f(x)=1②x>1;f(x)=x*(x-1)所以测试的结果一直和别人的答案不一样,最后经过仔细检查,才发现这个极其粗心的错误。多种方式探测结果的记录(图片可以放大看)(图

5、片可以放大看)实验结果的分析综合首先进程3向管道1中写入x=1,进程1从管道1中读取x进行运算,然后将fx向管道3中写入。然后循环将y=1~10依次写入管道2,进程2从管道2中读取y然后进行运算,将fy向管道4写入,进程3从管道4读取fy然后运算。进程3和进程2之间的循环读取完毕后。X加1存入管道1。继续一个新的循环。实验中遇到哪些问题和解决的办法问题就是f(x)、f(y)的运算。需要考虑到f(x-1)、f(y-1)一类的。最后的解决办法,就是定义几个临时变量用于存放,运算后更新数值。实验结果达到设计目标的程度100%,我肯定还可以进行哪些

6、改进暂时没有想到,如果有的话,就是,单独输出f(x),f(y)。之后再输出f(x,y)。实验得到哪些收获和启发熟悉了Linux的进程创建过程,和进程间的调度。父子进程的执行顺序。熟悉了进程间通信。学会使用管道传递消息。参考文献1、操作系统概念(第七版)郑扣根翻译2、C程序设计(第四版)谭浩强著3、操作系统实验指导书2012版张鸿烈著程序源代码/**Filename:ppipe.c*Copyright:(C)2012bysyhily*Function:利用管道实现在三个并发子进程间的消息通信*/#include#includ

7、e#include#include//进程自定义的键盘中断信号处理函数typedefvoid(*sighandler_t)(int);voidsigcat(){}intmain(){intpid1;intpid2;intpid3;//创建将要生成的3个进程号intpipe1[2];//存放X数据的无名管道标号intpipe2[2];//存放y数据的无名管道标号intpipe3[2];//存放fX数据的无名管道标号intpipe4[2];//存放fy数据的无名管道标号intx;int

8、y;//存放自变量intx_max=10;inty_max=10;//存放自变量的最大值intfx;intfy;//存放函数值intfx_t;//存放f(x-1)intfy_a;

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。