동적 주소 변환
IT 위키
더 많은 작업
- Dynamic Address Translation; DAT; 동적 주소 변환
- 가상 메모리를 쓰는 시스템에서, 프로그램이 실행되는 동안 가상 주소를 주기억장치의 실제(물리) 주소로 바꾸는 일
가상 메모리를 쓰면 프로그램은 실제 기억장치 크기와 상관없는 가상 주소로 작성되고, 실행 중 명령이 메모리를 참조할 때마다 이 주소를 실제 주소로 바꿔야 한다. 변환을 적재 시점에 한 번 하지 않고 실행하는 동안 참조할 때마다 하기 때문에 '동적'이라고 부른다. 가상 주소와 실제 주소의 대응 관계를 주소 매핑(사상, mapping)이라 한다.
가상 주소를 (페이지 번호 p, 변위 d) 로 나눈다.
- 페이지 번호 p 로 페이지 사상표를 찾아 그 페이지가 올라가 있는 페이지 프레임 번호 p′ 를 얻는다
- 실제 주소 = p′ 의 시작 주소 + d
- 표에 해당 페이지가 주기억장치에 없다고 표시돼 있으면 페이지 부재가 일어나 운영체제가 보조기억장치에서 읽어 온다(가상 메모리 페이지 교체)
- Direct Mapping
- 페이지 사상표 전체를 주기억장치에 둔다. 사상표의 시작 주소는 페이지 사상표 기준 레지스터에 담는다.
- 데이터 한 번을 읽으려면 사상표를 읽는 접근 한 번 + 실제 데이터를 읽는 접근 한 번, 모두 주기억장치를 두 번 참조한다.
- 비용이 들지 않지만 가장 느리다.
- Associative Mapping
- 페이지 사상표 전체를 연관 메모리(내용으로 찾는 고속 기억장치)에 둔다.
- 페이지 번호를 주면 모든 항목을 동시에 비교해 바로 프레임 번호를 찾으므로 가장 빠르다.
- 연관 메모리가 매우 비싸서 사상표 전체를 담는 일은 현실적이지 않다.
| 방식 | 사상표를 두는 곳 | 변환 속도 | 비용 |
|---|---|---|---|
| 연관 사상 | 전부 연관 메모리 | 가장 빠름 | 가장 비쌈 |
| 연관/직접 사상 | 일부 연관 메모리 + 전체 주기억장치 | 중간(적중하면 연관 사상과 같음) | 중간 |
| 직접 사상 | 전부 주기억장치 | 가장 느림 | 가장 쌈 |
따라서 DAT 속도가 빠른 순서는 연관 사상 → 연관/직접 사상 → 직접 사상이다.
- 「Operating Systems」, Harvey M. Deitel, Addison-Wesley, 1990.