728x90
1. 정의
하드웨어가 프로그램의 가상 주소를 실제 물리적 주소로 변환하는 과정
이를 각 바인딩 단계에서 수행할 수 있음
2. 유형
- 컴파일 타임 바인딩 Compile Time Binding
- 주소 변환 시점: 컴파일 시
- 과정: 고급 언어 코드가 컴파일될 때, 변수와 함수의 메모리 주소가 결정됨
- 특징: 고정된 주소, 컴파일된 프로그램이 항상 동일한 메모리 주소를 사용함
- 주소 변환: 컴파일러가 소스 코드를 기계어로 변환하면서 가상 주소를 실제 물리적 주소로 매핑함
- 로드 타임 바인딩 Load Time Binding
- 주소 변환 시점: 프로그램이 메모리에 로드될 때
- 과정: 운영 체제가 프로그램의 실행 파일을 메모리에 로드하면서, 프로그램의 가상 주소를 실제 물리적 주소로 매핑함
- 특징: 로드될 때마다 주소가 달라질 수 있음. 유연성 증가
- 주소 변환: 로더가 프로그램을 메모리에 배치하면서 가상 주소를 실제 물리적 주소로 변환함
- 런타임 바인딩 Runtime Binding
- 주소 변환 시점: 프로그램 실행 중
- 과정: 프로그램 실행 중에 가상 주소를 실제 물리적 주소로 변환함. 주로 가상 메모리 시스템에서 사용됨
- 특징: 최대 유연성, 추가 오버헤드
- 주소 변환: MMU(Memory Management Unit, 메모리 관리 장치)와 페이지 테이블을 통해 가상 주소가 실행 중에 물리적 주소로 변환됨. 필요에 따라 동적 메모리 할당과 함께 수행됨
👉 1. 세 가지 바인딩 메커니즘은 주소 변환의 서로 다른 시점을 나타냄
2. 각각의 시점에서 메모리 주소를 어떻게 할당하고 변환하는지를 설명함
3. 주소 변환 과정
1) 가상 주소 분해: 가상 주소는 페이지 번호와 페이지 오프셋으로 분해됨
- 페이지 번호: 가상 주소의 상위 비트. 가상 메모리에서 페이지의 인덱스
- 페이지 오프셋: 가상 주소의 하위 비트. 페이지 내의 특정 위치
2) 페이지 테이블 조회
: 페이지 번호를 사용해 페이지 테이블을 조회함. 페이지 테이블은 페이지 번호에 해당하는 페이지 프레임 번호를 반환함
3) 물리적 주소 계산
: 반환된 페이지 프레임 번호와 페이지 오프셋을 결합하여 물리적 주소를 계산함
- 물리적 주소 = 페이지 프레임 번호 + 페이지 오프셋
출처
'Computer Science > OS' 카테고리의 다른 글
[OS] 가상메모리와 요구 페이징, 페이지 교체 (0) | 2024.06.23 |
---|---|
[OS] 페이징(Paging)과 세그멘테이션(Segmentation) (0) | 2024.06.23 |
[OS] 주소 공간과 가상 메모리 (0) | 2024.06.18 |
[OS] PCB와 Context Switching (0) | 2024.06.18 |
[OS] 시스템 콜 System Call (0) | 2024.06.16 |