프로그래밍/MFC

가상메모리

이재만박사 2017. 1. 17. 10:33

가상 메모리

- 물리적인 메모리(RAM)와 하드디스크의 페이징 파일 합한 것


- 사실 페이징 파일은 물리적인 RAM과 논리적으로는 동일하되 다만 속도가 좀 느린 메모리


- 응용 프로그램 입장에서 볼 때 자신의 주소 공간에 연결된 가상 메모리가 물리적인 RAM인가 페이징 파일인가는 전혀 신경쓰지 않음



- 운영체제의 안정성에도 큰 역할


- 각 프로세스의 주소 공간은 상호 독립적이기 때문에 프로세스 끼리 서로의 주소 영역을 침범할 수 없다


- 운영체제는 프로세스가 생성될 때마다 독립적인 4G 바이트의 주소 공간을 생성하고 물리적인 메모리를 논리적인 주소 공간에 연결



- 물리적인 메모리와 논리적인 주소 공간의 대응관계는 페이지 테이블이라는 표에 작성



- 페이지 테이블에는 가상메모리의 어디쯤이 응용 프로그램의 누구의 몇 번지에 연결되어 있다는 정보가 기록


- 응용 프로그램은 오로지 자신의 주소 공간 상의 번지만 다룸


- 프로세스는 자신에게 주어진 4G의 가상 주소 공간이 실제의 메모리인 것 처럼 사용


- 주소 공간 : 이 페이지 테이블에 기록 되어 있는 응용 프로그램이 참조하는 주소값


- 가상 주소 공간 : 실제로 존재하는 메모리가 아니라 다만 페이지 테이블에 기록되는 개념적인 주소