논리 주소
논리 주소(Logical Address) 또는 가상 주소(Virtual Address)는 CPU와 프로세스가 바라보는 메모리 주소다. 실제 하드웨어 메모리 위치인 물리 주소와는 다르며, 운영체제와 MMU(Memory Management Unit)가 둘 사이를 변환해 준다.
왜 분리하는가
- 메모리 보호: 한 프로세스가 다른 프로세스의 영역을 침범하지 못하도록
- 멀티프로세싱: 각 프로세스에 자기만의 연속된 주소 공간 제공
- 실제 메모리보다 큰 가상 공간: 페이징으로 디스크까지 활용 가능
- 실행 위치 독립성: 어디에 적재되든 프로세스 코드는 동일
변환 과정
프로세스의 논리 주소
↓ (MMU + 페이지 테이블)
물리 주소 → 실제 RAM
페이지 테이블이 논리 주소를 물리 주소로 매핑한다. 이 변환은 매 메모리 접근마다 일어나므로 TLB(Translation Lookaside Buffer)로 캐싱한다.
페이징 vs 세그먼테이션
| 방식 | 특징 |
|---|---|
| 페이징(Paging) | 고정 크기 단위, 외부 단편화 없음 |
| 세그먼테이션 | 논리적 단위(코드/데이터/스택), 외부 단편화 발생 |