欢迎来到天天文库
浏览记录
ID:20468383
大小:55.30 KB
页数:5页
时间:2018-10-12
《操作系统进程间通信试验报告》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、《操作系统原理》实验报告专业班计科1304学号:201316010410姓名:实验三进程间通信实验时间:4.30【实验目的】Linux系统的进程通信机构(IPC)允许在任意进程间人批ft的交换数据。本实验的目的是了解和熟悉Linux支持的通信机制、共亨存储区机制及信号量机制。【实验环境】安装了Linux操作系统的PC机。【实验内容】1.消息的创建,发送和接收2.使用系统调用msgget(),msgsndO,msgrev()及msgctl()编制一长度为lk的消息发送和接收程序。〈程序设计〉(1)为了便
2、于操作和观察结果,用一个程序作为“引子”,先后fork()两个子进程,SERVER和CLTENT,进行通信。(2)SERVER端建立一个Key力75的消息队列,等待其他进程发来的消息。当遇到类型为1的消息,则作为结束信号,取消该队列,并退出SERVER。SERVER每接收到一个消息后显示一句“(server)received”。(3)CLIENT端使用Key为75的消息队列,先后发送类型从10到1的消息,然后退!li。最后一个消息,即是SERVER端需要的结束信号。CLIENT每发送一条信息后显示一句
3、“(client)sent”。(4)父进程在SERVER和CLIENT均退出后结束。【实验步骤】1,启动计算机并运行linux系统2,打开中断进行程序书写3,根据Linux系统的gcc自带编译器进行运行编译4,分析运行出现的问题5,观察运行结果,并思考6,退出中断并写出实验报告实验所需代码:#include//include#defineMSGKEY75structmsgform{longmtype;charmtext[1030];}msg;intmsgqi
4、dj;voidCLIENTO{inti;msgqid=msgget(MSGKEY,0777);for(i=10;i>=l;H{msg.mtype=i;printf("(client)sent");msgsnd(msgqid,&msg,1024,0);/*发送消息msg入msgid消息队列*/}exit(O);}voidSERVERf){msgqid=msgget(MSGKEY,07771IPC_CREAT);/*由关键字获得消息队列*/do{msgrcv(msgqid,&msg,1030,0z0)
5、;/*从msgid消息队列接收消息msg*/printf("(server)received");}while(msg.mtype!=l);msgctl(msgqid,IPC_RMID,O);exit⑼;}voidmain(){/*消息类型为1时,释放队列*/while((i=fork())==-l);if(!i)SERVER();while((i=fork())==-l);if(!i)CLIENT();wait(O);wait(O);【实验结果】x-fouder(0>a-37:-fouder@a
6、-37:-$gcc-o111tongxtn.ctongxln.c:在函数"CLIENT’中:tongxln.c:21:4:警告:隐式声明与内建函数'exit/不兼容[默认启用]tongxin.c:在函数'SERVER'中:tongxin.c:32:3:警告:隐式声明与内建函数‘exit’不兼容[默认启用]fouder@a-37:-$./111(client)sent(clxent)sent(cltent)sent(client)sent(cllent)sent(client)sent(client)s
7、ent(client)sent(client)sent(cllent)sent(server)received(server)received(server)received(server)received(server)received(server)recelved(server)received(server)receivedx-aPouder®>a-37:tongxln.c:在函数'SERVER’中:tongxin.c:32:3:餐告:隐式声明与内建函数'exit'不兼容[默认启用]foude
8、「@a-37:~$./111(cllent)sent(client)sent(cllent)sent(client)sent(client)sent(cltent)sent(client)sent(cltent)sent(client)sent(client)sent(server)received(server)received(server)recetved(server)recetved(server)received(server)recetve
此文档下载收益归作者所有