더북(TheBook)

이처럼 실행 흐름 사이에서 데이터를 공유해야 하는 경우는 흔합니다. 실행 흐름 하나가 데이터를 변경했을 때 다른 흐름도 변경된 데이터를 업데이트할 수 있어야 합니다. 실행 흐름은 결국 CPU를 점유하고 인스트럭션을 실행하는 것을 말하므로 여러 실행 흐름을 구현하려면 멀티프로세스나 멀티스레드로 구현해야 합니다.

먼저 멀티프로세스로 구현한다고 가정해 보죠. 프로세스는 서로 독립적인 메모리 공간을 가지므로 기본적으로 데이터를 공유할 수 없습니다. 멀티프로세스의 메모리 구조를 그림으로 볼까요?

219

그림 10-6 멀티프로세스의 메모리 구조


그림 10-6을 보면 멀티프로세스에서는 모든 프로세스가 서로 다른 메모리 공간을 가지므로 데이터를 공유하려면 특별한 기법을 사용해야 합니다.

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