가상메모리

  • 실제 각 프로세스마다 충분한 메모리를 할당하기에는 메모리 크기에 한계가 있음
  • 실제 각 프로세스마다 충분한 메모리를 할당하기에는 메모리 크기가 한계가 있음
  • [ 가상메모리 없을때 ]

프로세스 a,b가 4gb의 메모리를 점유한다고 가정하자. 가상메모리가 존재하지 않으면, 물리공간(6gb)메모리에 a가 필요한 메모리 4g를 할당 되면서, b는 공간이 모자라서 사용할 수 없게 된다.
image.png

  • [ 가상메모리 존재]

프로세스 a,b,c,가 4gb의 메모리를 점유한다고 가정하자. process가 현재 사용되는 공간 만큼만 메모리에 넣어주면서, 물리 공간에 할당과 해제를 반복하는 과정을 거친다.
image.png

가상메모리가 필요한 이유

  • 하나의 프로세스만 실행 가능한 시스템(배치 처리 시스템)에서는 크게 필요가 없다.

      1. 프로그램을 메모리로 로드
      1. 프로세스 실행
      1. 프로세스 종료(메모리 해제)
  • 여러 프로세스 동시 실행 시스템에서는 가상메모리가 필수적으로 필요하다.

      1. 메모리 용량 부족 이슈
      1. 프로세스 메모리 영역간에 침범 이슈

가상메모리

  • 실제 메모리보다 많이 보이게 하는 기술

  • 실제 사용하는 메모리는 작다는 점에 착안해서 고안된 기술

  • 프로세스간 공간 분리로, 프로세스 이슈가 전체 시스템에 영향을 주지 않을 수 있음

  • 가상 메모리 기본 아이디어

    • 프로세스는 가상 주소를 사용하고, 실제 해당 주소에서 데이터를 읽고/쓸대만 물리 주소로 바꿔주면 된다.
    • virtual address(가상주소) : 프로세스가 참조하는 주소
    • physical address : 실제 메모리 주소
  • MNU (Memory Management Unit)

    • cpu에 코드 실행시, 가상 메모리 접근이 필요할 때, 해당 주소를 물리 주소값으로 변환해주는 하드웨어 장치

image.png