수요 페이지 매김의 경우 언로드는 어떻게 작동합니까?

수요 페이지 매김의 경우 언로드는 어떻게 작동합니까?

내가 이해한 바에 따르면 Linux는 요구 페이징을 사용합니다. 즉, 프로세스가 시작되면 해당 프로세스에 대한 페이지만 실제로 파일 시스템에서 로드되고 이 페이지는 실행 중에 터치됩니다.

하지만 파일 시스템이 마운트 해제되었다는 것은 무엇을 의미합니까? 언로드는 언로드가 적용되기 전에 영향을 받는 프로세스의 나머지 페이지를 로드하는 것을 의미합니까(또한 영향을 받은 메모리 페이지를 "잠금")? 아니면 그렇지 않은 경우 나중에 페이지 오류가 발생할 때 제거하면 프로세스 실행에 문제가 발생합니까?

업데이트: Stephen Kitt가 답변을 제공한 후(예: 이 경우 제거를 방지함) 다음 질문에서 몇 가지 추가 정보를 찾았습니다.부트로더는 하드 드라이브에 루트 파일 시스템을 마운트하기 전에 램디스크를 마운트 해제합니까?. 거기에 제공된 설명은 동일한 결론으로 ​​이어지지만 요청 페이징 측면은 여기서 다루지 않습니다.

답변1

커널은 실행 중인 프로세스의 백업 저장소로 사용되는 파일 시스템이 마운트 해제되는 것을 방지하여 이 문제를 해결합니다.

$ dd if=/dev/zero of=test.img bs=1M count=50
$ /sbin/mke2fs test.img
$ sudo mount test.img /mnt/temp
$ sudo cp /usr/bin/sleep /mnt/temp
$ /mnt/temp/sleep 120 &
$ sudo umount /mnt/temp
umount: /mnt/temp: target is busy.
$ sudo umount -f /mnt/temp
umount: /mnt/temp: target is busy.
$ wait; sudo umount /mnt/temp

파일 시스템은 실행 중인 프로세스가 완료된 후에만 마운트 해제할 수 있습니다.

관련 정보