22

모든 프로세스는 고유 한 페이지 테이블을 가지고 있습니까? 아니면 단순히 페이지 항목을 하나의 큰 페이지 테이블에 추가합니까?모든 프로세스에 자체 페이지 테이블이 있습니까?

+1

그런데 번역 lookaside 버퍼에 대해 알게되면 컨텍스트 스위치가있을 때 변환 lookaside 버퍼가 현재 프로세스에 대해 다시로드된다는 것을 알면 혼동을 덜 일으킬 것입니다. – Elliot

답변

34

예 모든 프로세스에는 고유 한 페이지 테이블이 있습니다. 상위 프로세스 (쓰기시 복사) 또는 다른 프로세스 (공유 메모리)와 공유 될 수 있습니다. 그러나 일반적으로 모든 프로세스에는 자체 프로세스가 있습니다.

+0

좋은 답변, 빠른 답장을 보내 주셔서 감사합니다. – Steven

+0

커널 공간이 일반적으로 1GB를 초과하지 않는다고 가정 할 때 모든 페이지 테이블이 커널 메모리에 있어야하므로 시스템에서 상당한 수의 프로세스를 실행하는 것을 어떻게 처리합니까? – chamibuddhika

+0

@chamibuddhika는 각 프로세스의 페이지 테이블이 프로세스의 사용자 공간에 있다고 생각합니다. 왜 모든 페이지 테이블이 커널 메모리에 있어야한다고 생각합니까? 거대한 배열 인 전역 페이지 프레임 구조는 커널 공간에 있습니다. 프로세스의 경우, 그렇게 생각하지 않습니다. – Mike

1

역전 된 페이지 테이블see this answer을 사용하지 않는 한 예. 거꾸로 된 페이지 테이블은 전역이므로 각 항목에는 해당 페이지가 속한 프로세스가 포함되어야합니다.