물리 주소 방식 - CPU가 각 바이트가 가지는 고유 물리주소(PA:Physical Address)에 접근하여 메모리에 접근하는 방식
가상 주소 방식 - CPU의 가상주소지정으로 가상주소(VA)를 생성해서 메인메모리에 접근, 메모리로 보내지긴전에 적절한 물리주소로 변환해서 사용된다.
주소 번역 - 가상 주소(VA)를 물리주소(PA)로 번역하는 작업. CPU내 메모리 관리 유닛(MMU)가 메인 메모리에 저장된 참조 테이블을 통해 가상 주소를 번역한다.
주소 공간 - 비음수 정수 주소의 정렬된 집합
{ 1, 2, 3, 4, ... , N - 1 }
선형 주소 공간 - 주소공간의 정수가 연속적인 경우.
가상 주소 공간 - 가상 메모리를 갖는 시스템에서 특정 바이트 만큼 가상의 주소를 생성하는 공간.
물리 주소 공간 - 컴퓨터 시스템이 시스템 내에서 M바이트 만큼 가상 메모리와 대응되는 주소 공간.
주소 공간은 데이터 객체와 그것들의 주소를 명확하게 구분해주기 때문에 중요하다.
가상메모리는 디슽크에 N개의 바이트 크기의 셀 배열로 구성된다. 바이트는 특정한 가상 주소를 가지며, 배열의 인덱스로 작용한다. 메모리 계층 구조 내부에 있는 캐시는 블록 단위로 분할 되며, 디스크와 메인 메모리사이 다리 역할을 한다. 이때 VM system에서 규정된 사이즈의 블록 단위들을 가상 페이지라고 한다.
물리 피에지 또한 물리 페이지로 분리되어 사용된다. 물리 페이지의 경우 물리 프레임이라고도 불린다.
가정 페이지의 집합은 언제나 아래 3가지 상태중 하나의 상태만을 가진다.
Unallocated: 아직 시스템에 의해 할당되지 않은 상태.
Cached: 현재 물리 메모리에 캐시되어 할당된 페이지들.
Uncached: 물리 메모리에 캐시되지 않은 할당된 페이지들.
DRAM 캐시 - 메인 메모리로 캐싱하는 VM 시스템 캐시를 말함.
SRAM 캐시 - CPU와 메인 메모리 사이의 캐시 메모리를 말함.
메모리 계층 구조에서 DRAM캐시의 위치는 DRAM이 구성된 방식에 영향을 받는다.
DRAM의 캐시 미스가 SRAM의 캐시 미스에 비하면 비용이 매우 비싸다.
→ DRAM의 캐시 미스는 DRAM보다 10만배 느린 디스크에서 처리되지만 SRAM의 캐시 미스는 디스크보다 빠른 DRAM 기반의 메인메모리 부터 지원을 받기 때문이다.
→ 더불어, 첫 번째 바이트를 읽는 비용이 연속적인 바이트를 읽는 비용보다 10만배 비싸기 때문에 더더욱 엄청난 미스 비용이 발생한다.
큰 비용으로 인해서 가상 페이지가 커지고 있
페이지 테이블 - 가상 페이지를 물리 페이지와 매핑하기 위해 물리 메모리에 저장된 자료구조의 조합. 주소 번역 하드웨어가 가상 주소를 물리주소로 변환할 때 해당 페이지 테이블을 참고한다.
DRAM의 캐시 미스를 페이지 오류라고 한다.
운영체제가 가상 메모리의 새로운 페이지를 할당하면, 테이블 페이지의 유효 비트가 0이고 주소 필드가 NULL인 엔트리를 찾아 페이지의 주소를 삽입한다.
초기 시스템에서는 더 작은 가상 주소 공간을 사용했지만, 적은 공간이더라도 메모리 관리를 단순화하는 것이 가능했다. 그리고 메모리 관리 측면에서 페이징과 분리된 가상 주소 공간의 조합은 다양한 방식에서 영향을 끼쳤다.
모든 프로세스는 사적 메모리를 읽거나, 수정할 수 없어야 한다. 이런 관점에서 가상 주소 공간을 사용하면 메모리 보호가 가능해진다.
SIGSEGV
시그널을 위반한 프로세스로 보내 커널 내에 예외 핸들러로 제어를 이동 시키고, 리눅스 쉘의 경우 이런 에러를 Segmentation Falut
라고 보고한다.