[OS] Two-level Page Table, Hashed Page Tables, Clustered page tables, Inverted Page Table, 페이지 테이블을 어디다 두고 관리할까?
어떻게 운영체제가 메모리를 조금이라도 적게 쓰고 virtual 한 어드레스를 잘 번역할 수 있을까? 좀 더 빨리 번역할 수 있을까? 먼저 space overhead를 생각해보자. 32bit 머신에서 페이지 테이블이 4KB, 페이지 테이블 한 row가 4byte라고 한다면 엔트리가 2^20개이므로 총 2^24, 즉 프로세스당 페이지 테이블을 4MB 사용한다. 어떻게 좀 더 줄일 수 있을까?프로세스가 실행되면서 어드레스 스페이스를 전체 다 사용하지는 않는다. 페이지 테이블 엔트리가 2^20개라는 건 4GB를 다 사용한다고 생각하고 페이지 테이블을 만드는 것이다. 그런데 실제로 그런 프로세스는 잘 없고 대부분이 메모리의 일부분만 사용한다.오버헤드를 잘 줄이려면 실제로 사용되는 주소 공간의 일부만 매핑하면 된다..
2024.05.31