linux进程创建与进程通信实验指导书

linux进程创建与进程通信实验指导书

ID:8799081

大小:49.50 KB

页数:3页

时间:2018-04-08

linux进程创建与进程通信实验指导书_第1页
linux进程创建与进程通信实验指导书_第2页
linux进程创建与进程通信实验指导书_第3页
资源描述:

《linux进程创建与进程通信实验指导书》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、实验一、Linux进程创建与进程通信实验目的1.熟悉有关Linux系统调用;2.学习有关Linux的进程创建,理解进程创建后两个并发进程的执行;3.通过系统调用wait()和exit(),实现父子进程同步;4.掌握管道、消息缓冲等进程通信方法并了解其特点和使用限制。实验内容1.父进程创建子进程实现父进程创建一个子进程,返回后父子进程分别循环输出字符串“Theparentprocess.”及“Thechildprocess.”5次,每次输出后使用sleep(1)延时一秒,然后再进入下一次循环。给出源程序代码和运行结果。2.父子

2、进程同步修改上题程序,使用exit()和wait()实现父子进程同步,其同步方式为父进程等待子进程的同步,即:子进程循环输出5次,然后父进程再循环输出5次。给出源程序代码和运行结果。3.Linux管道通信编写一个程序,实现以下功能。给出源程序代码和运行结果。(1)父进程使用系统调用pipe()创建一个无名管道;(2)创建两个子进程,分别向管道发送一条信息后结束;子进程1发送:Child1issendingamessagetoparent!子进程2发送:Child2issendingamessagetoparent!(3)父进

3、程从管道中分别接收两个子进程发来的消息并显示在屏幕上,父进程结束。两个子进程发送信息没有先后顺序要求。4.Linux消息缓冲通信编写一个程序,实现以下功能。给出源程序代码和运行结果。(1)父进程创建一个消息队列和一个子进程,由子进程发送消息,父进程等待子进程结束后接收子进程发来的消息,并显示消息内容。以“end”作为结束消息。(2)分别编写发送进程和接收进程,由发送进程发送消息,接收进程接收消息。采用先执行发送进程后执行接收进程的方式同步。以“end”作为结束消息。(3)模拟C/S通信,要求如下。(选做)①模拟客户端(cli

4、ent端)程序client,其功能如下。a)显示下列服务功能菜单:Enteryourchoice:1.Savemoney2.Takemoneyb)接收用户键入的功能号进行选择;c)将用户键入的功能号作为一条信息发送至消息队列,然后结束。②模拟服务器端(Server端)程序server,其功能如下。a)从消息队列接收Client端发来的一条消息;b)根据消息作如下处理。3若消息为“1”,则创建子进程1,由子进程1加载服务模块save,该模块的作用为显示以下信息:Yourmoneywassaved!若消息为“2”,则创建子进程2

5、,由子进程2加载服务模块take,该模块的作用为显示以下信息:Pleasetakeyourmoney!a)等待子进程终止后,Server进程删除消息队列,然后结束。实验提示:1.C编译器gcc的使用GCC(GNUCompilerCollection)是目前Linux下最常用的C语言编译器,能够编译用CC++等语言编写的程序。通过GCC源码文件生成可执行文件的过程要经过4个阶段,分别是预处理、编译、汇编和链接。格式:gcc【选项】源文件【目标文件】如不使用任何参数将生成一个名为a.out的文件,执行时输入./a.out(./

6、表示在当前路径下)。2.进程控制的系统调用fork系统调用创建新的子进程格式:pid=intfork()fork调用返回时,系统中已有两个用户级环境完全相同的进程存在,这两个进程从fork调用中得到的返回值不同,其中子进程得到的返回值为零,父进程得到的返回值是新创建子进程的进程标识号。3.进程通信的系统调用üpipe系统调用格式:intpipe(filedes)intfiledes[2];ü消息机制•Msgid=msgget(key,msgflg)key_tkey;intmsgflg;•Msgctl(msgid,cmd,bu

7、f)intmsgid,cmd;msgqid_ds#buf;•msgsnd(msgid,msgp,msgsz,msgflg)intmsgid;structmsgbuf*msgp;intmsgsz,msgflg;•msgrcv(msgid,msgp,msgsz,msgtyp,msgflg);intmsgid;structmsgbuf*msgp;intmsgsz;longmsgtyp;intmsgflg;注:系统调用详细说明和使用示例可参考ppt资料。3实验要求:1.观察实验结果,分析结果产生原因。2.实验结束一周后需提交实验报告

8、和源程序文件。实验思考:1.实验中如何实现的父子进程的同步?2.管道通信的读写进程之间必须满足什么关系?3.在使用消息缓冲通信进行通信时,发送和接收者之间的同步机制由谁提供?4.消息缓冲通信与管道通信有何不同?当两个独立进程之间需传递大量信息时,应该使用哪一种通信方式?参考资料:【1】《操

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。