21. 물리 메모리 크기의 극복

이주희·2022년 10월 27일
0

OS

목록 보기
14/17

모든 페이지들이 물리 메모리에 존재한다 가정했지만...
큰 주소공간 지원을 위해서는 일부 공간을 하드디스크 드라이브에 저장해야함

스왑 공간

디스크에 페이지를 저장할 일정 공간 확보가 필요
-> 스왑 공간(swap space)

Present Bit

물리메모리에 존재하지 않는 가능성이 생김
이를 표현하려면 PTE에서 present bit 사용

1로 설정되어 있다면 물리 메모리에 존재
0으로 설정되어 있다면 존재하지 않음

물리 메모리에 존재하지 않는 메모리 접근 = 페이지폴트

페이지폴트 발생시 운영체제가 페이지폴트 핸들러 실행

페이지 폴트

원하는 페이지의 디스크상의 위치는 어떻게 알까?
-> 해당 페이지의 스왑 공간상의 위치를 페이지테이블에 저장해둠

이후 PTE의 PFN을 해당 메모리 위치로 갱신
& 페이지 폴트 발생시킨 명령어 재실행!

메모리에 빈 공간이 없다면?

공간 확보를 위해 하나 또는 그 이상의 페이지가 아수됨

처리

TLB 미스 발생시

  1. 페이지가 존재하며 유효한 경우
    TLB 핸들러가 PTE에서 PFN 가져와서 명령 재시도

  2. 페이지가 유효하지만 존재하지 않는 경우
    페이지폴트 핸들러가 디스크에서 불러옴

  3. 페이지가 유효하지 않은 경우
    트랩 핸들러에 의해 처리

0개의 댓글