IPC

안준성·2024년 8월 15일
0

OperatingSystem

목록 보기
22/22
post-thumbnail

IPC는 Inter-Process Communication의 약자로,
서로 다른 프로세스 간에 데이터를 주고 받기 위해 사용하는
다양한 메커니즘과 기술을 포괄하는 개념이다.
IPC는 서로 다른 호스트에 위치한 프로세스 간의 통신도 포함하지만,
일반적으로 이는 네트워크 통신 혹은 RPC와 같은 별도의 이름으로 구분지어 부른다.

IPC의 필요성

요즘에는 다중 프로세스가 기본이기 때문에
이 프로세스들끼리 데이터를 주고 받을 일이 많다.
하지만 단순히 주고 받는다고 끝이 아니라
안전하고 빠르게 통신해야 하며 주고 받는 데이터에 대한 동기화 문제도 해결해야 한다.

IPC 모델과 메커니즘

IPC 모델은 IPC의 개념적인 접근 방식, 즉 설계 철학을 의미한다.
이는 여러 메커니즘으로 구현될 수 있으며,
주료 공유 메모리 모델메시지 전달 모델 두 가지 주요 모델이 있다.

IPC 메커니즘은 이러한 모델을 구현하는 구체적인 메커니즘을 의미한다.
주요 메커니즘으로는 파이프, 메시지 큐, 공유 메모리, 소켓 등이 있다.

Shared Memory Model

프로세스들이 같은 메모리 영역을 공유해서
여기다 읽고 쓰고 하는 방식이다.
프로세스가 직접 메모리에서 읽고 쓰기 때문에
매우 빠른 통신이 가능하다.

하지만 같은 메모리 영역을 공유하기 때문에
동기화 문제를 해결하기 위해 뮤텍스 같은 동기화 도구가 필요하다.

대표적인 구현체로는 POSIX 공유 메모리Memory-Mapped Files 등이 있다.

Message Passing Model

메시지 전달 방식은 프로세스 간에 메시지를 주고 받는 방식이다.
여기서 메시지는 보내고자 하는 데이터로 커널에 의해 관리된다.
즉, 메시지를 주고 받으려면 msgsnd, msgrcv와 같이 시스템 콜을 호출하면 된다.
커널은 메시지 큐를 통해 메시지를 관리하여
비동기 통신이 가능하다.
메시지 전달 모델은 커널이 관리해주기 때문에
동기화 문제는 신경쓰지 않아도 된다.

메시지 전달 모델의 대표적인 구현체로는 파이프Message Queues, 소켓 등이 있다.

profile
안녕하세요 준갑습니성

0개의 댓글