2015-01-15 1 views
1

일반적으로 명명 된 메모리 블록은 이름으로 할당하고 액세스 할 수있는 공유 메모리입니다. 내가 알고 싶은 것은 명명 된 메모리 블록을 사용할 때의 장점은 무엇이며 언제 메모리 관리 측면에서 사용해야 하는가?명명 된 메모리 블록이란 무엇입니까?

+0

많은 종류의 공유 ​​메모리가 있습니다. 명확히하기 위해,'MAP_ANON'이 없으면'mmap'을,'IPC_PRIVATE' 나'shm_open'이 아닌 다른 이름을 사용하는'shmget'을 의미합니까? 일반적으로 이름을 전달한다는 개념은 이름을 다른 프로세스로 전달하여 동일한 메모리를 공유하는 데 사용할 수 있도록하는 것입니다. – abligh

+0

@abligh 제 질문은 좀 더 일반적인 질문이었습니다.하지만 shmget을 사용하여 키를 사용하여 메모리에 액세스하고 이름을 사용하여'shm_open'을 사용하여 라인에 묻고 싶었습니다. – cmidi

+0

@abligh 죄송합니다. 제 질문은 더 구체적이었습니다. 제가 일하고있는 프로세서/아키텍처와 좀 더 일반적인 관점을 찾고있었습니다. 정말 도움이되는 공유 메모리 할당 개념과 사용법을 지적 해 주셔서 고맙습니다. – cmidi

답변

1

설명하는 내용은 운영 체제에 따라 다른 이름을 사용합니다. 여러 프로세스의 주소 공간에 매핑 할 수있는 페이지 범위입니다. - 페이징과 함께, 그것으로 모든 시간을 관련된 물리적 메모리가되지 않을 수도 있습니다

1) 페이지 파일

2) 물리적 메모리의 저장 : 정말 두 가지 구성 요소가 있습니다.

이 이름은 프로세스 주소 공간에 매핑 할 수 있도록 공유 메모리를 식별하는 방법으로 사용됩니다.

프로세스간에 데이터를 공유하는 데 사용됩니다. 그것들은 데이터베이스 시스템에 매우 일반적으로 사용되었습니다. 그것들은 프로세스 간 통신 중에서 가장 빠른 방법이지만 응용 프로그램이 구현해야하는 잠금 메커니즘이 필요합니다. 종종 그들은 작가 및 여러 독자와 함께 사용됩니다.

프로세스 A & B가 공유 메모리 블록에 매핑되고 프로세스 A가 블록에 쓰면 B가 즉시 변경 사항을 확인합니다.

관련 문제