• 카테고리

    질문 & 답변
  • 세부 분야

    시스템

  • 해결 여부

    미해결

Shared Memory와 동기화 관련

21.04.01 00:57 작성 조회수 836

1

안녕하세요. 첫 강의 잘 들었습니다.

IPC 중에 2번째 방법으로 Shared Memory를 이용하거나

3번재 방법으로 동기화를 이용한다고 하셨는데

Shared Memory는 메모리 동시 접근하는 '위치'이고, 동기화는 동시 접근시 발생하는 문제를 예방하기 위한 '방법' 이라서

결국엔 같이 사용해야 하는 것 아닌가요?

혹시 둘을 구분하는 다른 예시가 있는지 (혹시나 해서) 여쭈어 봅니다.

답변 1

답변을 작성해보세요.

1

안녕하세요. 질문자님.먼저, 답변이 늦어져 죄송합니다.ㅠㅠ

shared memory롸 동기화 기법의 연관성에 대해 질문을 하셨는데요.. 말씀하신 대로 같이 사용하게 되는 경우가 많습니다. 하지만 필수인 것은 아닙니다.  

말씀하신 것처럼 shared memory에 대해 서로 다른 프로세스나 쓰레드가 read/write를 하게 되는 경우 뮤텍스 등의 동기화 기법이 필요합니다. 그래야 데이터가 깨지지 않습니다.

하지만 하나의 프로세스나 쓰레드만 read/write를 하는 경우에는 동기화 없이 shared memory를 사용할 수도 있습니다. 이런 경우에 왜 shared memory를 쓰나라고 반문을 하실 수 있는데요.. 프로세스가 재시작된다 하더라도 사용하던 데이터를 그대로 사용하고 싶은 경우 이렇게 사용할 수 있습니다. 한 프로세스가 파일에 mmap을 걸어 사용하는 경우도 이것에 포함되겠네요.

추가 질문 있으시면 댓글 남겨주세요! 감사합니다!!