본문 바로가기
전산 관련 시험/전산학(컴퓨터일반) 개념정리

[OS] 페이징 (논리, 물리주소) 매칭을 통해 페이지 넘버 오프셋 지정

by 응_비 2024. 9. 10.

페이징(paging) 기법은 가상 메모리와 물리 메모리 간의 매핑을 통해 효율적으로 메모리를 관리하는 방법입니다. 이 과정에서 논리 주소물리 주소로 변환하는 과정이 중요한데, 이를 페이지 넘버오프셋으로 나누어 처리합니다.

1. 논리 주소(Logical Address) 구조

논리 주소는 프로세스가 가상 메모리 상에서 사용하는 주소이며, **페이지 넘버(Page Number)**와 **페이지 오프셋(Page Offset)**으로 나뉩니다.

  • 페이지 넘버: 가상 메모리에서 페이지가 몇 번째에 있는지 나타냅니다.
  • 오프셋: 해당 페이지 내에서의 위치를 나타냅니다.

논리 주소는 보통 다음과 같은 형태로 구성됩니다:

  • 상위 비트: 페이지 넘버
  • 하위 비트: 페이지 오프셋

2. 물리 주소(Physical Address) 구조

물리 주소는 실제 물리 메모리(RAM) 상의 주소입니다. 논리 주소에서 변환된 **프레임 번호(Frame Number)**와 오프셋으로 구성됩니다.

3. 논리 주소에서 물리 주소로의 변환 과정

페이징을 통해 논리 주소를 물리 주소로 변환하는 과정을 설명하겠습니다.

  1. 논리 주소의 페이지 넘버 추출: 논리 주소에서 상위 비트를 사용해 페이지 넘버를 추출합니다.
    • 예를 들어, 논리 주소가 16비트로 주어지고 페이지 크기가 4KB(2^12 bytes)라면, 상위 4비트는 페이지 넘버가 되고, 하위 12비트는 오프셋이 됩니다.
  2. 페이지 테이블 참조: 운영체제는 페이지 테이블을 참조하여 페이지 넘버에 해당하는 물리 메모리 상의 프레임 번호를 찾습니다.
    • 페이지 테이블은 각 페이지 넘버가 물리 메모리 상의 어느 프레임에 매핑되는지를 저장합니다.
  3. 물리 주소 생성: 페이지 테이블에서 얻은 프레임 번호와 논리 주소의 오프셋을 조합하여 물리 주소를 생성합니다.
    • 프레임 번호는 물리 메모리 상에서의 페이지 위치를 나타내며, 오프셋은 페이지 내에서의 위치를 나타냅니다.
    • 물리 주소 = (프레임 번호 << 오프셋 비트 수) + 오프셋

예시

  • 논리 주소: 16비트 주소 (가상 메모리), 페이지 크기 = 4KB (2^12 bytes)
    • 상위 4비트: 페이지 넘버 (2^4 = 16 페이지)
    • 하위 12비트: 페이지 내 오프셋 (2^12 = 4KB 범위)
  • 페이지 테이블에서 페이지 넘버 5가 물리 메모리의 프레임 8에 매핑된다고 가정하면:
    • 논리 주소의 페이지 넘버 5를 페이지 테이블에서 확인 → 프레임 번호 8
    • 논리 주소의 오프셋 값은 그대로 사용
    • 물리 주소 = 프레임 번호 8 << 12 (오프셋 비트 수) + 오프셋

이 과정을 통해 논리 주소를 물리 주소로 변환하고 메모리에 접근할 수 있습니다.

댓글