Skip to content

lazy load segment {pintos}


load_segment와의 차이점#

load 안에 load_segment를 수행하는데, 파일과 헤더 메타데이터를 load로부터 제공받아 유저 프로세스의 세그먼트에 올리는 일을 수행한다. Project1,2에서 사용하는 load_segment와 차이가 존재하는데, 이전에는 부지런하게 곧바로 유저 스페이스에 페이지를 할당해 memset을 수행했지만 Project3부터는 페이지를 할당하지 않고 vm_alloc_page_with_initializer를 통해서 lazy_load_segment를 콜백함수의 형태로 등록만 할 뿐이다.

따라서 load_segmentlazy_load_segment를 뒤늦게 바인드 하기 위한 작업을 수행한다

[!important] install_page는 오직 project2에서만 쓰는데 현재 코드 복사 과정에서 들어가 있는 것으로 알고있다.

호출 타이밍#

  • [?] page fault 발생시 호출이 될 것이라고 짐작은 하고 있으나 정확히 언제 해야하는지, 어떻게 호출해야하는지에 대한 정보가 없다.