OS의 프로세스 간 통신(IPC)
⚡ 스마트 요약
프로세스 간 통신(IPC)은 운영 체제 메커니즘의 집합으로, 프로세스와 스레드가 데이터를 교환하고, 활동을 조정하고, 동작을 동기화할 수 있도록 해줍니다. 이러한 메커니즘은 단일 컴퓨터에서 실행되든 네트워크로 연결된 여러 컴퓨터에서 실행되든 관계없이 적용됩니다.

프로세스 간 통신이란 무엇입니까?
프로세스 간 통신(IPC) IPC는 하나 이상의 프로세스 또는 프로그램 내의 여러 스레드 간에 데이터를 교환하는 데 사용됩니다. 프로세스는 단일 컴퓨터에서 실행될 수도 있고 네트워크로 연결된 여러 컴퓨터에서 실행될 수도 있습니다. IPC의 정식 명칭은 프로세스 간 통신(Inter-Process Communication)입니다.
이는 프로그래머가 운영 체제에서 동시에 실행될 수 있는 다양한 프로그램 프로세스 간의 활동을 조정할 수 있도록 하는 프로그래밍 인터페이스 집합입니다. 이를 통해 단일 프로그램이 여러 사용자 요청을 동시에 처리할 수 있습니다.
사용자 요청이 발생할 때마다 운영 체제에서 여러 프로세스가 실행될 수 있으므로, 이러한 프로세스들은 서로 통신해야 할 필요가 있습니다. 각 IPC 방식에는 고유한 장점과 한계가 있으므로, 하나의 프로그램이 여러 IPC 방식을 사용하는 것은 드문 일이 아닙니다.
프로세스 간 통신을 위한 접근 방식
다음은 프로세스 간 통신을 위한 몇 가지 중요한 방법입니다.
프로세스 간 통신 접근 방식
파이프
파이프는 서로 관련된 두 프로세스 간의 통신에 널리 사용됩니다. 이는 반이중 방식이므로 첫 번째 프로세스가 두 번째 프로세스와 통신합니다. 그러나 전이중 통신을 구현하려면 또 다른 파이프가 필요합니다.
메시지 전달
메시지 전달은 프로세스 간 통신 및 동기화를 위한 메커니즘입니다. 프로세스들은 메시지 전달을 통해 공유 변수를 사용하지 않고 서로 통신할 수 있습니다.
IPC 메커니즘은 두 가지 작업을 제공합니다.
- 메시지 전송 — 메시지 크기는 고정 또는 가변일 수 있습니다.
- 메시지 수신
메시지 대기열
메시지 큐는 메시지 큐에 저장된 메시지의 링크된 목록입니다. 커널. 메시지 큐 식별자로 식별됩니다. 이 방법은 풀 듀플렉스 용량으로 단일 또는 다중 프로세스 간 통신을 제공합니다.
직접 통신
이러한 유형의 프로세스 간 통신에서는 프로세스들이 서로를 명시적으로 명명해야 합니다. 이 방식에서는 통신하는 프로세스 쌍 사이에 링크가 설정되며, 각 쌍 사이에는 하나의 링크만 존재합니다.
간접 커뮤니케이션
간접 통신은 프로세스들이 공통 메일박스를 공유할 때만 이루어집니다. 각 프로세스 쌍은 여러 개의 통신 링크를 공유할 수 있으며, 하나의 링크로 여러 프로세스와 통신할 수 있습니다. 링크는 양방향 또는 단방향일 수 있습니다.
공유 메모리
공유 메모리는 둘 이상의 프로세스가 공유하는 메모리 영역입니다. 이 메모리는 사용하는 프로세스 간의 동기화를 통해 동시 접근으로부터 보호되어야 합니다.
FIFO
FIFO는 서로 관련 없는 두 프로세스 간의 통신에 사용됩니다. 이는 전이중 방식이므로 첫 번째 프로세스가 두 번째 프로세스와 통신할 수 있고, 그 반대의 경우도 가능합니다.
왜 IPC인가?
다음은 정보 공유를 위해 프로세스 간 통신 프로토콜을 사용하는 이유입니다.
- 모듈화 속도를 높이는 데 도움이 됩니다.
- 계산 속도 향상.
- 권한 분리.
- 편의.
- 이는 프로세스와 운영 체제가 서로 통신하고 동작을 동기화하는 데 도움이 됩니다.
IPC에서 사용되는 용어
다음은 IPC에서 사용되는 몇 가지 중요한 용어입니다.
Semaphores: 세마포어는 신호 전달 메커니즘입니다. 이 운영체제 방식은 설정 방식에 따라 특정 리소스에 대한 접근을 허용하거나 차단합니다.
Signals: 신호는 여러 프로세스 간의 통신 방법으로, 신호 전달 방식을 사용합니다. 소스 프로세스는 숫자로 식별되는 신호를 보내고, 대상 프로세스는 이를 처리합니다.
독서 제안: Semaphore? 바이너리, 계산 유형(예제 포함)
FIFOS와 같고 FIFOS와 다른 점
다음 표는 유사한 FIFO와 유사하지 않은 FIFO를 비교합니다.
| FIFO처럼 | FIFOS와 달리 |
|---|---|
| 선입선출(FIFO) 방식을 따릅니다. | 이 시스템은 긴급 메시지가 최전선에 도달하기 전에 특정 메시지를 선별하는 방법을 사용합니다. |
| FIFO는 송신 프로세스와 수신 프로세스 모두와 독립적으로 존재합니다. | 항상 사용 가능한 상태이므로 열고 닫을 필요가 없습니다. |
| 관련되지 않은 프로세스 간 데이터 전송을 허용합니다. | 열림과 닫힘 사이에 동기화 문제가 없습니다. |

