더북(TheBook)


6.6요구 페이징


가상 메모리는 요구 페이징(demand paging)으로 구현합니다. 요구 페이징이란 프로세스를 실행할 때 모든 페이지를 프레임에 매핑하는 것이 아니라, 필요한 페이지만 메인 메모리에 올려 실행하는 것을 말합니다. 프로세스가 처음 실행될 때 운영체제는 페이지 테이블을 메인 메모리에 만들고 실행에 필요할 것 같은 페이지만 먼저 프레임에 매핑합니다. 이러한 방식을 프리페어링(preparing)이라고 부릅니다.

페이지 테이블에서 페이지와 프레임을 매핑할 때는 메인 메모리에 올라와야 하는 페이지의 코드를 하드디스크에서 가져와 프레임을 생성하고 페이지와 매핑합니다. 매핑한 페이지는 페이지 테이블의 유효 비트를 1로 바꿉니다. 아직 필요하지 않아 프레임에 매핑하지 않은 페이지는 하드디스크에 있는 페이지의 위치로 초기화하고 유효 비트를 0으로 만듭니다. 이후 CPU가 페이지를 요청했을 때 프레임으로 매핑한 상태가 아니라면 빈 프레임에 페이지를 매핑합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.