시스템 콜 통신(IPC)
시스템 콜 통신 방법 중 IPC는 프로세스 간 통신 방법입니다.
IPC는 다양한 프로세스 간에 데이터를 교환하거나 동기화하는 메커니즘을 제공하는 시스템 콜들의 집합입니다.
프로세스 간 통신 방법에 대한 간단한 설명은 위 페이지에서 찾아볼 수 있습니다.
메시지 전달 모델
메시지 전달 모델에서는 프로세스들이 데이터 블록을 명시적으로 보내고 받는 방식으로 통신합니다. 이 모델은 프로세스들이 물리적으로 분리된 메모리를 갖고 있을 때 주로 사용됩니다.
주요 특징
•
독립성 : 각 프로세스는 독립적인 메모리 공간을 가지며, 다른 프로세스의 메모리에 직접 접근할 수 없습니다.
•
명시적 통신 : 메시지를 전송하고 수신하는 작업은 명시적인 시스템 콜(send, receive)을 통해 이루어집니다.
•
동기화와 비동기화 : 메시지 전달은 동기식 또는 비동기식으로 설계될 수 있습니다. 동기식은 송신 프로세스가 메시지를 전송하고 수신 프로세스가 메시지를 수신할 때까지 기다립니다. 비동기식은 메시지를 버퍼에 보내고 바로 다음 작업으로 넘어갈 수 있습니다.
장점
•
간단한 인터페이스 : API가 간단하며 사용하기 쉽습니다.
•
안전성 : 프로세스 간에 데이터가 명시적으로 전송되므로, 메모리 충돌의 위험이 줄어듭니다.
단점
•
통신 오버헤드 : 메시지를 패킹하고, 전송하고, 언패킹하는 데 시간이 소요됩니다.
•
데이터 복사 : 데이터가 커널을 통해 여러 번 복사되므로 성능 저하가 발생할 수 있습니다.
공유 메모리 모델
공유 메모리 모델에서는 두 개 이상의 프로세스가 같은 물리 메모리 영역을 공유하여 데이터를 교환합니다. 이 모델은 특히 대량의 데이터를 빠르게 공유해야 할 경우 유리합니다.
주요 특징
•
메모리 공유 : 프로세스들은 공유 메모리 영역에 접근하여 데이터를 읽고 쓸 수 있습니다.
•
동기화 필요 : 데이터의 일관성과 동기화를 위해 세마포어나 뮤텍스 같은 동기화 메커니즘을 사용해야 합니다.
장점
•
빠른 데이터 접근 : 메모리에 직접 접근하기 때문에 메시지 패킹이나 언패킹 없이 빠르게 데이터를 교환할 수 있습니다.
•
유연성 : 공유 메모리 영역은 양방향 통신을 자유롭게 할 수 있어 유연합니다.
단점
•
복잡한 동기화 : 공유 메모리를 사용할 때는 동기화를 철저히 관리해야 하며, 이는 프로그래밍을 복잡하게 만듭니다.
•
보안 취약점 : 잘못된 메모리 접근은 시스템의 안정성을 해칠 수 있습니다.