3월 27일 -IPC

Yullgiii·2024년 3월 27일
0
post-thumbnail

IPC(Inter-Process Communication)란?

IPC는 서로 다른 프로세스 간에 데이터를 주고받거나 신호로 상호작용하는 방법을 말한다. 다양한 IPC 메커니즘은 특정 시나리오에서 프로세스 간 통신 요구를 충족시키기 위해 설계되었다.

IPC의 종류

  • 파이프(Pipes): 한 프로세스에서 다른 프로세스로 데이터 스트림을 전송한다. 주로 단방향 통신에 사용된다.
  • 메시지 큐(Message Queues): 프로세스 간 메시지를 저장하는 큐에 메시지를 보내고 받는다. 비동기 통신을 지원한다.
  • 세마포어(Semaphores): 공유 자원의 접근을 제어하며, 동기화 문제 해결에 주로 사용된다.
  • 공유 메모리(Shared Memory): 두 개 이상의 프로세스가 동일한 메모리 영역을 공유해 데이터를 주고받는다.
  • 소켓(Sockets): 네트워크를 통해 서로 다른 시스템 상의 프로세스 간 통신을 가능하게 한다.

Shared Memory란?

Shared Memory는 두 개 이상의 프로세스가 접근할 수 있는 메모리 영역을 의미한다. 이 방식은 프로세스 간에 데이터를 매우 빠르게 주고받을 수 있으며, 다른 IPC 방식보다 훨씬 빠른 데이터 교환을 가능하게 한다.

Shared Memory 사용 시 유의사항

  • 동기화: 공유 메모리 사용 시 발생할 수 있는 충돌을 방지하기 위해 동기화 메커니즘이 필요하다.
  • 데이터 일관성: 공유 메모리 내의 데이터가 항상 최신 상태이고 일관성을 유지해야 한다.
  • 보안: 프로세스 간 직접 메모리를 공유하므로, 잘못된 접근으로부터 메모리를 보호하기 위한 조치가 필요하다.

메시지 큐의 단방향성과 양방향 통신

메시지 큐는 기본적으로 단방향 통신 메커니즘으로 설계될 수 있으나, 실제로 양방향 통신도 가능하다. 한 프로세스가 메시지 큐에 데이터를 전송하고, 다른 프로세스가 이를 읽는 방식으로 통신한다. 필요에 따라 응답을 위한 별도의 메시지 큐를 구성해 양방향 통신을 구현할 수 있다.

메시지 큐와 단방향 vs 양방향 통신

  • 메시지 큐는 주로 단방향 통신으로 사용되지만, 요청과 응답을 위한 별도의 큐를 사용하여 양방향 통신을 구현할 수 있다.
  • 이 방식은 통신의 복잡성을 관리하고 프로세스 간 독립성을 유지하는 데 유용하다.
profile
개발이란 무엇인가..를 공부하는 거북이의 성장일기 🐢

0개의 댓글