Page Table 에 대해서..
글쓴이: firia2000 / 작성시간: 목, 2008/10/30 - 6:05오후
1.
페이지 크기가 4KB 인 32비트 시스템에서
4GB의 가상주소공간이 모두 하나의 page table에 의해 관리된다고 가정하면
page table entry 의 수는 4GB/4KB=(2^32)/(2^12) = 2^20 개가 되는데요
PTE는 매핑될 물리주소의 페이지 번호와 페이지의 상태를 나타내는 여러가지 bit들로 구성되어 있는 것으로 알고 있습니다.
그렇다면 PTE 하나의 크기는 어떻게 되는건가요?
물리 메모리(RAM)의 크기에 따라 달라지는건가요?
2.
page table 도 RAM에 올라간다고 알고 있는데 각 프로세스마다 page table이 존재하니까
실행되는 프로세스의 수가 많아질수록 RAM에 올라가게 되는 page table의 수도 증가하는건가요?
3.
가상주소공간은 프로세스마다 하나씩 부여가 되는데요
따라서 page table의 수도 프로세스의 수에 비례하게 되는데
특정 page table이 어느 프로세스의 것인지 어떻게 알 수 있나요?
Forums:
1. 위의 경우에 PTE
1. 위의 경우에 PTE 하나의 크기는 20 + alpha = 32bits = 4bytes가 되겠네요.
물리 메모리 크기와는 상관없습니다.
2. 그렇다고 볼 수 있죠.
3. 프로세스 입장에서는 page table이 하나 밖에 없으므로 쉽게 알 수 있습니다.
OS는 PCB로 관련 정보를 관리한다고 합니다.
page table entry는 실제
page table entry는 실제 physical memory(page frame)를 가리키는 entry입니다. page table은 가상 메모리를 4G까지 사용할 수 있도록 합니다. 즉 각 entry는 4byte로 표현을 하지요. 그리고 말씀하신 page table은 1 level 방식이기 때문에, page table을 프로세스마다 4MB씩 잡아야 합니다. 즉 메모리를 너무 많이 차지 하기 때문에 2 or 3 level paging을 사용합니다. 좀더 자세한 내용은 리눅스 커널의 이해 혹은 구글에서 paging에 관련된 내용을 읽어보시면 될 거 같습니다.
------------------------------------------------------
아직은 젊다. 모든 것을 할 수 있는 나이란 말이지.
------------------------------------------------------
아직은 젊다. 모든 것을 할 수 있는 나이란 말이지.
댓글 달기