- 49
- 0
- 约3.42万字
- 约 65页
- 2018-06-30 发布于辽宁
- 举报
内蒙古师大计算机与信息工程学院
《操作系统》课程实验报告
实习题目 实验四 进程间基于消息队列的通信 指导教师 职 称 学生姓名 学 号 日 期
实现工具 C语言 实现环境 Linux系统 实习内容(功能、目标) [实验目的]
系统了解linux系统的通信机构IPC ,掌握IPC中消息通信机制,理解消息通信的方法及特征。
[实验内容]
编写一段程序,同时父进程创建两个子进程p1和p2;并使子进程p1与子进程p2通过消息队列相互发送消息(512字节)。
[实验要求]
(1)掌握系统调用msgget()、msgsnd()、msgrev()、msgctl()的使用方法及其功能,理解消息通信原理;
(2)系统理解linux 的三种通信机制。
实现的思想、方法和技术(含数据结构、算法) 消息机制提供四个系统调用:
msgget返回一个消息描述字msgqid,msgqid指定一个消息队列
以便其他三个系统调用使用。
msgsnd和msgrcv分别表示发送和接收一消息。msgsnd(msgqid,msgp,msgsz,msgflg)中的msgqid是msgget返回的消息队列描述符;msgp是用户缓冲区指针;msgsz是消息正文的长度;而msgflg是同步标识,规定msgqid发送消息时是发送完毕后返回还是不等发送立即返回。
系统调用msgrev比msgsnd多一个参数msgtyp,它规定接收消息的类型。msgtyp=0时,表示接收与msgqid相关联的消息队列上的第一个消息;msgtyp0表示接收msgqid相关联的消息队列上的第一个消息;而msgtyp0时,则表示接收小于或等于msgtyp绝对值的最低类型的第一个消息。
msgctl用来设置和返回与msgqid相关联的参数选择项,以及用来删除消息描述符的选择项。
IPC有三个组成部分:
1、消息用于进程之间传递分类的格式化数据。
2、共享存储区方式可使得不同进程通过共享彼此的虚拟空间而达到互相对共享区操作和数据通信的目的。
3、信号量机制用于通信进程之间的同步控制。信号量通常与共享存储器一起使用。
主要代码 注释 #includesys/types.h
#includesys/ipc.h
#includesys/msg.h
#includestdio.h
#includestdlib.h
#include string.h
#define MSGKEY 67
struct msgform
{
int mtype;
char mtext[512];
};
int msgqid;
main()
{ struct msgform msg1,msg2;
int p1,p2,pid1,pid2,*pint1,*pint2,i;
while((p1=fork())==-1);
if(p1==0)
{
msgqid=msgget(MSGKEY,0777);
strcpy(msg1.mtext,Happy!);
msg1.mtype=1;
msgsnd(msgqid,msg1,512,0);
sleep(3);
msgrcv(msgqid,msg1,256,7,0);
printf(client receive from server %s\n,msg1.mtext);
msgctl(msgqid,IPC_RMID,0);
exit(0);
}
else
{ while((p2=fork())==-1);
if(p2==0)
{ msgqid=msgget(MSGKEY,0777|IPC_CREAT);
msgrcv(msgqid,msg2,512,1,0);
printf(server receive from client %s\n,msg2.mtext);
msg2.mtype=7;
strcpy(msg2.mtext,yes);
msgsnd(msgqid,msg2,256,0);
exit(0);
}
wait(0);
wait(0);
}
} //以上三行为消息必须有的头文件
//消息的格式
//消息的类型
//消息的正文长度
//建立消息队列,若存在,返回消息描述字//把正文放进去
//指定消息类型
//往msgqid发送消息msg//接收来自服务进程的消息//输出正文的内容
//建立与顾客程序相同的消息队列
//接收来自顾客进程的消息
//放在接收方
/
您可能关注的文档
- 52 网上交友新时空课件 共16张图文.ppt
- 3电力系统最优潮流.ppt
- 英语国际音标的讲解及练习 英语音标.doc
- 一级水电站扩机工程可行性研究报告191页优秀甲级资质可研报告--极品推荐.doc
- 设计心理学复习提纲汇总.doc
- 中水海南长城国际投资集团验资案例.doc
- 现金管理系统的作用.doc
- 储粮化学药剂使用管理20111128复印件.ppt
- 案例研究方法的定义.doc
- 商标异议申请书模板.doc
- 2025年全国演出经纪人员资格认定考试试卷带答案(研优卷).docx
- 2025年全国演出经纪人员资格认定考试试卷完整版.docx
- 2025年全国演出经纪人员资格认定考试试题库及完整答案.docx
- 2025年全国演出经纪人员资格认定考试试卷完美版.docx
- 2025年全国演出经纪人员资格认定考试试卷含答案(实用).docx
- 2025年全国演出经纪人员资格认定考试试卷及答案(各地真题).docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
- 2025年全国演出经纪人员资格认定考试试卷及答案1套.docx
- 2025年下半年四川成都市郫都区面向社会引进公共类事业单位人员2人备考题库最新.docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
原创力文档

文档评论(0)