개요
- 개념 : 주기억장치의 이용 가능한 기억 공간보다 훨씬 큰 주소 지정을 할 수 있도록 한 개념
- 가상 메모리는 하나의 프로세스 전체가 한 번에 주기억 장치 내에 존재하지 않고 일부만 있어도 수행하게 하는 기법
- 가상 메모리를 사용하면 사용자는 실제 주소 공간의 크기에 구애 받지 않고 보다 큰 가상 주소 공간상에서 프로그래밍을 할 수 있을 뿐만 아니라, 주기억장치보다 크기가 큰 프로세스를 수행시킬 수 있음
동적 주소 변환(dynamic address translation)
- 주소 사상 기법: 가상 주소 -> 실제 주소
- 동적 주소 변환(DAT : Dynamic Address Translation) 기법
- 프로세스가 수행될 때 가상 주소를 실제 주소로 변환하는 대표적인 메커니즘
블록 사상(block mapping)
- 블록 사상 시스템에서의 가상 주소 양식
- 블록: 가상 메모리에 대한 분할 단위
- 블록의 크기, 같은 크기(page) or 다른 크기(segment) 등
- DAT에서는 어떤 가상기억 주소에 대한 주기억장치 내의 존재 여부와 존재할 경우에 주기억장치의 어디에 위치하는가를 나타내기 위한 대응 관계 테이블을 유지, 관리
- 항목별로 사상시키는 것은 비효율적이기 때문에, 사상 항목을 블록이라고 하는 단위로 묶음으로써 여러 가상 메모리의 블록이 위치하는 장소만을 시스템이 추적하도록 함
- 블록 : 가상 메모리에 대한 분할 단위를 의미
- 블록 크기가 크면 클수록 사상 정보를 기억하는 데 필요한 주 기억장치의 양은 더욱 작아짐
-> 기억 장치의 오버헤드는 낮아지지만, 대형 블록은 보조기억장치와 주기억장치 간의 데이터 전송에 많은 시간을 필요하며, 많은 실기억 공간의 소모와 주기억장치를 공유하는 프로세스 수에도 제한을 받게 됨
- 블록을 같은 크기로 구성할 때 이를 페이지(page)라 하며, 페이지와 관련된 가상 메모리 구성을 페이징(paging)이라 함
- 블록을 서로 다른 크기로 할 때 그것을 세그먼트(segment)라고 하며, 그와 관련된 가상 메모리 구성을 세그멘테이션(segmentation)이라 함
- 어떤 시스템에서는 여러 크기의 세그먼트를 다시 일정 크기의 페이지로 재구성함으로써 위의 두 가지 방법을 결합하여 사용
블럭 사상(mapping)을 통한 가상 주소변환