2017년 5월 16일 화요일

15 가상 메모리1


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 - 페이지 단위로 이동

댓글 없음:

댓글 쓰기