728x90

 

페이지와 페이지 프레임

- CPU는 MMU에게 메모리를 할당하고 데이터를 요구하면 MMU가 제한된 메모리 공간을 활용

- 가상 메모리 블럭 단위를 페이지라고 하고 물리 메모리의 블럭 단위를 페이지 프레임이라 함

- 페이지와 페이지 프레임은 일치

    -> 페이지 단위로 할당하고 해제하기 때문

 

느린 속도의 개선

- 가상 메모리는 하드 디스크의 일부 까지 메인 메모리로 확장하는 것이지만 실질적인 물리 메모리는 RAM에 국한됨

- 단순히 하드 디스크를 메인 메모리로 확장을 하면 RAM에 접근하는 속도와 하드디스크에 접근하는 속도가 달라질 수 있음

- 그렇기 때문에 하드 디스크와 램의 관계를 램과 캐쉬 관계로 구성

    -> 하드 디스크에 실질적인 메모리 공간을 모두 할당

    -> Locailty에 의해서 블럭 단위로 필요한 것을 RAM에 가져다 놓고 실행

- 만약 RAM이 꽉찬 상태에서 새로운 할당을 요구하면 RAM의 일부를 뺴서 하드디스크에 저장(Store)

    -> 가장 마지막에 사용된 블록이나 사용된지 오래된 블록을 뺌

- 그 공간에 새로운 할당을 함

- CPU가 하드 디스크에 저장했던 공간의 데이터를 요구한다면 다른 블록을 스토어 후 로드

- 하드 디스크는 이 블록을 저장할 때 File로 저장하는데 이런식으로 프로세스의 가상 메모리 공간 확장하기 위해 생성한 파일을 스왑 파일이라고 부름

- 이렇기 때문에 램만큼 중요한 것이 하드디스크이고 하드디스크도 여유 공간이 중요

 

둘 이상의 프로세스와 가상 메모리

- 프로세스 별로 공간을 할당해주는데 각각의 스왑 파일을 하드디스크에 별도로 저장하기 때문에 문제가 없음

- 실행 중인 프로세스에 따라 RAM은 스왑 파일에 맞춰 메모리 공간을 구성

- 이럴 때마다 RAM에서도 Context Switching이 일어남

728x90

+ Recent posts