일반적인 memory 사용과 shared memory를 사용하는것이 성능상

albamc의 이미지

업무에서 shared memory의 사용을 고려하고 있는데요.

memory 입출력이 빈번할 경우 shared memory가

성능에 영향을 주는지 궁금하군요.

얼핏 생각하면 성능에 별 차이는 없을듯한데 ...

혹시 아시는 분 계시면 답변 부탁드립니다.

happyjun의 이미지

shared memory는 말 그대로 여러 프로세스들이 메모리를 공유하는 방식입니다. 읽기만 하는 경우는 문제가 없겠지만 읽기-쓰기가 동시에 일어나는 경우 쓰레드에서의 메모리 공유와 같이 메모리 잠금 장치가 필요합니다.

I/O를 공유하는 방법은 여러가지 있으며 목적에 따라 다른 방법을 선택할 수 있다고 봅니다.

----------------------------------------
http://moim.at
http://mkhq.co.kr

ssehoony의 이미지

단순히 메모리 접근 속도를 따진다면 공유메모리가 늦습니다.
이유는 CPU 의 1차 2차 (3차) 캐쉬 문제인데요.
공유메모리를 말 그대로 공유되어야 하기 때문에
CPU 간의 내부캐쉬 싱크문제가 생기지요
그래서 이론상으론 공유메모리가 늦으면 늦었지 빠르진 않습니다.

공유메모리는 IPC 중에 빠른 방법이지 메모리를 엑세스하는데 빠른 방법이 아닙니다. :)