mmap 파일 및 malloc의 mmap

mmap 파일 및 malloc의 mmap

조금 혼란스러워요 mmap.

우리가 큰 메모리를 사용할 때 메모리에 영역을 할당하는 malloc이 함수를 호출한다는 것을 알고 있습니다 . mmap이 경우 mmap프로세스에 일부 메모리를 할당하면 됩니다.

mmap하지만 이는 하드 드라이브에 있는 파일을 메모리에 매핑시켜 일반 IO(읽기 및 쓰기)에 비해 더 나은 성능을 얻을 수 있게 해주는 기술이라고 들었습니다 .

나에게 위의 두 가지는 완전히 별개의 이야기입니다. 하나는 메모리 할당에 관한 것이고 다른 하나는 더 나은 방법으로 파일을 읽고 쓰는 것에 관한 것입니다.

그런데 왜 둘 다 부르나요 mmap? 이것은 단지 우연일까요, 아니면 실제로 동일한 기술일까요?

답변1

mmap방법을 제공합니다지도 메모리 페이지.리눅스에서(무엇보다도) 이러한 메모리 페이지에는 다양한 백업 장치가 있을 수 있습니다. 특정 파일에서는 아무것도 없거나(익명 매핑의 경우 MAP_ANONYMOUS) 장치나 파일을 스왑할 수 있습니다.

사용 사례는 완전히 다르지만 공통 주제는 프로세스에 주소 공간을 할당하고 거기에 페이지가 매핑되는 방식을 정의한다는 것입니다.

mmap다른 사용 사례 , 특히 공유 메모리 가 있습니다 .

관련 정보