더북(TheBook)

5.1.1 공유 메모리 IPC

작업끼리 정보 교환을 하는 가장 간단한 방법은 공유 메모리를 이용하는 것이다. 가상 주소 공간을 공유하는 두 개 이상의 작업이 메모리를 통해 마치 지역 변수를 다루듯 정보 교환을 하는 방식이다. 그러므로 어느 한 프로세스 또는 스레드가 메모리의 내용을 변경하면 운영체제를 거치지 않고도 다른 프로세스 또는 스레드에 변경된 내용이 그대로 반영된다.

친구 여럿이 함께 사는 셰어 하우스를 상상하면 이해하기 쉽다. 모두가 함께 쓰는 냉장고가 놓인 공유 주방이 있다고 생각해보라. 여러분이 맥주 한 팩을 산 뒤 친구들에게 냉장고 맨 아래 칸에 맥주를 사두었다고 알려주면 된다. 여기서 모든 사람(작업)이 맥주(공유 데이터)를 넣어두고 함께 사용하는 냉장고가 공유 메모리에 해당한다.

한 컴퓨터에서 두 프로세서(또는 코어)가 동일한 물리 주소의 메모리를 참조하는 경우, 또는 같은 프로그램의 여러 스레드가 동일한 객체를 참조하는 경우가 공유 메모리 IPC에 해당한다. 이를 코드로 나타내면 다음과 같을 것이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.