공부
운영체제 - 물리 메모리 관리
myeongjaechoi
2024. 5. 1. 10:26
메모리 구조
- 메모리의 각 주소는 1 byte 단위로 나뉨
- CPU 내의 MMU에서 논리 주소 또는 가상 주소를 물리 주소로 변환해 줌
- 물리 메모리로부터 읽거나 메모리에 쓸 데이터의 물리 메모리 주소는 CPU내의 메모리 주소 레지스터(MAR)에 저장됨
- 메모리 주소 레지스터(MAR) 크기 - 2^32byte (4GB)
- 주소는 0번 부터 시작
- 메인 메모리는 OS 영역과 user 영역으로 나뉨
- OS는 사용자 OS가 침범하지 못하도록 분리함
물리 주소와 논리 주소
- 물리 주소
- 실제 물리 메모리(RAM)의 주소
- 메모리 주소 레지스터(MAR)에 저장되는 주소
- 논리 주소
- CPU에 의해 생성되는 논리 주소
- 각 프로세스는 독립적이고 연속된 논리 주소 공간을 가짐
- 실제 물리 주소로 접근하기 위한 참조용으로 사용
Adrdress binding
- 프로그램(프로세스)의 논리 주소를 실제 메모리의 물리 주소로 변환(맵핑)하는 작업
- Compile time binding - 실행 시작 전 컴파일될 때 맵핑
- Load time binding - 실행 시작할 때 맵핑
- Run time binding - 실행 중일 때 맵핑
Memory management unit(MMU)
- CPU내에서 메모리 관리를 담당하는 하드웨어
- Run time 동안 논리 주소를 물리 주소로 변환(맵핑)
- 재배치 레지스터에 논리주소를 더해 물리 주소를 구함
- 재배치 레지스터 : MMU내의 레지스터로, 물리 메모리에서 프로세스의 시작 주소를 저장함
Memory overlay
Swapping
- Virtual memory
- 실제 물리 메모리와 하드 디스크의 공간
- Swap memory
- 실제 물리 메모리의 용량이 부족할 때 사용되는 하드 디스크 상의 virtual memory의 일부분
- 하드 디스크에 존재하지만 I/O controller가 아니라 메모리의 일부로서 MMU에 의해 관리됨
- swap out(하드 디스크) -> swap in(메모리)