• 카테고리

    질문 & 답변
  • 세부 분야

    시스템

  • 해결 여부

    미해결

Page Table과 TLB에 대해 질문이 있습니다.

21.04.15 18:44 작성 조회수 154

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를 채워나가나요?

언제나 좋은 강의 감사드립니다. 좋은 하루 되시길 바랍니다!

답변 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을 시켜주게 됩니다.