- 1、本文档共43页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
本科毕业论文操作系统课程设计之消息函数的分析论文
摘 要
Linux是一种自由和开放源码的类Unix操作系统。目前存在着许多不同的Linux,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,从手机、平板电脑、路由器和视频游戏控制台,到台式计算机、大型机和超级计算机。
Linux采用消息队列的方式来实现消息传递。System V的消息队列(message queues)是进程之间互相发送消息的一种异步(asynchronously)方式,在这种情形之下,发送方不必等待接收方检查它的消息——即在发送完消息后,发送方就可以从事其它工作了——而接收方也不必一直等待消息。
新的消息总是放在队列的末尾,接收的时候并不总是从头来接收,可以从中间来接收。消息队列允许一个或多个进程写消息,一个或多个进程读取消息。Linux维护了一系列消息队列的msgque向量表。其中的每一个单元都指向一个msqid_ds的数据结构,完整描述这个消息队列。当创建消息队列的时候,从系统内存中分配一个新的msqid_ds的数据结构并插入到向量表中摘 要 1
1 课设简介 3
1.1课程设计题目 3
1.2课程设计小组成员 3
2 LINUX的消息函数主模块功能描述 3
3 LINUX的消息函数各个子模块功能描述 4
3.1 Msgget: 4
3.2 Msgsnd: 5
3.3 Msgrcv: 6
3.4 Msgctl: 7
4 LINUX的消息函数各个子模块相关函数代码分析结果 9
4.1有关常量、函数及相关错误信息的含义: 9
4.1.1 常量含义: 9
4.1.2 错误信息含义 9
4.1.3 相关函数及文件首部含义 9
4.2函数sys_msgget的分析 16
4.2.1 代码及注释 16
4.3发送消息函数real_msgsnd的分析 23
4.3.1 代码分析 23
4.4接收消息函数real_msgrcv的分析 28
4.4.1 代码及注释 28
4.5函数sys_msgctl的分析 33
4.5.1 代码及注释 33
心得体会 42
参考文献 43
1 课设简介
1.1课程设计题目
LINUX的消息函数的分析
1.2课程设计小组成员
Msgget:孙帅,分析消息队列的创建函数(sys_msgget)以及与它相关的函数newque、findkey、msg_init,写出代码分析结果,明确组内成员的明细分工,总体把握组内成员的进度。后期组织组内成员成果汇总进行本组总体报告撰写。王亚璇,画出流程图来表示相关函数之间的相互调用关系。魏蕾,负责查阅资料。
Msgsnd:张婷,分析消息的发送函数(real_msgsnd)以及与它相关的函数sys_msgsnd,写出代码分析结果。王鑫坤,画出流程图来表示相关函数之间的相互调用关系。闫瞳,张飞龙,负责查阅资料。
Msgrcv:樊德山,分析消息的接收函数(real_msgrcv)以及与它相关的函数sys_msgrcv,写出代码分析结果。赵松,画出流程图来表示相关函数之间的相互调用关系。鹿新宇,孙适,负责查阅资料。
Msgctl:刘晶,分析消息队列的控制sys_msgctl)以及与它相关的函数freeque,写出代码分析结果。鞠冰霜,画出流程图来表示相关函数之间的相互调用关系。刘航,负责查阅资料。
2 LINUX的消息函数主模块功能描述
Linux采用消息队列的方式来实现消息传递。System V的消息队列(message queues)是进程之间互相发送消息的一种异步(asynchronously)方式,在这种情形之下,发送方不必等待接收方检查它的消息——即在发送完消息后,发送方就可以从事其它工作了——而接收方也不必一直等待消息。
新的消息总是放在队列的末尾,接收的时候并不总是从头来接收,可以从中间来接收。消息队列允许一个或多个进程写消息,一个或多个进程读取消息。Linux维护了一系列消息队列的msgque向量表。其中的每一个单元都指向一个msqid_ds的数据结构,完整描述这个消息队列。当创建消息队列的时候,从系统内存中分配一个新的msqid_ds的数据结构并插入到向量表中每一个msqid_ds数据结构都包括一个ipc_perm的数据结构和进入这个队列的消息的指针。另外,Linux保留队列的改动时间,例如上次队列写的时间等。Msqid_ds队列也包括两个等待队列:一个用于向消息队列写,另一个用于读。 每一次一个进程试图向写队列写消息,它的有效用户和组的标识符就要和队列的 ipc_perm数据结构的模式比较。如果进程可以这个队列写,则消息会从进程的地址空间写到msg数据结构,放到消
您可能关注的文档
- 本科毕业论文220kv输电线路距离保护设计.doc
- 本科毕业论文200万吨矿井提升及运输设备选型设计.doc
- 本科毕业论文310国道改造工程设计说明书.doc
- 本科毕业论文492发动机曲轴箱铣主轴孔卡瓦槽夹具设计.doc
- 本科毕业论文468q发动机缸体立式组合钻床液压系统、液压站及plc设计.doc
- 本科毕业论文492发动机曲轴箱铣主轴孔卡瓦槽夹具设计论文.doc
- 本科毕业论文300mw机组机务部分初步设计方案论文.doc
- 本科毕业论文600mw火电机组送风控制系统.doc
- 本科毕业论文1031首采面切眼探放水设计.doc
- 本科毕业论文500亩虻链农业产业化示范基地建设项目商业计划书.doc
- 2024年06月中国民族博物馆公开招聘1人笔试历年典型考题及考点剖析附答案详解.docx
- 2024年03月山东枣庄市市中区卫健系统区属医院急需紧缺人才引进162人笔试历年典型考题及考点剖析附答案详解.docx
- 2024年1月山东德州平原县中医院招考聘用备案制工作人员33人笔试历年典型考题及考点剖析附答案详解.docx
- 2024年03月江苏海洋大学招考聘用专职辅导员和工作人员5人笔试历年典型考题及考点剖析附答案详解.docx
- 2024年03月河北沧州任丘市第一中学招考聘用合同制教师100人笔试历年典型考题及考点剖析附答案详解.docx
- 2024年04月江苏南京艺术学院招考聘用专任教师27人笔试历年典型考题及考点剖析附答案详解.docx
- 2023年11月广东省清远市清城区赴高校公开招聘26名卫生专业技术人员笔试历年典型考题及考点剖析附答案详解.docx
- 2023年辽宁沈阳工程学院招考聘用高层次人才笔试上岸试题历年高频考点难、易错点摘选附带答案详解.docx
- 2023年12月厦门市集美实验学校招聘1名非在编教师笔试历年典型考题及考点剖析附答案详解.docx
- 2023年12月河南南阳方城县招聘高中阶段教师35人笔试历年典型考题及考点剖析附答案详解.docx
文档评论(0)