주기억장치보다 더 큰 메모리 영역을 제공하기 위해 우리의 컴퓨터는 가상 메모리라는 것을 사용한다.

이를 이용하여 프로세스들은 각각의 가상 주소 공간을 가지고 있다.

[그림 1]

가상적으로 주어진 주소 가상 주소(논리 주소)와 실제 메모리 상에서의 주소를 가리키는 물리 주소(실 주소)가 있다.

 

가상 주소 공간은 MMU(메모리 관리 장치)에 의해 물리 주소로 변환되며 두 주소를 매핑 시키기 위한 기술이 바로 페이징이다.

 

페이징 기법이란 컴퓨터가 메인 메모리에서의 사용을 목적으로 2차 기억장치로부터 데이터를 저장 및 검색하는 메모리 관리 기법이다.

 

이때 가상 기억 장치를 모두 같은 크기의 블록으로 편성하는데, 이 블록을 페이지라 한다.

주소 공간을 페이지 단위로 나눈 다음 실질적인 기억공간은 페이지 크기와 같은 프레임으로 나누어 사용한다.

 

페이지 : 가상 메모리를 일정한 크기로 나눈 블록 

프레임 : 물리 멤모리를 일정한 크기로 나눈 블록

 

프레임과 페이지의 크기는 같다.

 

페이지가 프레임과 매핑이 된다면, 물리 메모리에 위치한다.

그렇지 않았다면 페이지들은 외부 저장장치, 보조기억장치에 저장된다.

 

하나의 프로세스는 하나의 페이지 테이블을 갖는다. 페이지 테이블은 페이지의 정보가 담겨 있다.

페이지 번호, 페이지에 할당된 물리 메모리 즉, 프레임의 시작 주소를 값으로 가지고 있다.

 

페이지 테이블 엔트리(PTE)라는 것이 존재한다. 

이는 페이지 테이블의 레코드이다.

 

페이지 기본 주소(Page base address)

 

플래그 비트(Flag bit)

  •  접근 비트 : 페이지에 대한 접근이 있었는지를 나타낸다.
  •  변경 비트 : 페이지의 내용에 변경이 있었는지를 나타낸다.
  •  현재 비트 : 현재 페이지에 할당된 프레임이 있는지를 나타낸다.
  •  읽기/쓰기 비트 : 읽기/쓰기에 대한 권한을 표시한다.

마지막으로 동적 주소 변환이다.

 

페이징 기법에서 동적 주소 변환 과정은 알아두는것이 좋다.

 

1. 수행중인 프로세스가 가상 주소를 참조한다.

2. 페이징 기법을 통해 페이지 a가 페이지 프레임 A에 있음을 알아낸다.

3. 실 주소 = A + 오프셋을 한다.

'Basic Concepts > Reverse Engineering' 카테고리의 다른 글

IA-32(Intel Architecture 32) Register  (0) 2020.01.24
바이트 오더링  (0) 2020.01.24

+ Recent posts