KNOU CS/운영체제
[운영체제] 가상메모리와 주소 변환 - Part3. 연관/직접사상의 동적 주소변환 과정
보눔비스타
2025. 6. 10. 18:24
앞선 글 Part2에서 페이지 사상표를 이용하여 동적 주소변환을 하는 직접사상에 대해 알아보았다.
이번 글에서는 주소변환의 또 다른 방식인 연관사상(associative mapping) , 그리고 연관사상과 직접사상을 같이 사용하는 연관/직접 사상에 대해 알아보도록 한다.
연관/직접 사상 방식의 주소 변환 흐름
가상주소는 (p, d) 형태다.
- p: 가상 페이지 번호
- d: 해당 페이지 안에서 몇 바이트 떨어져 있는지 나타내는 변위(오프셋)
이 주소를 물리주소 (p′, d)로 변환하는 과정은 다음 두 가지 중 하나로 진행된다.
✅ 1단계: 연관사상표에서 먼저 찾기
- 프로세스가 어떤 변수나 데이터(a)를 참조하는 명령어를 실행한다.
- CPU가 해당 명령을 실행해 가상 주소 (p, d)를 사용해서 메모리 접근을 시도한다.
- 하드웨어(MMU)는 먼저 연관사상표를 검색한다.
- 연관사상표는 최근에 접근된 페이지 정보 몇 개만 저장하고 있는 고속 메모리다.
- p가 연관사상표에 있다면 → 대응하는 물리 프레임 번호 p′를 바로 얻는다.
- 그럼 실주소 r = p′ × 페이지 크기 + d가 되고, 바로 메모리 접근이 완료된다.
- 이 경로는 빠르고 효율적이다.
❌ 2단계: 연관사상표에 없다면 → 직접사상표 조회
연관사상표에 p가 없다면, 다음과 같은 과정을 추가로 거쳐야 한다.
- 연관 검색에 실패하면, 메모리에 저장된 일반 페이지 사상표로 이동한다.
페이지 사상표의 시작주소 b에 p를 더해서 b + p 위치로 이동. - 이 위치에서 페이지 번호 p에 대응되는 물리 프레임 번호 p′를 찾는다.
- 이 p′ 값을 이용해서 실주소 r = p′ × 페이지 크기 + d를 계산하고 메모리에 접근한다.
- 동시에, 방금 얻은 이 매핑 정보 (p → p′)를 연관사상표에 등록한다.
- 오래된 항목은 밀려나고, 최신 항목이 들어간다 (보통 LRU 교체 방식 사용).
이 과정은 연관검색에 실패할 경우 → 페이지 사상표를 거쳐 다시 실주소를 얻어내는 경로다.
🔄 연관사상, 직접사상을 조합하는 이유
- 연관사상표는 작지만 빠르다. → 최근에 자주 참조하는 페이지를 캐시하듯 저장
- 일반 페이지 사상표는 느리지만 모든 정보를 가지고 있다.
- 이 둘을 조합하면 → 속도와 메모리 효율을 동시에 잡을 수 있다.
📌 연관/직접사상 과정 요약
입력 | 가상주소 (p, d) |
1단계 | 연관사상표에서 p 검색 |
2단계 | 있으면 → p′ 얻어서 p′ × M + d 계산 |
3단계 | 없으면 → 페이지 사상표의 b + p 위치 조회 |
4단계 | p′ 얻어서 주소 계산 후, 연관사상표에 등록 |