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 사용 방법과 달리 특정 긴급 메시지가 전면에 도달하기 전에 가져옵니다.

데일리 구루99 뉴스레터

지금 바로 전달되는 최신의 가장 중요한 AI 뉴스 기사로 하루를 시작하세요.