더북(TheBook)

마찬가지로 같은 프로그램을 실행 중인 두 개 이상의 작업이 같은 데이터 객체를 동시에 읽거나 변경해야 할 수 있다. 이 때문에 공유 메모리 IPC는 오류를 일으키기 쉽고, 개발자가 공유 메모리를 보호(이 방법은 8장에서 설명한다)할 별도의 조치를 추가해 코드를 수정해야 한다는 부담이 생긴다.

공유 메모리 IPC의 또 다른 단점은 수평 확장이 어렵다는 것이다. 공유 메모리는 한 컴퓨터 안의 작업끼리만 공유할 수 있다. 도저히 한 대의 컴퓨터에 저장할 수 없는 규모가 큰 데이터를 처리하는 대규모 분산 시스템에서는 이 방법을 사용할 수 없다. 그러나 SMP 방식의 시스템에는 아주 적합하다.

SMP 방식의 시스템에서는 모든 프로세스 또는 스레드가 물리 메모리에 매핑된 단일 논리 주소 공간을 공유한다. 그만큼 공유 메모리 방식이 널리 쓰일 만하다. 특히 스레드를 대상으로 더욱 적합한데, 애초에 스레드 자체가 공유 메모리를 염두에 두고 만들어졌기 때문이다. 그러나 SMP 방식의 시스템에서는 공통 시스템 버스에서 병목이 발생해 프로세서를 늘리는 데 한계가 있다(3장 참고).

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