[IPC] Shared Memory - 가장 빠른 프로세스 간 통신
·
Dev/System Programming
들어가며지난 글에서 FIFO (Named Pipe)를 다뤘는데, 실습하면서 한 가지 아쉬운 점이 있었습니다. 바로 속도였죠. 간단한 메시지 주고받기에는 충분했지만, 큰 데이터를 전송하려니 느렸습니다.왜 느릴까요? FIFO는 Kernel을 거쳐서 데이터를 복사하기 때문입니다.FIFO 방식:Writer → [User Space] ↓ (복사!) [Kernel Space] ↓ (또 복사!) [User Space] → Reader→ 2번 복사! 느림!"메모리를 그냥 공유하면 안 되나?" 라는 생각이 들었습니다. 그게 바로 오늘 다룰 Shared Memory (공유 메모리)입니다.Shared Memory란?개념Shared Memory는 여러 프로세스가 같은 메모리 영역을 공유하는..
FIFO (Named Pipe) : 프로세스 간 통신의 기본
·
Dev/System Programming
들어가며프로세스 간 통신(IPC)을 공부하다 보면 가장 먼저 만나는 개념이 Pipe입니다.그런데 Pipe는 부모-자식 프로세스처럼 혈연관계가 있는 프로세스들끼리만 통신할 수 있다는 제약이 있죠. 만약 완전히 독립적인 두 프로그램이 통신하려면 어떻게 해야 할까요?바로 여기서 FIFO(Named Pipe)가 등장합니다. 이 글에서 FIFO의 개념부터 실제 구현까지, 직접 코드를 작성하며 겪은 문제들과 해결 과정을 공유하겠습니다.FIFO란?FIFO = First In First OutFIFO는 "First In First Out"의 약자로, 먼저 들어간 데이터가 먼저 나오는 자료구조입니다.마치 은행 대기줄처럼 선착순으로 처리되죠. 입구 → [A][B][C][D] → 출구 ↑ ..