百科狗-知识改变命运!
--

进程通信的分类

小肉包11个月前 (12-01)阅读数 12#综合百科
文章标签进程通信

根据交换信息量的多少和效率的高低,进程通信分为如下低级通信和高级通信。 由于进程的互斥和同步,需要在进程间交换一定的信息,故不少学者将它们也归为进程通信。只能传递状态和整数值(控制信息)。

特点:传送信息量小,效率低,每次通信传递的信息量固定,若传递较多信息则需要进行多次通信。

编程复杂:用户直接实现通信的细节,容易出错。 提高信号通信的效率,传递大量数据,减轻程序编制的复杂度。

提供三种方式:

1.共享内存模式

2.消息传递模式

3.共享文件模式

进程和线程通信方式有什么不同

信号一般是发送给一个正在执行中的进程的系统级别的中断。但是有些系统级别的调用不会被信号中断。所以,你可以从一个进程给另一个进程发送一个信号(比如Kill 进程号,读取man page)去实现进程间的通信;

消息对列是由操作系统提供的机制,负责进程之间消息类型化通信; 使用信号量,如果信号自己没有足够容量包含信息,需要其他共享资源去保存信息。如果想发送一个字符串消息,你需要将一个字符串保存到另外一个进程能够获取到字符串地方,然后发送信号告诉该进程这个消息已经准备好了。

如果通过消息队列发送消息,系统不会中断进程让进程知道,进程必须主动检查给自己的消息。如果你不使用select()系统去检查自己的消息,你就必须一直等待。 这是使用消息对列最大的问题。

消息队列是类型化的,你可以使用这种类型去发送/接收的消息。

信号不会被计数,仅仅会做个简单的标记。 当多个信号到达并被阻塞时,系统仅仅标记有信号到达,不会告诉进程有多少个信号到,所以在编程时要留意这个问题。

线程的目的就是实现多个程序的并发运行。在多线程环境中,进程作为资源的独立单位,线程是进程的一个实体,是被进程调度的基本单位。进程间通信必须使用操作系统提供的进程通讯机制,而同一进程的各线程可以直接读写进程数据段进行通信淡然同样需要同步和互斥手段的辅助。以保证数据的一致性。另外同一进程的线程切换比进程切换快的多。

进程通信的分类

线程包括内核级线程KTL 用户级线程UTL 混合式线程

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)