페이징(paging) 기법은 가상 메모리와 물리 메모리 간의 매핑을 통해 효율적으로 메모리를 관리하는 방법입니다. 이 과정에서 논리 주소를 물리 주소로 변환하는 과정이 중요한데, 이를 페이지 넘버와 오프셋으로 나누어 처리합니다.
1. 논리 주소(Logical Address) 구조
논리 주소는 프로세스가 가상 메모리 상에서 사용하는 주소이며, **페이지 넘버(Page Number)**와 **페이지 오프셋(Page Offset)**으로 나뉩니다.
- 페이지 넘버: 가상 메모리에서 페이지가 몇 번째에 있는지 나타냅니다.
- 오프셋: 해당 페이지 내에서의 위치를 나타냅니다.
논리 주소는 보통 다음과 같은 형태로 구성됩니다:
- 상위 비트: 페이지 넘버
- 하위 비트: 페이지 오프셋
2. 물리 주소(Physical Address) 구조
물리 주소는 실제 물리 메모리(RAM) 상의 주소입니다. 논리 주소에서 변환된 **프레임 번호(Frame Number)**와 오프셋으로 구성됩니다.
3. 논리 주소에서 물리 주소로의 변환 과정
페이징을 통해 논리 주소를 물리 주소로 변환하는 과정을 설명하겠습니다.
- 논리 주소의 페이지 넘버 추출: 논리 주소에서 상위 비트를 사용해 페이지 넘버를 추출합니다.
- 예를 들어, 논리 주소가 16비트로 주어지고 페이지 크기가 4KB(2^12 bytes)라면, 상위 4비트는 페이지 넘버가 되고, 하위 12비트는 오프셋이 됩니다.
- 페이지 테이블 참조: 운영체제는 페이지 테이블을 참조하여 페이지 넘버에 해당하는 물리 메모리 상의 프레임 번호를 찾습니다.
- 페이지 테이블은 각 페이지 넘버가 물리 메모리 상의 어느 프레임에 매핑되는지를 저장합니다.
- 물리 주소 생성: 페이지 테이블에서 얻은 프레임 번호와 논리 주소의 오프셋을 조합하여 물리 주소를 생성합니다.
- 프레임 번호는 물리 메모리 상에서의 페이지 위치를 나타내며, 오프셋은 페이지 내에서의 위치를 나타냅니다.
- 물리 주소 = (프레임 번호 << 오프셋 비트 수) + 오프셋
예시
- 논리 주소: 16비트 주소 (가상 메모리), 페이지 크기 = 4KB (2^12 bytes)
- 상위 4비트: 페이지 넘버 (2^4 = 16 페이지)
- 하위 12비트: 페이지 내 오프셋 (2^12 = 4KB 범위)
- 페이지 테이블에서 페이지 넘버 5가 물리 메모리의 프레임 8에 매핑된다고 가정하면:
- 논리 주소의 페이지 넘버 5를 페이지 테이블에서 확인 → 프레임 번호 8
- 논리 주소의 오프셋 값은 그대로 사용
- 물리 주소 = 프레임 번호 8 << 12 (오프셋 비트 수) + 오프셋
이 과정을 통해 논리 주소를 물리 주소로 변환하고 메모리에 접근할 수 있습니다.
'전산 관련 시험 > 전산학(컴퓨터일반) 개념정리' 카테고리의 다른 글
[DB] RDBMS (관계형 DB) VS NoSQL (비관계형 DB) (0) | 2024.09.10 |
---|---|
[OS] 페이징 기법 VS 세그멘테이션 기법 (0) | 2024.09.10 |
[OS] 페이지 테이블 용량 32 CPU, 2GB, 4KB (1) | 2024.09.10 |
[DB] CAP 이론과 RDBMS vs NoSQL (0) | 2024.04.24 |
[OS] 실제 메모리 용량, 4KB vs 2GB (전자계산기조직응용기사) (0) | 2024.04.24 |
댓글