0) 가상 메모리란?
* 출현 계기
: 물리 메모리(Physical Memory)의 크기에 따른 한계를 극복하기 위한 기술
즉, 물리 메모리(Physical Memory)보다 큰 프로세스 실행이 가능하다.
예) 100MB 메인 메모리에서 200MB 크기의 프로세스 실행가능
원래는 100MB인 메인 메모리보다 큰 프로세스는 실행이 불가.
* 적용 방법
: 현재 실행에 필요한 부분만 메모리에 올린다!
즉, 프로세스 이미지를 모두 메모리에 올릴 필요는 없다.
오류 처리, 배열의 일부, 워드프로세스에서 정렬, 표 기능 등은 제외가능하다.
동적 적재 (dynamic loading)와 비슷한 개념이다.
1) 요구 페이징(Demand Paging)
* 대체로 "가상 메모리 = 요구 페이징"을 의미함.
* 프로세스를 페이지 단위로 나누고 CPU가 처리하는데 필요한 페이지만 즉, 요구되는 페이지만 메모리에 적재하는 것이어서 "요구 페이징(demand paging)"이라고 한다.
* 프로세스는 페이지의 집합이다.
* 메모리에 적재되지 못한 프로세스의 나머지 페이지들은 backing store에 저장되어져 있다.
* 위 그림의 경우 10 Mb 메인 메모리에 각각 5 Mb, 7 Mb, 4 Mb인 프로세스 3개를 모두 적재하였다. 단, 각 프로세스에서 필요한 페이지(3개, 4개, 1개)만 적재되어져 있다.
* 페이지 부재(Page Fault)
: CPU가 필요로 하는 Page가 메인 메모리에 적재되어져 있지 않은 경우를 의미한다.
: 페이지 부재(Page Fault)가 발생하면 해당 페이지를 메모리에 적재해주어야 한다.
* 순수 요구 페이징(Pure Demand Paging)
: 순수하게 현재 시점에 필요한 페이지만 적재한다.
: 장점 - 메모리 절약을 최대화 할 수 있다.
: 단점 - 시작하자 마자 페이지 부재가 일어난다. 속도가 느려진다.
* 프리페이징(Prepaging)
: 당연히 사용될 페이지라고 예측되어지는 페이지는 미리 적재한다.
: 장점 - 미리 적재되어져 있기 때문에 속도가 빠르다.
: 단점 - 페이지 부재가 적다. 만약 사용되지 않으면 메모리 낭비가 된다.
* Swapping vs Demand Paging
: Swapping - 프로세스 단위로 이동
: Demand Paging - 페이지 단위로 이동
댓글 없음:
댓글 쓰기