OS와 하드웨어
파일을 메모리에 대응시키는(mmap과 같은) 구조에서 파일 내용을 읽을 때 일어나는 일에 대한 설명으로 올바른 것은 무엇입니까?
- A처음 접근할 때 페이지 폴트가 발생하여 그 부분이 읽혀 들어온다
- B대응시킨 시점에 파일 전체가 물리 메모리에 읽혀 들어오고, 그 이후 디스크는 사용되지 않는다
- C접근할 때마다 시스템 콜이 호출되어 1바이트씩 파일에서 읽힌다
정답과 해설 보기
정답: A. 처음 접근할 때 페이지 폴트가 발생하여 그 부분이 읽혀 들어온다
파일을 주소 공간에 대응시키면 OS는 페이지 테이블에 그 범위를 등록할 뿐 곧바로 읽어 들이지 않습니다. 프로그램이 처음 접근하면 페이지 폴트가 발생하고, OS가 파일의 해당 부분을 물리 페이지에 읽어 들이며, 이후에는 일반 메모리로서 읽고 쓸 수 있습니다. 디맨드 페이징과 같은 구조로, 읽을 때마다 시스템 콜을 호출할 필요가 없고 데이터의 불필요한 복사도 줄일 수 있습니다. 전체를 처음에 읽어 들이는 것은 아닙니다.
- A. 올바릅니다. 처음 접근할 때 페이지 폴트가 발생하여 필요한 부분만 읽혀 들어옵니다.
- B. 전체를 처음에 읽어 들이는 것은 아닙니다.
- C. 한 번 읽어 들인 뒤에는 일반 메모리로서 접근할 수 있어 매번 시스템 콜이 필요 없습니다.