操作系统中任务之间通信的方式有哪些?

[复制链接]
2268|28
 楼主| lizye 发表于 2018-4-16 15:16 | 显示全部楼层 |阅读模式
操作系统中任务之间通信的方式有哪些?
huangchui 发表于 2018-4-16 15:18 | 显示全部楼层

信号量
午夜粪车 发表于 2018-4-16 15:21 | 显示全部楼层
看到宏晶的**吧,有满足你要求的
zhenykun 发表于 2018-4-16 15:25 | 显示全部楼层
说说我熟悉一点的   Linux

通信就是说进程之间传递数据。常见的方法有   pipe(管道),FIFO(命名管道),socket(套接字),SysVIPC   的   shm(共享内存)、msg   queue(消息队列),mmap(文件映射)。以前还有   STREAM,不过现在比较少见了(好像)。

同步的意思是说,让不同进程能够在同时到达一个已知的特定状态之前等待另一方的执行。Linux   下常见的同步方法有SysVIPC   的   sem(信号量)、file   locking   /   record   locking(通过   fcntl   设定的文件锁、记录锁)、futex(基于共享内存的快速用户态互斥锁)。针对线程(pthread)的还有   pthread_mutex   和   pthread_cond(条件变量)。
除了这些特定的同步对象之外,还有一些同步方法是与通信方法不可分离的,包括:对   pipe/FIFO/socket   和   msg   queue   的阻塞等待、对子进程退出事件的等待(wait族)、对线程退出时间的等待(pthread_join)
zhenykun 发表于 2018-4-16 15:28 | 显示全部楼层
另外还有一个不能不提的,就是信号。Unix   信号是异步处理的、可以终端接收进程执行过程的特殊   IPC   方式——其实既可以算同步也可以选通讯了。

Linux   下的   IPC,不说别的,就一个字儿——乱!   -_-#

可以终端接收进程执行过程的特殊   IPC   方式
改为   可以中断(打断)接收方当前执行过程的……

Win32   下面,我知道的通信方式有几个:

socket   是有的,然后是   Pipe   管道和命名管道(比   Unix   的管道强悍的多,口水一个),FileMapping   是有的,共享内存没有太大印象,另外还有一个所谓的   mail   slot,看到过,没见过人用……   COM   不知道是怎么传递对象的?

同步对象有   Mutex   和   EventObject,Semaphore   信号量应该也有只是记不得。另外很重要的一个就是   Windows   Message,应该是高阶的、经过封装的同步方式,但是非常好用。IOCP、异步   socket   和窗口信息都是   Windows   Message   传递的。
 楼主| lizye 发表于 2018-4-16 15:32 | 显示全部楼层
多谢大家,尤其是5楼的**,虽然。。。。
quickman 发表于 2018-4-20 22:22 | 显示全部楼层
消息(邮箱)队列
jstgotodo 发表于 2018-4-20 22:23 | 显示全部楼层
我觉得任务间的同步与通信是有点难
iamaiqiyi 发表于 2018-4-20 22:29 | 显示全部楼层
通常包括: 共享内存,数据的简单共享。
dzfansman 发表于 2018-4-20 22:30 | 显示全部楼层
交换信息的方式一般采 用: 单向同步或通信。
sanxingnote7 发表于 2018-4-20 22:30 | 显示全部楼层
操作系统可以有不同的信号量
backlugin 发表于 2018-4-20 22:31 | 显示全部楼层
任务间通信的机制是消息
sdCAD 发表于 2018-4-20 22:33 | 显示全部楼层
你使用的是什么系统
fengm 发表于 2018-4-20 22:34 | 显示全部楼层
三种任务通信方式:信号量、消息邮箱和消息队列。
updownq 发表于 2018-4-20 22:34 | 显示全部楼层
互斥信号量
sanfuzi 发表于 2018-4-20 22:35 | 显示全部楼层
可以在内存中创建一个存储空间作为该数据的缓冲
quickman 发表于 2018-4-20 22:35 | 显示全部楼层
信号量 互斥锁也可以。
jstgotodo 发表于 2018-4-20 22:35 | 显示全部楼层
都要访问一个共享资源
iamaiqiyi 发表于 2018-4-20 22:35 | 显示全部楼层
所有的嵌入式操作系统一般都会提供许多任务间通信的方法
dzfansman 发表于 2018-4-20 22:35 | 显示全部楼层
双向同步或通信。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

852

主题

9757

帖子

2

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