什么是进程间通信?
进程间通信(IPC)用于在一个或多个进程或程序中的多个线程之间交换数据。进程可能在通过网络连接的单台或多台计算机上运行。IPC的完整形式是进程间通信。
它是一组编程接口,允许程序员在操作系统中可以同时运行的各种程序进程之间协调活动。这允许特定程序同时处理许多用户请求。
由于每个单个用户请求都可能导致操作系统中运行多个进程,因此该进程可能需要彼此通信。每种IPC协议方法都有其自身的优点和局限性,因此单个程序使用所有IPC方法并不罕见。
进程间通信的方法
这里是几种用于进程间通信的重要方法:
管道Pipe
Pipe广泛用于两个相关过程之间的通信。这是一种半双工方法,因此第一个进程与第二个进程进行通信。但是,为了实现全双工,需要另一个管道。
讯息传递:
它是进程进行通信和同步的机制。使用消息传递,该过程无需使用共享变量即可彼此通信。
IPC机制提供两种操作:
- 发送(消息)-消息大小固定或可变
- 收到(消息)
消息队列:
消息队列是内核中存储的消息的链接列表。它由消息队列标识符标识。此方法提供具有全双工能力的单个或多个进程之间的通信。
直接沟通:
在这种类型的进程间通信过程中,应明确命名。在该方法中,在一对通信过程之间建立链接,并且在每对之间仅存在一个链接。
间接沟通:
仅当进程共享一个公共邮箱时,间接通信才建立,每对进程共享几个通信链接。链接可以与许多进程通信。链接可以是双向的也可以是单向的。
共享内存:
共享内存是两个或多个进程之间共享的内存,这些内存是使用所有进程之间的共享内存建立的。这种类型的内存需要通过同步所有进程之间的访问来相互保护。
先进先出
两个不相关进程之间的通信。这是一种全双工方法,这意味着第一个进程可以与第二个进程进行通信,相反的情况也可能发生。
为什么选择IPC?
这里是使用进程间通信协议进行信息共享的原因:
- 它有助于加快模块化
- 计算的
- 特权分离
- 方便
- 帮助操作系统相互通信并同步其操作。
IPC中使用的术语
以下是IPC中使用的一些重要术语:
信号量:信号量是一种信号机制技术。此OS方法允许或不允许访问资源,这取决于如何设置。
信号:这是一种通过信号在多个进程之间进行通信的方法。源进程将发送通过数字识别的信号,而目标进程将对其进行处理。
什么是Like FIFOS 和 Unlike FIFOS
像FIFOS | 非FIFOS |
---|---|
遵循FIFO方法 | 在特定紧急消息到达最前面之前将其拉出的方法 |
FIFO的存在独立于发送和接收过程。 | 时刻准备着,所以不需要打开或关闭。 |
允许在不相关的进程之间进行数据传输。 | 打开和关闭之间没有任何同步问题。 |
概要:
- 定义:进程间通信用于在一个或多个进程或程序中的多个线程之间交换数据。
- Pipe广泛用于两个相关过程之间的通信。
- 消息传递是进程进行通信和同步的机制。
- 消息队列是内核中存储的消息的链接列表。
- 直接过程是过程间通信过程的一种,应明确命名。
- 仅当进程共享一个公共邮箱时,间接通信才建立,每对进程共享几个通信链接。
- 共享内存是两个或多个进程之间共享的内存,这些内存是使用所有进程之间的共享内存建立的。
- 进程间通信方法有助于加快模块化。
- 信号量是一种信号机制技术。
- 信令是一种通过信令在多个进程之间进行通信的方法。
- 像FIFO一样遵循FIFO方法,而与FIFO不同,使用FIFO方法在特定紧急消息到达最前面之前提取它们。