-
Virtual Memory란?CS/면접준비 2022. 7. 18. 17:15
Virtual Memory란?
OS에서 한정된 Memory(physical Memory)를 가상화시켜 더 효율적으로 사용하기 위해 나온 개념.
어떻게 가상화 시킨다는 것이 효율적일까?
Program이 실행될 때에는 전체가 Memory에 있을 필요가 없고, 실행되는 부분만 Memory에 존재하면 된다. 이를 사용하여 Physical Memory에 더욱 더 많은 Program을 올릴 수 있는 것이다.
그렇다면 어떻게 실행될 위치를 아는 것일까?
MMU(Memory Management Unit) 은 하드웨어
실제 Program별 Logical Memory를 통해 Phyiscal Memory를 변환하여 준다.
가상 메모리는 어떻게 관리되는가?
Paging / Segmentation / Paging+segmentation 총 3가지로 관리되고 있다.
특정 크기(1KB/2KB/4KB .. ) 으로 일정하게 나누어서 관리한다. 크기에 따라 Fragmentation의 장단점이 발생하는데, 너무 작게하면 페이지 갯수가 많아져 Overhead가 증가하여 성능이 저하된다.
Page를 Mapping은 어떻게 이루어지는가?
Page Table이라는 개념이 존재한다.
Page Table에는 Page number와 Page Frame(physical Memory를 page로 나눈거라 생각하면됨) 을 Mapping하여 저장합니다. 이 Table은 Memory에 존재하게 되는데, 이 때 만약에 MMU가 없다면 Mapping된 주소를 통해 다시 접근하게 되어 일이 2배가 되지만 하드웨어인 MMU가 효율적으로 도와줍니다.
Mapping 된 Bit는 무엇을 의미할까?
앞에 표현된 Bit는 각 Frame의 시작 주소이며, 뒤의 숫자가 Frame 내부에서 시작된 값입니다.
결국 이를 Frame number + offset이라고 표현하여 나타냅니다.
'CS > 면접준비' 카테고리의 다른 글
[OS] - Process vs Thread (1) 2022.09.29 [Database] - Join (1) 2022.09.21 [Database] - Key (0) 2022.09.20 캐시 메모리 (1) 2022.09.20 Dynamic Programming이란? (0) 2022.07.18