728x90
가상 주소와 물리 주소
- 물리 주소 : RAM 공간의 메모리 주소 값
- 가상 주소 : HDD 까지 영역을 확장했을 때 추가로 얻게 되는 메모리 주소 값
- 가상 주소가 해결하고 있는 두가지 : 선 할당으로 인한 부담과 느린 속도의 개선
-> 선 할당으로 인한 부담
* 프로세스를 생성할 때마다 메모리 전체를 할당하는 것은 메모리 낭비도 심하고 시간도 오래걸림
* 16비트 시스템이라는 것을 가정하고 프로세스 별로 64KB 메모리를 할당하며 램 용량은 16KB인 상황
* MMU(Memory Management Unit)는 CPU가 요구하는 값을 그 메모리 공간에 데이터가 있는 것처럼 가져다 줌
* CPU가 MMU에게 1K 번지부터 20 Byte를 할당을 요청하면 RAM에서 사용하지 않는 블록을 하나 할당해줌
* 필요한 할당 용량이 4KB가 아니더라도 MMU는 블럭 하나를 할당해 줌 => Spatial Locality 특성
* 할당 후 다시 CPU가 MMU에게 36K 번지부터 20 Byte를 할당을 요청하면 다른 블럭 하나를 할당해줌
* 메모리 번지를 순차적으로 사용하는 것이 아니라 CPU에 요청이 들어오면 그 번지에 맞게 할당해 줌
* CPU는 가상 주소로 접근을 하고 MMU는 가상 주소를 물리 주소로 바꿔서 RAM에서 데이터를 가져와서 CPU로 가져다 줌
728x90
'Programming > System Programming' 카테고리의 다른 글
윈도우즈 시스템 프로그래밍 - 17. 구조적 예외처리(SHE) 기법(1) (0) | 2020.08.17 |
---|---|
윈도우즈 시스템 프로그래밍 - 16. 컴퓨터 구조에 대한 네 번째 이야기(4) (0) | 2020.08.13 |
윈도우즈 시스템 프로그래밍 - 16. 컴퓨터 구조에 대한 네 번째 이야기(2) (0) | 2020.08.11 |
윈도우즈 시스템 프로그래밍 - 16. 컴퓨터 구조에 대한 네 번째 이야기(1) (0) | 2020.08.11 |
윈도우즈 시스템 프로그래밍 - 15. 쓰레드 풀링(2) (0) | 2020.08.09 |