8-1.[os] 가상 메모리의 개요
가상 메모리
- virtual memory
- 컴퓨터마다 물리 메모리, 즉 실제 메모리의 크기가 다름
- 다른 물리 메모리에서 일관되게 프로세스를 실행할 수 있는 기술
- 물리 메모리의 크기와 프로세스가 올라갈 메모리의 위치를 신경 쓰지 않아도됨
- 가상 메모리는 물리 메모리의 크기와 상관없이 프로세스에 커다란 메모리 공간을 제공하는 기술
- 프로세스는 운영체제가 어디에 있는지, 물리 메모리의 크기가 어느 정도인지 신경 쓰지 않고 메모리를 마음대로 사용할 수 있다
가상 메모리 시스템
가상 메모리 개념
- 논리 주소: 물리 메모리의 주소 공간에 비례
- 가상주소: 물리 메모리 공간이 아닌 가상의 주소공간
이론: 가상 메모리 = 무한대의 크기? 실제: 가상 메모리의 최대 크기 = 물리 메모리의 최대 크기 = CPU의 비트 크기 = 예시) 32bit CPU -> 2^32-1(16진수로 FFFFFFFF) -> 4GB -> 메모리의 최대 크기 & 가상 메모리의 최대 크기
- 물리 메모리의 부족한 부분을 스왑 영역으로 보충
- 스왑 영역: 하드디스크에 존재하지만 메모리 관리자가 관리 하는 영역으로서 메모리의 일부
- 스왑 아웃: 물리 메모리가 꽉 찼을 때 일부 프로세스를 스왑 영역으로 보냄
- 스왑인: 프로세스가 작업을 마치면 스왑 영역에 있는 프로세스를 메모리로 가져옴
- 가상 메모리의 크기: 물리 메모리(실제 메모리)+ 스왑영역
동적 주소 변환
- Dynamic Address Translation (DAT)
- 가상 주소를 실제 메모리의 물리 주소로 변환
- 메모리 관리자가 물리 메모리를 어떤 방법으로 나눌지, 사용자 프로세스를 어디에 배치할지, 부족한 물리 메모리를 어떻게 처리할지 등의 복잡한 문제를 처리
가상 메모리의 메모리 분할방식
- 운영체제를 제외한 나머지 메모리 영역을 일정한 크기로 나누어 일반 프로세스에 할당
- 세그먼테이션-페이징 혼용 기법
매핑 테이블의 필요성과 역할
- 메모리 관리자는 가상 주소와 물리 주소를 일대일 매핑 테이블로 관리
- 가상주소 -> 매핑테이블 -> 물리 메모리
- 물리 메모리가 세그먼테이션이나 페이징으로 분할된 경우:
- 페이지 매핑 테이블 page mapping table
- 세그먼테이션 매핑 테이블 segmentation mapping table