Memory-Management
1 Memory Management
- 메모리 하드웨어를 구성하는 다양한 방법을 알아보자
- 프로세스에게 메모리를 할당하는 다양한 기법을 알아보자
- 현대 컴퓨터 시스템에서 페이징의 동작 방법에 관해 알아보자.
2 Hardware
2.1 CPU
- CPU가 직접 접근할 수 있는 저장장치는
메인 메모리
와 CPU 자체에 내장되어 있는레지스터
뿐이다 - 기계 인스트럭션은 메모리 주소만 인수로 취하고 디스크의 주소는 인수로 취하지 않는다.
- 따라서 모든 실행되는 명령어와 데이터는 CPU가 직접 접근할 수 있는 메인 메모리와 레지스터에 있어야한다.
- CPU에 내장되어 있는 레지스터들은 일반적으로 클록의 한 사이클 내에 접근이 가능하다
- 만약 데이터가 메모리에 없다면 CPU가 그것을 처리하기 전에 먼저 데이터를 메모리에 올려야한다.
- 그러나 메모리 버스를 통해 전송되는 메인 메모리는 많은 사이클이 소요된다
- CPU가 필요한 데이터가 없어서 명령어를 수행하지 못하고 지연되는 현상을
stall
이라 한다 - 이 문제를 해결하기 위해 CPU와 메인 메모리 사이에 빠른 속도의 메모리를 추가하는데 이를
cache
라 한다
- CPU가 필요한 데이터가 없어서 명령어를 수행하지 못하고 지연되는 현상을
3 Logical Address & Physical Address
Logical Address
- 프로세스 마다 독립적으로 가지는 주소 공간
- 각 프로세스마다 0번지부터 시작한다
- CPU가 사용하는 주소는 Logical Address이다
Physical Address
- 메모리에 실제 올라가는 위치
3.1 MMU(Memory Management Unit)
![[MMU.png]] ![[Hardware support for relocation and limit registers.png]]
- 논리 주소를 물리 주소로 바꿔주는 하드웨어
- base register(relocation register): 접근할 수 있는 물리적 메모리 주소의 최소값
- limit register: 논리적 주소의 범위