가상 메모리(Virtual Memory)란?
가상메모리는 OS에서 사용되는 메모리 관리 기법의 하나로 컴퓨터가 실제로 이용가능한 메모리 자원(실제 주소, physical address)
을 추상화 하여 이를 사용하는 사용자들에게 매우 큰 메모리로 보이게 만드는 것이다.
☑️ 가상 메모리의 장점
1. 주기억장치의 효율적인 관리(스와핑)
하드디스크를 주기억장치에 대한 캐시로 설정. 쓰지않는 영역은 하드디스크로 옮긴 뒤 필요할 때만 램에 데이터를 불러와 올리고 사용하지 않으면 하드디스크로 내림으로써 램을 효과적으로 관리.
2. 메모리 관리의 단순화
각 프로세스마다 가상 메모리의 통일 된 주소 공간을 배정할 수 있으므로 메모리 관리가 단순해짐.
3. 메모리 용량 및 안정성 보장
가상메모리 공간은 거의 무한하다고 생각해도 된다. 때문에 프로세스들끼리 메모리 침범이 일어날 여지를 줄이게 됨.
페이지테이블 (Page Table)
페이지테이블? 가상 메모리 시스템에서 가장 주소를 실제 주소로 변환해주는 테이블
페이지? 가상메모리를 사용하는 최소 크기 단위
프레임? 실제 디스크나 메모리를 사용하는 최소 크기 단위
가상 메모리는 페이지 테이블에 의해 실제 주소로 변환된다.
즉, 페이지 번호와 프레임 번호를 짝지어 일종의 이정표 역할을 한다.
프로세스마다 각자 페이지 테이블을 가지고 있다.
CPU는 PTBR (Page Table Base Register)을 가지고 있고, PTBR은 각 페이지 테이블의 시작주소를 가리킨다.
TLB(Translation Lookasid Buffer)
페이지 테이블은 메모리에 존재하는데, 이는 메모리 접근 시간이 두배로 늘어난다는 단점이 있다.
(페이지 테이블을 보기위해 한번, 실제 주소로 접근하기 위해 한번)
때문에, TLB를 사용하여 페이지 테이블 접근 시간을 단축시킨다.
TLB? 페이지 테이블 항목을 캐시하는 고속 메모리
캐시? 동일한 데이터에 반복해서 접근해야 하거나 많은 연산이 필요한 일일때, 결과를 빠르게 이용하고자 성능이 좋은 혹은 가까운 곳에 저장하는 것
가상 주소에서 바로 페이지 테이블로 가지 않고 TLB를 확인하고, 만약 없다면 페이지 테이블로 가서 실제 주소를 가져온다.
'Computer Science > Operating System' 카테고리의 다른 글
프로세스 메모리 구조, 프로세스/스레드 차이 (0) | 2024.10.22 |
---|---|
프로그램 컴파일 과정 - C, C++/Java ( Interpreter / JIT ) (0) | 2024.10.18 |
페이지 교체 알고리즘 - FIFO, LRU, LFU, MFU, NUR, OPT(오프라인 알고리즘) (0) | 2024.10.17 |
가상메모리(2) - 페이지폴트와 스와핑, 스레싱 (1) | 2024.10.16 |
시스템 콜(System Call), 사용자 모드(User mode), 커널 모드(Kernel mode), modebit (4) | 2024.10.05 |