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