운영체제 기본/가상 메모리: 두 판 사이의 차이
mmap 파일 메모리 매핑 각론을 연결; 페이지 캐시 상세 확장은 보류 |
가상 메모리 원리를 ELF 실행 이미지 배치 각론과 연결 |
||
| 52번째 줄: | 52번째 줄: | ||
주소의 의미는 매핑이 유지되는 동안에만 성립한다. 매핑을 제거한 뒤 같은 주소를 재사용하면 남아 있는 포인터 값이 같아도 대상은 달라진다. 파일 매핑과 열린 파일의 참조도 수명이 다르다. Unix의 파일 매핑은 만들 때 사용한 디스크립터를 닫아도 유지될 수 있다. 사적 매핑의 변경은 원본 파일에 전달되지 않지만, 원본의 이후 변경까지 차단하는 고정 스냅샷을 보장하지는 않는다. 공유 여부, 접근 권한, 매핑의 수명은 각각 별도로 정해지는 조건이다. <ref name="source-4">[https://man7.org/linux/man-pages/man2/mmap.2.html Linux man-pages: mmap(2)].</ref> | 주소의 의미는 매핑이 유지되는 동안에만 성립한다. 매핑을 제거한 뒤 같은 주소를 재사용하면 남아 있는 포인터 값이 같아도 대상은 달라진다. 파일 매핑과 열린 파일의 참조도 수명이 다르다. Unix의 파일 매핑은 만들 때 사용한 디스크립터를 닫아도 유지될 수 있다. 사적 매핑의 변경은 원본 파일에 전달되지 않지만, 원본의 이후 변경까지 차단하는 고정 스냅샷을 보장하지는 않는다. 공유 여부, 접근 권한, 매핑의 수명은 각각 별도로 정해지는 조건이다. <ref name="source-4">[https://man7.org/linux/man-pages/man2/mmap.2.html Linux man-pages: mmap(2)].</ref> | ||
== 관련 각론 == | == 관련 각론 == | ||
* [[운영체제 기본/Linux의 ELF 로딩/ELF 세그먼트와 주소 공간|ELF 세그먼트와 주소 공간]]: 실행 파일의 코드·데이터를 파일 매핑과 익명 메모리로 구성하는 과정. | |||
* [[운영체제 기본/Linux의 파일 메모리 매핑|mmap을 통한 파일 읽기]]: 주소 영역 등록, 첫 메모리 접근, 파일 폴트와 PTE 설치. | * [[운영체제 기본/Linux의 파일 메모리 매핑|mmap을 통한 파일 읽기]]: 주소 영역 등록, 첫 메모리 접근, 파일 폴트와 PTE 설치. | ||
== 참고 문헌 == | == 참고 문헌 == | ||
<references /> | <references /> | ||