欢迎来到天天文库
浏览记录
ID:36611401
大小:35.00 KB
页数:6页
时间:2019-05-12
《进程间基于共享存储区的通信》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、6实现工具PC机一台,Putty软件实现环境Linux系统环境实习内容(功能、目标)功能:编写一段程序,同时父进程创建两个子进程p1和p2;并使子进程p1与子进程p2通过共享存储区相互发送数据(512字节)。目标:(1)系统了解linux系统的通信机构IPC,掌握IPC中共享存储区通信机制,理解共享存储区通信的方法及特征;(2)掌握系统调用shmget()、shmat()、shmdt()、shmctl()的使用方法及其功能,理解共享存储区通信原理;(3)系统理解linux的三种通信机制。实现的思想、方法和技术(含数据结构、算法)进程能够
2、通过共享虚拟地址空间的若干个部分,然后对存储在共享存储区中的数据进行读和写来直接的彼此通信。操纵共享存储区的系统调用类似于消息机制,共有4个系统调用:intshmget(key_t,size_tsize,intshmflg);void*shmat(intshmid,constvoid*shmaddt,intshmflg);intshmdt(constvoid*shmaddr);intshmct1(intshimd,intcmd,structshmid_da*buf);建立新的共享区或返回一个已存在的共享存储区描述字的shmget(key
3、,size,flag);将物理共享区附接到进程虚拟地址空间的调用shmat(shmid,addr,flag);进程从其虚拟地址空间断接一个共享存储区的系统调用shmdt(addr);查询及设置一个共享存储区状态和有关参数的系统调用shmct1(shmid,cmd.buf).6主要代码注释#include#include#include#include#include#include#include4、.h>#include#defineSHMKEY25#defineK1024intshmid;main(){inti,*pint,p1,p2;char*addr;while((p1=fork())==-1);if(p1==0){;头文件;创建子进程6shmid=shmget(SHMKEY,16*K,07775、IPC_CREAT);addr=shmat(shmid,0,0);pint=(int*)addr;for(i=0;i<5;i++){*pint=i;}Printf(“111111111%d”,*pint);6、*pint++;}Sleep(3);Shmctl(shmid,IPC_RMID,0);}Else{while((p2=fork())==-1);if(p2==0){shmid=shmget(SHMKEY,8*K,0777);addr=shmat(shmid,0,0);pint=(int*)addr;for(i=0;i<5;i++){printf("22222222%d",*pint);}}创建共享存储区向共享存储区里写入数据创建子进程输出存储区中的数据6}}6结果分析(含实现中出错原因分析)实验结果如上截屏,实验过程中没有遇到问题。7、程序通过子进程p1向共享存储区中写入数据,然后等待p2进程输出共享存储区中的数据。体验到了共享存储区的使用方法和原理。指导教师评语、评分评分:指导教师:年月日6
4、.h>#include#defineSHMKEY25#defineK1024intshmid;main(){inti,*pint,p1,p2;char*addr;while((p1=fork())==-1);if(p1==0){;头文件;创建子进程6shmid=shmget(SHMKEY,16*K,0777
5、IPC_CREAT);addr=shmat(shmid,0,0);pint=(int*)addr;for(i=0;i<5;i++){*pint=i;}Printf(“111111111%d”,*pint);
6、*pint++;}Sleep(3);Shmctl(shmid,IPC_RMID,0);}Else{while((p2=fork())==-1);if(p2==0){shmid=shmget(SHMKEY,8*K,0777);addr=shmat(shmid,0,0);pint=(int*)addr;for(i=0;i<5;i++){printf("22222222%d",*pint);}}创建共享存储区向共享存储区里写入数据创建子进程输出存储区中的数据6}}6结果分析(含实现中出错原因分析)实验结果如上截屏,实验过程中没有遇到问题。
7、程序通过子进程p1向共享存储区中写入数据,然后等待p2进程输出共享存储区中的数据。体验到了共享存储区的使用方法和原理。指导教师评语、评分评分:指导教师:年月日6
此文档下载收益归作者所有