묻고 답해요
143만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨운영체제 공룡책 강의
TLB에 대한 추가 질문이 있습니다.
직전 질문에서 2번 질문에 대해 약간 모호하게 질문드린 것 같습니다. 괜찮으시다면 조금 더 구체적으로 질문드려보겠습니다. ㅠㅠ 제가 강의를 듣고 이해한 바로는 다음과 같습니다. 1. 프로세스는 각자 별도의 page table을 메모리에 가집니다. 2. 메모리에 존재하는 page table에 접근해 mapping정보를 찾아 frame에 접근하는 방법은 RAM에 2회 접근하므로 느립니다. 3. 2의 방법을 개선하기 위해 page table을 TLB 캐시 메모리에 저장해 page-frame mapping 정보를 빠르게 얻어냅니다. 제가 궁금하다고 생각하는 부분은 다음과 같습니다.(과정을 잘못이해한 것일 수 있습니다.) 1. 어떤 프로세스 A가 수행되면, A의 page table을 TLB에 올립니다. 2. 프로세스 A가 수행되다 인터럽트가 발생해 프로세스 B가 CPU를 할당받습니다. 이 때 2의 과정에서 CPU는 프로세스 B를 수행하므로 CPU에서 발생하는 주소는 B의 logical address입니다. 즉, (제가 생각하기로는) B의 logical address로 A의 page table로 초기화되어있는 TLB에 접근하는 것은 올바르지 않다는 생각입니다. 따라서 어떤 방법으로 TLB를 B의 page table로 초기화하는지에 대해 궁금증이 생겨 드린 질문이었습니다. 이렇게 작성하고 나니 꽤 깊은 질문을 굉장히 함축해서 드린 질문이었군요.. ㅎㅎ 죄송합니다. ps. 만약 너무 깊은 내용이거나 추후 강의를 들어가며 이해할 수 있는 내용이라면 답변해주지 않으셔도 괜찮습니다. 언제나 좋은 강의 감사드립니다.
-
미해결운영체제 공룡책 강의
Page Table과 TLB에 대해 질문이 있습니다.
안녕하세요! 강의 잘 듣고 있습니다. 강의를 들으면서 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를 채워나가나요? 언제나 좋은 강의 감사드립니다. 좋은 하루 되시길 바랍니다!