컴퓨터 시스템에서 물리적인 메모리 주소와 프로그램이나 하드웨어 장치에서 사용하는 논리적인 주소 간의 대응 관계를 정의하는 프로세스를 나타타냄.
이는 운영 체제 및 하드웨어 아키텍처에 따라 달라질 수 있음.
프로그램 실행: 실행 중인 프로그램이 물리적인 메모리에 배치. 메모리 매핑은 프로그램의 코드와 데이터가 메모리 내의 특정 위치에 로드되는 방식을 정의.
주소 공간 분리: 각각의 프로세스는 독립적인 주소 공간을 가져야함. 메모리 매핑은 각 프로세스가 겹치지 않는 주소 공간을 할당하고, 다른 프로세스에게 영향을 주지 않도록 보장.
하드웨어 장치와의 통신: 메모리 매핑은 하드웨어 장치와 프로세서 간의 효율적인 통신을 지원. 메모리 매핑 레지스터를 통해 특정 주소 범위가 하드웨어 장치와 연결되어 있을 수 있음.
동적 메모리 할당 및 해제: 프로그램 실행 중에 동적으로 메모리를 할당하고 해제해야 할 때, 메모리 매핑은 이러한 동작을 지원. 힙 영역이 동적으로 확장되거나 축소되는 경우가 여기에 해당.
운영 체제의 역할: 메모리 매핑은 운영 체제 커널과 사용자 모드 간의 경계를 정의. 사용자 모드에서는 특정 주소 공간만 접근할 수 있고, 운영 체제는 보안 및 시스템 관리를 위해 다른 영역을 사용.
함수: mmap
활용: UNIX 및 Linux 시스템에서 사용
함수: CreateFileMapping
활용: Windows 운영 체제에서 사용
코드 예제를 통한 파일 매핑
언어: Python
코드 예제를 통한 프로세스 간 통신
언어: Python
munmap (POSIX), UnmapViewOfFile (Windows)