WINDOWS/운영체제

[Windows] 가상 메모리와 물리 메모리

14J 2024. 6. 16. 00:11

 

1. 페이징

 

페이징 기법(paging)은 컴퓨터가 메인 메모리에서 사용하기 위해 2차 기억 장치로부터 데이터를 저장하고 검색하는 메모리 관리 기법이다  가상기억장치를 모두 같은 크기의 블록으로 편성하여 운용하는 기법이다. 이때의 일정한 크기를 가진 블록을 페이지(page)라고 한다. 주소공간을 페이지 단위로 나누고 실제기억공간은 페이지 크기와 같은 프레임으로 나누어 사용한다.

- 위키 피디아-

 

가상기억장치는 가상 메모리를 뜻합니다. 이 가상 메모리는 RAM과 하드 디스크와 같은 2차 기억 장치를 모두 포함한

메모리 개념입니다.

 

페이지 

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

 

프레임

물리 메모리를 일정한 크기로 나눈 블록

 

 

가상 메모리 테이블

 

위의 사진을 통해 페이지 테이블은 가상 주소 공간의 메모리와 물리적인 메모리를

Mapping 해주고 있는 모습을 볼 수 있습니다.

 

  • 페이지와 프레임의 크기는 관리를 용이하게 하기 위해 크기가 같습니다. 
  • 기본적으로 4KB 단위를 사용합니다.
  • n 개의 프로세스가 있다면 페이지 테이블의 개수는 n개 존재한다. ( 그림을 통해 확인 가능 )
  • 페이지 테이블은 운영 체제가 관리하는 커널 영역에 저장되어 있다.

  • 프로세스의 각 페이지는 물리 메모리인 프레임에 불연속적으로 할당된다.

가상 주소 공간이 다음과 같이 연속적이라고 가정합니다.

  • 프로세스의 가상 주소: 0x0000, 0x1000, 0x2000, 0x3000

이들 가상 주소는 물리 메모리의 다음과 같은 비연속적인 프레임에 매핑될 수 있습니다.

  • 물리 메모리 프레임: 0xA000, 0x3000, 0x5000, 0x8000

 

 

2. 페이지 테이블

32비트 운영체제를 기준으로 설명하겠습니다. 

 

페이지 테이블이 있습니다.

0부터 32의 주소 공간을 4의 단위로 나눈다고 하면 총 8개의 페이지가 존재할 수 있습니다.

 

 

 

페이지 테이블에는 페이지와 프레임에 대응되는 메모리의 시작 주소만을 가지고 있습니다.

 

그러면 어떻게 세부 주소까지 알 수 있을까요?


오프셋 (offset)

 

페이지의 개수는 주소의 개수를 페이지의 단위로 나눈 것입니다. 

( 예제를 기준으로는 32 / 4 = 7 )

 

세부 주소를 나타낼 때는 오프셋을 더해서 알 수 있습니다.

 

(페이지 * 페이지 크기 ) + offset

  • 2 = (0 * 4) + 2(오프셋)
  • 6 = (1 * 4) + 2(오프셋)
  • 19 = (4 * 4) + 3(오프셋)

 

이 오프셋을 통해 상세 주소를 알 수 있음을 알았습니다.

 

이 오프셋은 메모리 주소의 하위 비트를 참조하면 됩니다.

페이지와 프레임의 크기 단위가 똑같기 때문입니다.

이를 메모리 주소를 통해 알아보자면..

 

가상 주소: 0xCAFEBABE

  • 페이지 크기: 4KB (2^12 바이트)
  • 페이지 번호: 0xCAFEB (상위 20비트)
  • 페이지 오프셋: 0xABE (하위 12비트)

페이지 테이블 항목:

  • 페이지 번호 0xCAFEB → 프레임 번호 0x12345

물리 주소 계산:

  • 물리 주소: 0x12345000 + 0xABE = 0x12345ABE

 

예제

더보기
https://charles098.tistory.com/106
https://charles098.tistory.com/106

 

https://charles098.tistory.com/106

 

 

 

3. Free, Reserve, Commit

 

상태 설명 메모리 사용
Free 아직 할당되지 않은 영역 없음
Reseve 예약되었지만 실제 사용되지 않은 영역 없음 / 64KB 단위로 예약됨
Commit 예약된 메모리에 실제 물리적 메모리가 할당됨 있음

 

 

Link.

 

 

 

 

참조

 

1. Free, Commit

https://jungwoong.tistory.com/44

 

2. 오프셋 개념 (추천)

https://charles098.tistory.com/106