인프런 커뮤니티 질문&답변
Page Table과 TLB에 대해 질문이 있습니다.
작성
·
354
0
안녕하세요! 강의 잘 듣고 있습니다. 강의를 들으면서 2가지 질문이 있습니다.
1. Paging에 대한 설명 중 그림의 Page Table은 모두 하나의 덩어리로 표현되어있는데요.
Page Table은 그림에서 표현되는 것처럼 하나의 덩어리로 RAM에 할당되는 건가요? 아니면 다른 프로세스처럼 Page Table 처럼 Page 단위로 할당되나요?
2. TLB는 Page-Frame 매핑 정보를 RAM에 1회만 접근해 빠르게 알 수 있도록 하기 위한 HW라고 이해했습니다.
만약 Context Switching이 발생했을 경우 TLB는 어떻게 동작하나요? 아무래도 각 프로세스 별로 별도의 Page Table을 유지하니, flush 해버리고 처음부터 TLB miss를 발생시켜 TLB를 채워나가나요?
언제나 좋은 강의 감사드립니다. 좋은 하루 되시길 바랍니다!
퀴즈
사용자 프로세스가 사용하는 논리 주소와 실제 메모리의 물리 주소를 분리하는 이유와, 이 둘 사이의 변환을 담당하는 하드웨어는 무엇일까요?
메모리 사용의 유연성 / MMU(메모리 관리 장치)
보안 강화 / Base/Limit 레지스터
빠른 접근 속도 / TLB
프로그램 크기 감소 / 컴파일러
답변 1
2
안녕하세요?
1번:
구현상의 문제이긴 하지만, Page Table 정보는 PCB에 포함되어 있는 정보이기 때문에 Context Switch시에 Page 단위로 할당된다고 보시면 될 것 같습니다. 현대적인 OS들은 이미 이 책에서 다루는 고전적인 Paging 모델은 거의 안 쓰기 때문에, O/S 제작을 하는 경우가 아니라면 구현상의 문제까지 크게 고민하실 필요는 없으실 듯 합니다.
2번:
2번은 질문을 정확히 이해하기가 어려운데, TLB는 page table 액세스를 위한 캐시 메모리이기 때문에 Context Switching을 통한 CPU 스케줄링과는 무관하고요... 아마도 Page 가 Swap Out 되었을 경우를 질문하신 것 같은데, 그 경우에도 TLB와는 무관하게 Page Table을 통해 Page 액세스를 할 때, Swap In을 시켜주게 됩니다.




