먼저 생활 비유
창고를 보는 마법 창문
물건을 매번 상자로 배달받지 않고 창문 너머 선반을 바로 보는 것 같지만, 실제로는 필요한 선반이 보일 때 관리자가 준비합니다.
6.5 · 입출력과 장치
read를 호출하지 않고 배열처럼 파일 바이트를 읽을 수 있을까요?
mmap은 파일 구간을 가상 주소에 연결하고 접근한 페이지가 없을 때 커널이 파일 내용을 채웁니다.
먼저 생활 비유
물건을 매번 상자로 배달받지 않고 창문 너머 선반을 바로 보는 것 같지만, 실제로는 필요한 선반이 보일 때 관리자가 준비합니다.
컴퓨터 예제로 바꾸기
data = mmap(file);
if (data[i] == target) ...프로그램은 메모리 주소를 읽고, 페이지가 RAM에 없으면 페이지 폴트가 커널의 파일 읽기를 유발합니다.
지금 일어나는 변화
파일 구간과 가상 주소 범위를 연결합니다.
이 그림에서 기억할 한 문장
mmap은 디스크를 RAM으로 바꾸지 않고 가상 메모리 시스템이 파일 입출력을 필요 시점에 대신 수행하게 합니다.
현재 상태
30초 확인 문제
mmap한 파일의 모든 바이트가 즉시 RAM에 올라올까요?
처음 보는 용어 두 개
이 절을 다 읽었다면
mmap은 디스크를 RAM으로 바꾸지 않고 가상 메모리 시스템이 파일 입출력을 필요 시점에 대신 수행하게 합니다.