2024 Operating Systems

Multi-Level Page Table 질문

Author
쌍두
Date
2024-04-20 17:48
Views
87
------------------------------------------수업게시판 규칙------------------------------------------------
커뮤니티가 아닌 공적인 수업 게시판으로 서로 간의 예의를 지켜야 합니다.
비밀 게시물의 경우 확인하지 않고 답변해드리지도 않습니다.
----------------------------------------------------------------------------------------------------------
Two-Level Page Table이 Linear Page Table에 비해 메모리 사용량을 줄일 수 있지만, 모든 가상 주소 공간이 사용될 경우 선형 페이지 테이블보다 더 많은 메모리를 사용하는게 맞을까요??
아래 사진처럼 pde, pte의 크기가 4byte라고 했을 때
Linear Page Table = 2^10 * ((2^10) * 4) = 4MB
Two-Level Page Table : 전체 페이지 테이블의 크기는 2^10 * ((2^10) * 4) = 4MB, 페이지 디렉토리의 크기는 2^10 * 4 = 4KB
이때 4MB에 페이지 디렉토리의 크기는 포함이 되어있지 않아 최종 크기는 4MB + 4KB 약간의 메모리를 더 사용한다고 이해했는데 맞는지 궁금합니다!
Total 1

  • 2024-04-20 18:31

    안녕하세요 조교입니다.

    일단 말씀해 주신 내용이 맞습니다.
    전체 메모리를 쓰는 경우에는 공간 효율성 측면에서 Two Level방식이 더 메모리를 많이 쓰게 됩니다.

    다만, 여러 프로세스가 존재할 때, 모든 메모리를 다 쓰는 프로세스 보다는 메모리 중 일부만을 사용하는 프로세스가 더 많을 것입니다.

    일례로, 우리가 사용하고 있는 컴퓨터에서 돌고 있는 프로그램들을 살펴보면, 많은 메모리를 사용하는 프로그램에 비해서 적은 메모리를 사용하는 프로세스들이 더 많습니다.
    윈도우 작업 관리자에서 실행되고 있는 프로세스들이 사용하고 있는 메모리의 양을 살펴보면 2MB를 넘지 않는 양의 메모리를 사용중인 프로세스들이 대부분입니다.
    이런 프로세스들에서는 Two Level방식이 효율적일 것입니다.
    Two Level이 비효율적인 경우는 할당된 주소 공간에 있는 메모리를 대부분 사용하고 있는 프로세스에 한정되며(32비트 OS는 4GB, 64비트 OS는 16 EiB), 마찬가지로, 작업 관리자를 통해서 확인해 보시면, 이런 프로세스는 극히 소수이거나 없다는 것을 확인하실 수 있을 것입니다.


Scroll to top