Computer Study/OS

[OS Study] 3-2. 메모리 주소 변환 (Ch. 15)

해리팍 2021. 7. 30. 00:15
반응형

안녕하세요.

이번 포스팅에서는 메모리 주소 변환에 대해 다뤄보려고 합니다.





1. 메모리 가상화

- 메모리 가상화는 CPU 가상화의 LDE (Limited Direct Execution, 제한적 직접 실행) 기법과 유사하게 수행 됨.

- 하드웨어 기반 주소 변환 사용 : 가상 메모리 주소를 물리 메모리 주소로 변환


2. 동적 재배치 (Dynamic Relocation)

- 물리 주소 = 가상 주소 + 베이스

- 바운드 : 가용 메모리 범위 확인을 위해 사용


3. 하드웨어 요구 조건

- 커널 모드 : 사용자 모드 프로세스가 커널 연산을 실행하는 것을 방지 하기 위해 사용

- 베이스/바운드 레지스터 : 주소 변환과 범위 검사를 지원하기 위하여 CPU 당 한 쌍의 레지스터가 필요

- 가상 주소를 변환하고 범위 안에 잇는지 검사

- 베이스/바운드를 갱신하기 위한 커널 명령어 : 프로그램 시작 전 운영체제가 베이스와 바운드 레지스터 값을 지정할 수 있어야 함

- 예외 핸들러 등록을 위한 커널 명령어 : 운영체제가 예외 처리 코드를 하드웨어에게 알려줄 수 있어야 함

- 예외 발생 기능 : 프로세스가 커널 명령어 실행을 시도하거나 범위를 벗어난 메모리의 접근을 시도할 때 예외를 발생시킬 수 있어야 함


4. 운영체제 요구 조건

4-1. 메모리 관리

- 새 프로세스의 메모리 할당에 필요

- 종료 프로세스로부터 메모리 회수

- 빈 공간 리스트를 통한 일반적인 메모리 관리

4-2. 베이스/바운드 관리 : Context Switch 시 올바르게 베이스/바운드 설정

4-3. 예외 처리 : 예외가 발생할 때 실행 할 코드

반응형