안녕하세요.
이번 포스팅에서는 메모리 주소 변환에 대해 다뤄보려고 합니다.
1. 메모리 가상화
- 메모리 가상화는 CPU 가상화의 LDE (Limited Direct Execution, 제한적 직접 실행) 기법과 유사하게 수행 됨.
- 하드웨어 기반 주소 변환 사용 : 가상 메모리 주소를 물리 메모리 주소로 변환
2. 동적 재배치 (Dynamic Relocation)
- 물리 주소 = 가상 주소 + 베이스
- 바운드 : 가용 메모리 범위 확인을 위해 사용
3. 하드웨어 요구 조건
- 커널 모드 : 사용자 모드 프로세스가 커널 연산을 실행하는 것을 방지 하기 위해 사용
- 베이스/바운드 레지스터 : 주소 변환과 범위 검사를 지원하기 위하여 CPU 당 한 쌍의 레지스터가 필요
- 가상 주소를 변환하고 범위 안에 잇는지 검사
- 베이스/바운드를 갱신하기 위한 커널 명령어 : 프로그램 시작 전 운영체제가 베이스와 바운드 레지스터 값을 지정할 수 있어야 함
- 예외 핸들러 등록을 위한 커널 명령어 : 운영체제가 예외 처리 코드를 하드웨어에게 알려줄 수 있어야 함
- 예외 발생 기능 : 프로세스가 커널 명령어 실행을 시도하거나 범위를 벗어난 메모리의 접근을 시도할 때 예외를 발생시킬 수 있어야 함
4. 운영체제 요구 조건
4-1. 메모리 관리
- 새 프로세스의 메모리 할당에 필요
- 종료 프로세스로부터 메모리 회수
- 빈 공간 리스트를 통한 일반적인 메모리 관리
4-2. 베이스/바운드 관리 : Context Switch 시 올바르게 베이스/바운드 설정
4-3. 예외 처리 : 예외가 발생할 때 실행 할 코드
'Computer Study > OS' 카테고리의 다른 글
[OS Study] 3-4. 메모리 Free Space 관리 (Ch. 17) (0) | 2021.12.13 |
---|---|
[OS Study] 3-3. 세그멘테이션 (Ch. 16) (0) | 2021.12.10 |
[OS Study] 3-1. 메모리 주소 공간 (Ch. 12~14) (0) | 2021.07.22 |
[OS Study] 2-2. CPU 스케쥴링 (Ch. 6~11) (0) | 2021.07.02 |
[OS Study] 2-1. CPU 가상화 - 프로세스 (Ch. 4~5) (0) | 2021.06.21 |