1 / 5
文档名称:

操作系统实验三实验报告.doc

格式:doc   大小:83KB   页数:5页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

操作系统实验三实验报告.doc

上传人:86979448 2017/12/11 文件大小:83 KB

下载得到文件列表

操作系统实验三实验报告.doc

文档介绍

文档介绍:烟台大学计算机学院
操作系统
实验报告书
班级:计114-3班
姓名:刘镇
学号:201158504337
日期:2013-6-7
《计算机操作系统》实验报告
实验内容
()消息的创建,发送和接收
二、实验目的
使用系统调用msgget( ), megsnd( ), msgrev( )及msgctl()编制一长度为1K的消息发送和接收的程序。
实验题目
〈程序设计〉
为了便于操作和观察结果,用一个程序为“引子”,先后fork( )两个子进程,SERVER和CLIENT,进行通信。
SERVER端建立一个Key为75的消息队列,等待其他进程发来的消息。当遇到类型为1的消息,则作为结束信号,取消该队列,并退出SERVER 。SERVER每接收到一个消息后显示一句“(server)received”。
CLIENT端使用Key为75的消息队列,先后发送类型从10到1的消息,然后退出。最后的一个消息,既是 SERVER端需要的结束信号。CLIENT每发送一条消息后显示一句“(client)sent”。
父进程在 SERVER和 CLIENT均退出后结束。
四、设计思路和流程图
开始
初始化变量
创建子进程
是否成功?


CLIENT()发送消息
当前是父进程?


SERVER()接收消息
结束
五、源程序:
#include <>
#include <sys/>
#include <sys/>
#include <sys/>
#include ""
#define MSGKEY 75
struct msgform /*消息结构*/
{
long mtype;
char mtexe[100]; /*文本长度*/
}msg;
int msgqid, i;
void CLIENT( )
{
int i;
msgqid = msgget(MSGKEY,0777|IPC_CREAT);
for(i = 10; i >= 1; i--)
{
= i;
printf("(client)sent\n");
msgsnd(msgqid, &msg, 1030, 0); /*发送消息msg入msqid消息队列*/
}
exit(0