가상 메모리의 개요
가상 메모리 시스템
- 물리 메모리의 크기와, 프로세스가 올라갈 메모리의 위치를 신경 쓰지 않고 프로그래밍 할 수 있도록 지원 하는 것
- 물리 메모리 크기와 상관 없이 프로세스에 커다란 메모리 공간을 제공하는 기술
- 가상 메모리 시스템의 모든 프로세스는, 물리 메모리와 별개로 자신이 메모리의 어느 위치에 있는지 상관 없이 0번지 부터 시작하는 연속된 메모리 공간을 가짐
- 논리 주소
- 가상 주소
- 물리 메모리 공간이 아닌 가상의 주소 공간을 가짐
- 가상 메모리는, 이론적으론 무한대의 크기 이지만, 현실적인 최대 크기는 물리 메모리의 최대 크기로 한정 된댜 ( 32Bit CPU → 4GB ... )
- 또, 물리 적으로 가상메모리에서 사용 할 수 있는 메모리의 전체 크기는 물리 메모리 크기 + 스왑 영역의 크기 이다.
- 동적 주소 변환 → 프로세스가 사용하는 가상 주소를 실제 메모리의 물리 주소로 변환 하는 작업
- 가상 메모리 에서는, 메모리 분할 방식으로 세그멘테이션-페이징 혼용 기법을 주로 사용 한다.
가상메모리, 물리메모리
매핑 테이블
- 음식점의 대기 손님에 대해, 번호 / 인원 / 주문 등을 적은 테이블을 만들 어 놓으면 자리 배정과 주문이 원할하게 이루어 질 수 있음
- 메모리를 관리 할 때도 매핑 테이블을 작성하여 관리
- 가상 주소는, 실제로 물리 주소나 스왑 영역 중 한곳에 위치하며 메모리 관리자는 가상 주소와 물리 주소를 일대일 매핑 테이블로 관리 함
- 가상 주소에 적힌 프로세스에 어떤 값이 필요 할 때는, 매핑 테이블에 적힌 물리 메모리의 위치 데이터에서 데이터를 가져오면 됨
Paging
페이징 기법의 구현