연예인

메인 메모리 (Main Memory) 핵심 요약 정리 (2)

비하인드톡톡 2022. 11. 2. 23:46

메인 메모리
메인 메모리

메인 메모리 정리

메인 메모리 외관 버퍼(TLB)가 있는 페이지 시스템으로 논리 주소를 물리적 주소로 변환하는 방법에 대해 논의하였다. 이 포스트에서는 가장 흔한 세 가지 페이지 테이블을 정리하는 방법을 살펴봅시다.

계층적 페이징

대부분의 현대 컴퓨터는 매우 큰 논리 주소 공간을 지원한다. 이런 환경에서 페이지 테이블 자체는 상당히 커집니다. 예를 들어, 32비트 논리 주소 공간을 가진 시스템을 생각해 보자.

 

이 시스템에서 페이지 치수가 4Ko(2 × 12)인 경우 페이지 테이블은 약 100만 개의 요소가 될 것이다. 각 항목이 4B로 다시 구성되므로 각 프로세스는 하나의 페이지 테이블만 저장하기 위해 4MB의 물리적 공간이 필요합니다.

 

이 경우 메인 메모리의 모든 페이지 테이블을 연속적으로 할당하는 것은 바람직하지 않다. 간단한 해결책은 페이지 테이블을 몇 개의 작은 조각으로 나누는 것인데, 이것은 또한 여러 가지 방법으로도 가능하다.

2단계 페이징 기법

단지 그 페이지의 테이블이 다시 만들어졌을 뿐입니다. 이전 시스템의 예를 들어보죠. 20비트 페이지와 12비트 오프셋이 필요합니다.

 

페이지 테이블도 페이지로 나눌 때 페이지 번호는 10비트 페이지 번호와 10비트 페이지 오프셋으로 나뉜다. 이 방법은 주소 변환이 외부로 내부로 전달되기 때문에 페이지 전개를 위한 지도표라고도 한다.

VAX 구조는 2단계 페이지를 지원한다. VAX는 페이지 크기가 512바이트이고 32비트 환경을 가지고 있다. 프로세스 방향의 논리적 공간은 4개의 동일한 영역으로 나뉘는데, 각각 2와 30 바이트 사이로 구성된다.

 

각 영역은 공간의 다른 부분을 나타내며, 처음 두 비트는 영역을 나타내고, 다음 21 비트는 영역의 페이지 번호를 나타내며, 마지막 9 비트는 선택한 페이지 내의 움직임을 나타낸다.

VAX에서 한 영역을 사용하는 프로세스의 첫 번째 단계의 페이지 테이블 크기는 항목당 2 V21비트 * 4바이트 = 8MB입니다. VAX는 메인 메모리 사용을 줄이기 위한 맞춤형 페이지 보드 페이지이기도 하다.

 

해시 페이지 테이블

해시드 페이지 테이블을 사용합니다. 논리 주소의 해시 값은 즉시 물리 주소로 간주하기 위해 사용됩니다. 일반적으로 해시 기술을 사용할 경우 입력 도메인의 크기는 출력 도메인의 크기보다 훨씬 커집니다.

 

그 결과 해시값이 중복됩니다. 이런 경우 충돌이 일어난 것으로 알려졌다.

 

이 경쟁 문제를 해결하기 위해 해시 테이블 내의 각 항목에 링크 리스트를 배치하고 콜 리젼이 발생한 논리 주소(가상 페이지 번호라고 불린다)의 물리 주소 값 쌍을 리스트로 관리합니다.

 

따라서 해시 테이블의 각 항목은 3개의 정보 필드를 갖는다. 필드 1은 가상 페이지 번호, 필드 2는 고려해야 할 페이지의 프레임 번호(물리 주소의 프레임 번호), 필드 3은 접속 목록의 다음 요소에 대한 포인터입니다.

 

논리 주소 값을 입력하면 해시 함수를 통해 해시 값으로 변환됩니다. 메인 메모리 해시 페이지 테이블에서 해당 값을 가진 항목을 찾아 첫 번째 항목의 필드 1 가상 페이지 번호와 비교합니다.

 

일치하는 경우 항목의 필드 2 프레임 번호를 사용하여 물리 주소로 변환되고 일치하지 않을 경우 연결 목록에 따라 필드 1과 비교됩니다.


테이블 내의 각 항목은 1프레임을 가리키지만, 「클러스터 페이지 테이블」에서는 16 프레임 등, 복수의 프레임을 가리킵니다. 따라서, 하나의 페이지 테이블 항목이 복수의 프레임으로 변환 정보를 가질 수 있고, 매번 해시 값을 얻을 필요가 없기 때문에 속도에 유리하다.

 

이러한 "클러스터 페이지 테이블"은 주소 공간 전체에 메모리 액세스가 불연속적으로 광범위하게 분산되는 희소 주소 공간에 도움이 됩니다.

 

역 페이지 테이블

 

일반적으로 각 프로세스에는 페이지 테이블이 있으며, 페이지 테이블에는 프로세스가 사용하는 각 페이지에 대한 항목이 있다. 이 표 구조는 프로세스가 페이지의 가상 주소를 통해 페이지를 참조하기 때문에 자연스럽다. 운영체제는 프로세스가 제출될 때마다 가상 페이지 주소를 실제 주소로 변환해야 한다.

 

페이지 테이블은 가상 주소에 대해 오름차순으로 정렬되며, 운영체제는 테이블의 물리적 페이지가 어디에 있는지 계산할 수 있어 접근이 가능하다.

 

이 기법의 단점은 각 페이지 표에 수백만 개의 요소가 있을 수 있다는 것이다. 이 그림들은 물리적 메모리 사용을 추적하기 위해 많은 물리적 메모리를 소비한다.

역방향 페이지 테이블은 종종 각 페이지 테이블 항목에 저장된 주소 공간 식별자(ID)를 필요로 한다. 이것은 주소 공간 ID를 저장할 때 특정 프로세스의 논리 페이지가 물리적 배열에 매핑되기 때문입니다.

이 방법은 논리 페이지당 요소를 갖는 대신 물리적 배열에 해당하는 요소만 배열에 저장하기 때문에 메모리의 공간을 훨씬 적게 차지한다. 그러나 역방향 페이지 테이블은 방향을 번역하는 데 더 많은 시간이 걸릴 수 있다.

 

메인 메모리 역방향 페이지 테이블은 물리적 주소들로 구성되어 있고, 탐색은 가상 주소를 기반으로 하므로 전체 페이지를 탐색해야 할 수도 있다.

 

2022.10.31 - [운영체제] - [운영체제] 메인 메모리 정리 (1)

 

[운영체제] 메인 메모리 정리 (1)

메인 메모리 프로세스는 작동하고 있는 프로그램이며, 여기서 "running"은 메인 메모리에 있다는 것을 의미합니다. 메모리는 거대한 바이트의 모자이크이며, 각각의 바이트에는 주소가 들어 있다.

hotpeople.co.kr