- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
本科实验报告专用纸
课程名称操作系统原理成绩评定
实验项目名称进程间的通信指导教师
实验项目编号实验项目类型实验地点
学生姓名学号
学院系专业
实验时间年月日上午~月日上午温度℃湿度
实验目的和要求
实验目的:
学习如何利用管道机制或消息缓冲队列进行进程间的通信,并加深对上述通信机制的理解。提高学生分析问题和解决问题的能力,并学习撰写规范的科学研究报告(论文)。
实验要求:了解系统pipe(),msgsnd(),msgrcv()的功能和实现过程。
实验原理和主要内容
实验内容:
编写一段程序,使用管道来实现父子进程之间的进程通信。子进程向父进程发送自己的进程表示符,以及某字符串。父进程则通过管道读出子进程发来的消息,将消息显示在屏幕上,然后终止。
编写一段程序,使其用消息缓冲队列来实现client和server进程之间的通信。
实验原理:(使用的系统调用命令说明或算法及程序详细设计)
Linux命令
作用
格式
ls
列出当前工作目录下的文件
无
cd
进出工作目录
cd目的目录
rm
删除文件
rm指定文件
vi
打开或新建文件
vi文件名
-a
打开或新建文件后追加编辑该文件
无
-wq
保存当前文件并退出
无
gcc、-o
编译文件并产生可执行文件
gcc-文件名-o文件名
./
打开exe执行文件
./文件名
exit
退出当前用户
无
实验函数说明
包含头文件
#includesys/types.h
#includesys/ipc.h
#includesys/msg.h
(2)msgsnd()函数
intmsgsnd(intmsqid,constvoid*msgp,size_tmsgsz,intmsgflg);
//将消息送入消息队列
?
参数:??
msqid:消息队列的识别码。
msgp:指向消息缓冲区的指针,此位置用来暂时存储发送和接收的消息,是一个用户可定义的通用结构,形态如下
structmsgbuf{
???longmtype;????/*消息类型,必须0*/
???charmtext[1];?/*消息文本*/
};
msgsz:消息的大小。
msgtyp:从消息队列内读取的消息形态。如果值为零,则表示消息队列中的所有消息都会被读取。
msgflg:用来指明核心程序在队列没有数据的情况下所应采取的行动。如果msgflg和常数IPC_NOWAIT合用,则在msgsnd()执行时若是消息队列已满,则msgsnd()将不会阻塞,而会立即返回-1,如果执行的是msgrcv(),则在消息队列呈空时,不做等待马上返回-1,并设定错误码为ENOMSG。当msgflg为0时,msgsnd()及msgrcv()在队列呈满或呈空的情形时,采取阻塞等待的处理模式。
???
返回说明:??
成功执行时,msgsnd()返回0,失败返回-1
(3)msgrcv()函数
ssize_tmsgrcv(intmsqid,void*msgp,size_tmsgsz,longmsgtyp,intmsgflg);
//从消息队列读取信息.
成功执行时,返回0,失败返回-1
主要仪器设备
PC机、Linux操作系统
调试分析
server进程先建立一个关键字为SVKEY(如75)的消息队列,然后等待接收类型为REQ(如1)的消息;在收到请求消息后,它便显示字符串servingforclient和接收到的client进程的进程标识数,表示正在为client进程服务;然后再向client进程发送一应答消息,该消息的类型是client进程的进程标识数,而正文则是server进程自己的标识数。client进程则向消息队列发送类型为REQ的消息(消息的正文为自己的进程标识数)以取得server进程的服务,并等待server进程发来的应答;然后显示字符串receivereplyfrom和接收到的server进程的标识数。
测试结果
程序“pipe.exe”的运行结果
程序“clt_svr.exe”的运行结果
附录
程序一:pipe.c
您可能关注的文档
- 《GBT 17732-2023致密定形含碳耐火制品试验方法》最新解读.pptx
- 《GBT 10067.6-2023电热和电磁处理装置基本技术条件 第6部分:工业微波加热装置》最新.pptx
- 《GBT 43250-2023汽车用主动红外探测系统》最新解读.pptx
- 《GBT 19494.1-2023煤炭机械化采样 第1部分:采样方法》最新解读.pptx
- 《GBT 5008.3-2023起动用铅酸蓄电池 第3部分:重载车辆产品品种规格和端子尺寸》最新解.pptx
- 《GBT 1196-2023重熔用铝锭》最新解读.pptx
- 《GBT 43491-2023钢丝绳 蠕变试验方法》最新解读.pptx
- 《GBT 43253.4-2023道路车辆 功能安全审核及评估方法 第4部分:硬件层面》最新解读.pptx
- 《GBT 43597-2023热电型太赫兹探测器参数测试方法》最新解读.pptx
- 《GBT 4437.1-2023铝及铝合金热挤压管 第1部分:无缝圆管》最新解读.pptx
- 《GBZ 25320.1001-2023电力系统管理及其信息交换 数据和通信安全 第100-1部分.pptx
- 《GBZ 43345-2023电气设备用图形符号词汇》最新解读 (1).pptx
- 《GBZ 43592.1-2023纳米技术 磁性纳米材料 第1部分:磁性纳米悬浮液的特性和测量规范.pptx
- 《GBT 43253.1-2023道路车辆 功能安全审核及评估方法 第1部分:通用要求》最新解读.pptx
- 《GBT 43530-2023龙虾眼型聚焦光学元件性能测试方法》最新解读.pptx
- 《GBT 43316.6-2023塑料 耐环境应力开裂(ESC)的测定 第6部分:慢应变速率法》最.pptx
- 《GBT 43490-2023轮胎用射频识别(RFID)电子标签》最新解读.pptx
- 《GBT 43258.3-2023道路车辆 基于因特网协议的诊断通信(DoIP) 第3部分:基于I.pptx
- 《GBT 21679-2023法庭科学 DNA数据库建设规范》最新解读.pptx
- 《GBT 32165-2023节水型企业 发酵行业》最新解读.pptx
最近下载
- 小学校创客及人工智能教育典型案例.docx
- 变电运行试题题库.pdf VIP
- 2023年新疆大学软件工程专业《数据结构与算法》科目期末试卷B(有答案).docx VIP
- JC08心理咨询技能单科作业题(新版教材考生通用_202305月考生适用).pdf
- 七人学生小品《如此课堂》剧本台词手稿.doc
- 部级基础教育精品课PPT模板.pptx
- 采埃孚商用车及工程机械产品专用油品手册.PDF
- QGDW10270-2017-220kV及110(66)kV输变电工程可行性研究内容深度规定.pdf
- 2022知到答案 军事理论(同济大学) 智慧树满分章节测试答案.docx
- 口腔CBCT管理制度-操作规程.docx
文档评论(0)