操作系统进程通信管理
实验四进程间通信实验
(一)实验学时:4学时
(二)实验类型:验证
(三)实验目的:
了解Linux支持的消息通讯机制及信息量机制
(四)实验内容:
消息的创建,发送和接收。
①使用系统调用msgget ( ), msgsnd ( ), msgrev ( ), 及msgctl ( ) 编制一长度为1k的消息的发送和接收程序。
②观察分析程序,说明控制消息队列系统调用msgctl ( ) 在此起什么作用?
共享存储区的创建、附接和段接。
使用系统调用shmget( ),shmat( ),sgmdt( ),shmctl( ),编制一个与上述功能相同的程序。
#include<stdio.h>
#include<sys/type.h>
#include<sys/msg.h>
#include<sys/ipc.h>
#define MSGEKEY 75 /*定义关键词MSGEKEY */
struct msgform /*消息结构*/
{
long mtype;
Char mtex[100];/*文本长度*/
}msg;
int msgqid,i;
void CLIENT()
{
int i;
Msgqid=magget(MSGKEY,0777|IPC_CREAT);
for (i=10;i>=1;i--)
{
mag.mtype=i;
Printf((“client”)sent\n);
magsnd(magqid,&mag,1030,0);/*发送消息msg入msgid消息队列*/
}
exit(0);
}
void SERVER()
{
msgqid=magget(MSGKEY,0777|IPC_CRVEAT);/*有关键字获得消息队列*/
do
{msgrcv(msgqid,&msg,1030,0,0);
printf(“server)receive\n”);
}
while(msg.,mytype!=1);
msgctl(msgqid,IPC_RMID,0);
}
main()
{
if (fork())
{
SERVER();
wait(0);
}
else CLIENT();
}
实验结果
从理想实验结果来说,应当每一个Client发送一个消息后,Server接收该消息,Client 再发送下一条消息,也就是说“(Client)sent”和“(Serve)received”的字样应该在屏幕上交替出现。实际上结果是由Client先发送10条消息,然后erver接收10条消息,与预期的结果不同。
《实验分析》
Message的传送与控制并不保证完全同步,当一个程序不在激活的状态的时候,它完全可以继续睡眠,造成上面现象,在多次sendmessage后才receive message。这一点有助于理解消息转送的实现机理。
②调用msgctl ( )删除队列,并清除队列中的所有消息,归还资料。
二
《程序》
#include<sys/type.h>
#include<sys/msg.h>
#include<sys/ipc.h>
#define MSGEKEY 75 /*定义共享区关键词MSGEKEY */
int shmid,i;
int *addr;
CLIENT()
{
int ;
shmid=shmget(SHMKEY,1024,0777|IPC_CREAT);
addr=shmat(shmid,0,0);
for(i=9;i>=0;i--)
{
while(*addr!=-1);
Printf(“(client)sentin”);
*addr=i;
}
exit(0);
}
SERVER()
{
do
{
while(*addr==-1)’
printf(“(server)received\n%d,”a*ddr);
if(*adr!==0)
*addr=-1;
}while(*addr);
wait(0);
shmctl(shmid,IP_RMID,0);
}
main()
{
shmid=shmget(SHMKEY,1024,0777|IPC_CREAT); addr=shmat(shmid,0,0);
*addr=-1;
if(fork())
{
SERVER();
}
Else
{
CLIENT();
}
}
相关推荐:
- [教育文库]夜场KTV服务员的岗位职责及工作流程[1]
- [教育文库]企划、网络、市场绩效考核方案
- [教育文库]学党史、知党情、强党性--“党的基本理
- [教育文库]2016年高考物理大一轮总复习(江苏专版
- [教育文库]干部廉洁自律自查自纠的报告
- [教育文库]2010年北京大学心理学系拟录取硕士研究
- [教育文库]资金时间价值练习题及答案
- [教育文库]保护环境的心得体会
- [教育文库]英语角内容:英语趣味小知识
- [教育文库]档案收集与管理工作通知
- [教育文库]劳动规章制度范本范本
- [教育文库]高考物理一轮复习课后限时作业1运动的
- [教育文库]机械工艺夹具毕业设计195推动架设计说
- [教育文库]通用技术教学比赛说课稿2
- [教育文库]2018年四年级英语下册 Module 7 Unit 2
- [教育文库]第2章 宽带IP网络的体系结构
- [教育文库]九年级化学第五单元课题3《根据化学方
- [教育文库]小学英语六年级情态动词用法归纳
- [教育文库]甲级单位编制窑井盖项目可行性报告(立
- [教育文库]2016-2021年中国城市规划行业全景调研
- 高考英语听力十大场景词汇总结
- 全省领导班子思想政治建设座谈会会议精
- 人教版新课标高一英语提优竞赛试题 下
- 江西省2014年生物中考试题
- 长沙镇食品药品安全事故应急预案
- 《金刚石、石墨和C60》片段教学设计
- 福州教育学院(王旭东)
- 基于EDA音乐播放器的设计
- 9、古诗两首《夜书所见》《九月九日忆
- 小学语文课外阅读有效策略探讨
- 贵州文化产业发展成支柱产业的问卷调查
- 膀胱类癌的诊治体会(附3例报告)
- 发动机积碳产生的原因
- Configuring Code Composer Studio for
- 学生良好的心理素质如何培养点滴谈
- 46 电沉积法制备锂离子电池用硅-锂薄膜
- 美舍雅阁公司管理中各部门职责
- 去壳剥皮的小妙招
- 六自由度运动平台的仿真研究
- Pride and Prejudice(傲慢与偏见)




