77范文网 - 专业文章范例文档资料分享平台

《Linux操作系统》实验报告模板 - 图文(4)

来源:网络收集 时间:2020-06-17 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

(3)答:父进程为子进程收尸,防止僵尸程序出现。 (4)答:在调用处强行退出程序,运行一次程序就结束。 (三)进程的管道通信实验 (四)【实验内容】

1.编制一段程序,实现进程的管道通信。使用pipe()建立一条管道线。两个子进程p1和p2分别向管道各写一句话:

Child 1 is sending message! Child 2 is sending message!

而父进程则从管道中读出来自于两个子进程的信息,显示在屏幕上。 实验要求:运行程序并分析结果。

2.在父进程中用pipe()建立一条管道线,往管道里写一句话,两个子进程接收这句话。 定义缓冲区,创建管道,随后创建进程,将父进程的消息写进缓冲去写进管道再传给写进子进程,子进程接受。

定义一个管道,父进程传递消息到管道,随后创建两个子进程接收这个消息,然后结束进程。 实验小结:再这个实验中一开始打算将两个子进程分开判断,但是常常最后出现结果不是出现僵尸进程就是跳过其中一个子进程结束,最后我觉得既然两个进程同时创建,不如直接将他们一起进行判断。

(四)消息的发送与接收实验

【实验内容】

1.消息的创建、发送和接收。使用系统调用msgget( ),msgsnd( ),msgrev( ),及msgctl( )编制一长度为1k的消息发送和接收的程序。 <参考程序> ①client.c

#include #include #include #define MSGKEY 75 struct msgform { long mtype;

char mtext[1000]; }msg;

int msgqid;

void client() {

int i;

msgqid=msgget(MSGKEY,0777); for(i=10;i>=1;i--) {

msg.mtype=i;

printf(“(client)sent\\n”); msgsnd(msgqid,&msg,1024,0); }

exit(0); }

main( ) {

client( ); }

②server.c

#include #include #include #define MSGKEY 75 struct msgform { long mtype;

char mtext[1000]; }msg;

int msgqid;

void server( ) {

msgqid=msgget(MSGKEY,0777|IPC_CREAT); do

{msgrcv(msgqid,&msg,1030,0,0); printf(“(server)received\\n”);

}while(msg.mtype!=1); msgctl(msgqid,IPC_RMID,0); exit(0); }

main( )

{ server( ); }

1.列出调试通过程序的清单,分析运行结果。

首先运行client.c创建打开消息队列75,往消息对列中传递消息10-1,然后运行serve.c, 打开消息队列75,然后接收其中的消息直到消息为假(不存在),退出进程。 2.给出必要的程序设计思路和方法(或列出流程图)。

先后fork两个子进程,server和client,进行通信。Server端建立一个key为75的消息队列,等待其他进程发来的消息。当遇到类型为1的消息,则作为结束的信号,取消该队列,并退出server。Server每接受到一个消息后显示一句“(server)received”。

3.总结上机调试过程中所遇到的问题和解决方法及感想。 无法做到同步,再client进程全部发送完成后,serve进程才开始进行接收消息并打印,按照常理来说应该是发消息接消息的,试了其他办法却老是出现僵尸进程。

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库《Linux操作系统》实验报告模板 - 图文(4)在线全文阅读。

《Linux操作系统》实验报告模板 - 图文(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/1106278.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: