[应用相关] 操作系统中任务之间通信的方式有哪些?

[复制链接]
4944|57
 楼主| Listate 发表于 2022-7-23 10:21 | 显示全部楼层 |阅读模式
操作系统中任务之间通信的方式有哪些?
Mozarts 发表于 2022-7-23 10:21 | 显示全部楼层
通信就是说进程之间传递数据。常见的方法有   pipe(管道),FIFO(命名管道),socket(套接字),SysVIPC   的   shm(共享内存)、msg   queue(消息队列),mmap(文件映射)。以前还有   STREAM,不过现在比较少见了(好像)。
_gege 发表于 2022-7-23 10:30 | 显示全部楼层
Unix   信号是异步处理的、可以终端接收进程执行过程的特殊   IPC   方式——其实既可以算同步也可以选通讯了。
laozhongyi 发表于 2022-7-23 10:35 | 显示全部楼层
socket   是有的,然后是   Pipe   管道和命名管道(比   Unix   的管道强悍的多,口水一个),FileMapping   是有的,共享内存没有太大印象,另外还有一个所谓的   mail   slot,看到过,没见过人用……   COM   不知道是怎么传递对象的?
wanglaojii 发表于 2022-7-23 10:40 | 显示全部楼层
Windows   Message,应该是高阶的、经过封装的同步方式,但是非常好用。IOCP、异步   socket   和窗口信息都是   Windows   Message   传递的。
zhouhuanの 发表于 2022-7-23 10:43 | 显示全部楼层
我觉得任务间的同步与通信是有点难。
bbapple 发表于 2022-7-23 10:49 | 显示全部楼层
通常包括: 共享内存,数据的简单共享。
handleMessage 发表于 2022-7-23 10:52 | 显示全部楼层
交换信息的方式一般采 用: 单向同步或通信。
feiqi1 发表于 2022-7-23 10:57 | 显示全部楼层
操作系统可以有不同的信号量。
androidbus 发表于 2022-7-23 10:59 | 显示全部楼层
任务间通信的机制是消息。
litengg 发表于 2022-7-23 11:04 | 显示全部楼层
三种任务通信方式:信号量、消息邮箱和消息队列。
qiangweii 发表于 2022-7-23 11:06 | 显示全部楼层
可以在内存中创建一个存储空间作为该数据的缓冲。
shashaa 发表于 2022-7-23 11:12 | 显示全部楼层
所有的嵌入式操作系统一般都会提供许多任务间通信的方法。
xia00 发表于 2022-7-23 11:13 | 显示全部楼层
信号量其实就是一种通过数字大小来实现限制资源使用的一种机制。
hfdy01 发表于 2022-7-23 11:18 | 显示全部楼层
楼上有几位都说了,主要是信号量的。
CallReceiver 发表于 2022-7-23 11:20 | 显示全部楼层
一般分为三种: 二进制信号量:最快的最常用的信号量,用于解决同步问题。 互斥信号量:为解决具有内在地互斥问题、优先级继承、删除安全和递归等情况而最优化的 特殊的二进制信号量。 计数信号量:类似于二进制信号量,但是随信号量释放的次数改变而改变。
boy1990 发表于 2022-7-23 11:23 | 显示全部楼层
通过消息通信的二进制信号量。
SantaBunny 发表于 2023-2-23 20:54 | 显示全部楼层
管道、有名管道、消息队列、信号量、共享空间、信号、套接字。
uiint 发表于 2024-4-5 20:42 | 显示全部楼层
任务之间可以通过消息队列传递数据。消息队列是一种先进先出(FIFO)的数据结构,保证了消息传递的顺序性。
rosemoore 发表于 2024-4-5 22:17 | 显示全部楼层
管道是一种特殊的文件,用于在父子任务之间或兄弟任务之间进行通信。管道可以用于传输数据,但通常传输的数据量不大。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

161

主题

1233

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部