메인 메모리
- 메모리는 주소가 할당된 일련의 바이트들로 구성
- CPU는 레지스터가 지시하는 대로 메모리에 접근하여 다음 수행할 명령어를 가져옴
- 명령어 수행 시 메모리에
필요한 데이터가 없으면 메모리로 해당 데이터를 우선 가져와야 함
MMU(Memory Management Unit, 메모리 관리 장치)
<aside>
❗
- 논리 주소를 물리 주소로 변환
- 메모리 보호나 캐시 관리 등 CPU가 메모리에 접근하는 것을 총 관리해주는 하드웨어
</aside>
- 메모리의 공간이 한정적이기 때문에, 사용자에게 더 많은 메모리를 제공하기 위한 “가상 주소”라는 개념이 등장
- 가상 주소는 프로그램상에서 사용자가 보는 주소 공간
- 이
가상 주소에서 실제 데이터가 담겨 있는 곳에 빠르게 접근하기 위해서 빠른 주소 변환이 필요한데, 이를 MMU가 도와준다
MMU의 메모리 보호
- 프로세스는 독립적인 메모리 공간을 가져야 하고, 자신의 공간에만 접근해야 한다
- 따라서
한 프로세스의 합법적인 주소 영역을 설정하고, 잘못된 접근이 오면 trap을 발생시키며 보호
base와 limit 레지스터를 활용한 메모리 보호 기법

- base 레지스터
- 메모리상의 프로세스 시작 주소를 물리 주소로 저장
- limit 레지스터
⇒ 안정성을 위해 base랑 limit 레지스터는 커널 모드에서만 수정 가능되도록 설계