首页 > 试题广场 >

进程之间通信都有哪些方式?

[不定项选择题]
进程之间通信都有哪些方式?
  • 共享内存
  • 消息队列
  • 系统管道
  • 临界区
Linux下进程间通信的几种主要手段简介:
a)管道(Pipe):即有名管道(named pipe):管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信;
b)信号(Signal):信号是比较复杂的通信方式,用于通知接受进程有某种事件发生,除了用于进程间通信外,进程还可以发送信号给进程本身;linux除了支持Unix早期信号语义函数sigal外,还支持语义符合Posix.1标准的信号函数sigaction(实际上,该函数是基于BSD的,BSD为了实现可靠信号机制,又能够统一对外接口,用sigaction函数重新实现了signal函数);
c)Message(消息队列):消息队列是消息的链接表,包括Posix消息队列system V消息队列。有足够权限的进程可以向队列中添加消息,被赋予读权限的进程则可以读走队列中的消息。消息队列克服了信号承载信息量少,管道只能承载无格式字节流以及缓冲区大小受限等缺点。
d)共享内存:使得多个进程可以访问同一块内存空间,是最快的可用IPC形式。是针对其他通信机制运行效率较低而设计的。往往与其它通信机制,如信号量结合使用,来达到进程间的同步及互斥。
e)信号量(semaphore):主要作为进程间以及同一进程不同线程之间的同步手段。
f)套接口(Socket):更为一般的进程间通信机制,可用于不同机器之间的进程间通信。起初是由Unix系统的BSD分支开发出来的,但现在一般可以移植到其它类Unix系统上:Linux和System V的变种都支持套接字。
Linux线程间通信:互斥体,信号量,条件变量
Windows线程间通信:临界区(Critical Section)、互斥量(Mutex)、信号量(Semaphore)、事件(Event)
Windows 进程间通信:管道、内存共享、消息队列、信号量、socket
Windows 进程和线程共同之处:信号量和消息(事件)
发表于 2016-09-02 11:30:57 回复(0)
用于进程间通讯(IPC)的四种不同技术: 
1. 消息传递(管道,FIFO,posix和system v消息队列) 
2. 同步(互斥锁,条件变量,读写锁,文件和记录锁,Posix和System V信号灯) 
3. 共享内存区(匿名共享内存区,有名Posix共享内存区,有名System V共享内存区)  4. 过程调用(Solaris门,Sun RPC) 

发表于 2016-03-15 21:24:03 回复(0)
临界区是指线程的
发表于 2015-08-12 23:20:29 回复(1)
通信,指的进程/线程有交互,可以通过共享资源进行通知或数据传递。临界区则是一种概念,指的是访问公共资源的程序片段,并不是一种通信方式
发表于 2016-08-29 09:57:51 回复(1)

进程间通信常见方式

  • 管道
  • FIFO
  • 消息队列
  • 信号量
  • 共享内存
  • UNIX域套接字
  • 套接字(Socket)
发表于 2019-12-04 21:45:38 回复(0)
用于进程间通讯(IPC)的四种不同技术:  1. 消息传递(管道,FIFO,posix和system v消息队列)  2. 同步(互斥锁,条件变量,读写锁,文件和记录锁,Posix和System V信号灯)  3. 共享内存区(匿名共享内存区,有名Posix共享内存区,有名System V共享内存区) 4. 过程调用(Solaris门,Sun RPC)   临界区则是一种概念,指的是访问公共资源的程序片段,并不是一种通信方式
发表于 2018-07-21 00:34:48 回复(0)
临界区也可以是进程访问,怎么能说是线程的,只不过同一时间只有一个进程才可以访问
发表于 2015-11-04 23:57:19 回复(3)

IPC方式:

在操作系统内核中开辟一段空间,进程去访问它。

管道(Pipe):

优点:实现简单,资源消耗较小。

缺点:只能支持单向通信。

信号(singnal)

优点:异步通信,灵活,速度快,系统资源占用少。

缺点:不够可靠、容易丢失,安全性问题。

信号量(Semaphore):

优点:可以解决进程间的同步问题,确保共享资源的正确访问。

缺点:不适用于数据传输,只能用于同步操作。

消息队列(Message Queue):

优点:支持多对多的通信方式,具有较高的灵活性。

缺点:由于消息队列的实现需要内核参与,因此性能较低。

共享内存(Shared Memory):

优点:数据交换效率高,适合大量数据传输。

缺点:需要进行进程间的同步操作以避免竞争条件。

套接字(Socket):

优点:可以在不同主机之间进行通信。

缺点:相比其他进程间通信方式,实现更为复杂。

发表于 2023-11-08 19:48:41 回复(0)
临界区是指使用共享内存的那段代码存放的区域
发表于 2022-09-26 00:46:16 回复(0)
ABC
发表于 2019-06-05 14:32:52 回复(0)
共享内存,消息传递,系统管道。
发表于 2014-11-15 08:55:22 回复(0)
共享内存,消息队列,系统管道
编辑于 2024-01-25 20:50:47 回复(0)
进程间:共享内存、消息队列、系统管道
发表于 2023-06-17 01:13:28 回复(0)
进程间通信方式:有名管道,无名管道,信号通信,共享内存 ,消息队列,有名信号,无名信号,信号灯集
发表于 2022-09-20 19:17:55 回复(0)
进程间的通信:
PIPE(父子进程之间)
FIFO
共享内存
MMAP
本地socket
信号
消息队列
UNIX套接字
发表于 2022-09-16 21:32:43 回复(0)
在linux下的多个进程间的通信机制叫做IPC(Inter-Process Communication),它是多个进程之 间相互沟通的一种方法。在linux下有多种进程间通信的方法:无名管道、命名管道、内存映射、消 息队列、共享内存、信号量、信号、文件,套接字等等。 无名管道(pipe) 命名管道(fifo) 内存映射(mapped memeory), 消息队列(message queue) 共享内存(shared memory) 信号量(semaphore) 信号(signal) 文件(file) 套接字(Socket) ———————————————— 版权声明:本文为CSDN博主「艾特号」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/lpwsw/article/details/121931537
发表于 2022-09-05 22:25:16 回复(0)
共享内存,消息队列,系统管道
发表于 2022-08-25 00:26:38 回复(0)
高级通信方法主要有以下三类:共享存储、消息传递、管道通信
发表于 2022-06-17 23:37:37 回复(0)
共享内存,消息传递,系统管道
发表于 2022-03-12 09:21:01 回复(0)
信号,管道,共享内存,先入先出队列,消息队列,socket套接字
发表于 2021-08-02 01:54:59 回复(0)