问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

...使用?父子进程的同步又是如何实现的? 消息通信的工作原理是什么...

发布网友 发布时间:2024-10-04 01:41

我来回答

2个回答

热心网友 时间:2024-10-19 15:51

我们迪哥的答案:
当进程要与其它进程通讯时,可利用msgsnd()系统调用来发送消息。对于msgsnd()系统调用,核心检查消息队列描述符合许可权是否合法,消息长度是否超过系统规定的长度。通过检查后,核心为消息分配消息数据区,并将消息从用户消息缓冲区拷贝到消息数据区。分配消息首部,将它链入消息队列的末尾;在消息首部中填写消息的类型、大小以及指向消息数据区的指针等;还要修改消息队列头标中的数据(如消息队列中的消息数、字节数等)。然后,唤醒等待消息到来的睡眠进程。 消息的接收: 进程可利用msgrcv()系统调用,从指定消息队列中读一个消息。对于msgrcv()系统调用,先由核心检查消息队列标识符合许可权,继而根据用户指定的消息类型做相应的处理。消息类型msgtyp的参数可能有三种情况:当msgtyp=0时髦核心寻找消息队列中的第一个消息,并将它返回给调用进程;当msgtyp为正整数时,核心返回指定类型的第一个消息;当msgtyp为负整数时,核心应在其类型值小于或等于msgtyp绝对值的所有消息中,选出类型值最低的第一个消息返回。如果所返回消息的大小等于或小于用户的要求,核心便将消息正文拷贝到用户区,再从队列中删除该消息,并唤醒睡眠的发送进程;如果消息长度比用户要求的大,则系统返回出错信息。用户也可以忽略对消息大小的限制,此时,核心无需理会消息的大小而一概把消息内容拷贝到用户区。

热心网友 时间:2024-10-19 15:57

凑个热闹、我也不知道。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
膀胱癌医生要为什么要检查上尿路? 游览器书签怎样添加到手机桌面 玫瑰花是早上开还是晚上开 玫瑰是晚上开花吗 左拾遗是什么官左拾遗的解释 怎样炖羊肉好吃又烂 怎样炖羊肉软烂无膻味好吃 ...之心度君子之腹的意思以小人之心度君子之腹的解释以小人之心度君子... 以小人之心度君子之腹什么意思以小人之心度君子之腹出处介绍 苹果macbook pro开机音乐是什么 苹果台式电脑声音苹果电脑开机声音怎么设置 如何实现2个C类地址的linux服务器的互联,就是变成类似一个路由器下... Binder是如何实现一对多的 徐州哪家宠物医院比较好,医生比较负责,比较有经验? 徐州市哪家宠物医院好 上海中央商场投资有限公司怎么样? 江西中路详细地址 徐州宠物医院哪个好 一闭眼睛脑子里全都是小虫子在爬怎么回事 抖音金戈铁马身披麒麟甲我要追你到落霞-离人赋歌词分享 脑子有虫症状 带地下室的一楼怎么设计 心脏搏动强烈什么原因 什么是心管搏动 心管搏动是什么意思 C语言 队列 平滑 数据 VC中怎么向后台运行的程序发送组合键,比如Ctrl+Alt+S?(这个后台程序的... 投影仪灯泡的寿命多久 「投影仪灯泡可用时间有多长」 仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'dbo.cang... 关于MFC按键的问题 关于MFC的2个小问题 怎么在电脑上唱歌像KTV一样,我家摄像头上有话筒还用单独买个话筒吗? 苹果相册显示未连网,怎么解决? 斜日半飞阁,高帘轻翳空。 “草铺斜日野田春”的出处是哪里 凌派双闪灯在哪 指纹自动识别系统指纹的用途 白衬衣上的黄色污渍怎么去除 简述指纹自动识别系统的组成 如何设置电脑只有两个核心工作? ...线程的情况下,在I7如何让一个进程完整使用一个CPU? ...单核的CPU,为什么打开任务管理器会显示有两个CPU的? 怎么再bios中设置cpu把双核处理器全开 为什么我的任务管理器中有两个 RUNDLL32.EXE啊/都有什么用呢?不胜感谢... 登庐山五老峰作者简介 《登庐山五老峰》原文是什么?该如何翻译呢? 李白《登庐山五老峰》讲解 《三国演义》中,"鞠躬尽瘁,死而后已"指的是什么 钛网镀钌铱厚度大约多少 钛网镀铱钌每平方含铱多少克 自由大陆的官方隶属公司介绍