[OS] 가상메모리

seheo·2022년 8월 29일
0

OperatingSystem

목록 보기
3/3
post-thumbnail

가상메모리

  • 4G 메모리의 컴퓨터에 하나의 프로세스가 8GB인 프로세스를 실행 시킬려면 메모리에 올리 수 없기 때문에 실행 할 수 없다.
  • 가상메모리는 실제 메모리보다 메모리를 더 큰것처럼 사용하게 해준다.
  • 프로세스 간 공간을 분리를 통해, 개별 프로세스의 오류로 메모리가 사용하지 못하는 상태가 되어 재부팅을 하지않도록 프로세스를 관리해준다.

가상 메모리의 필요성

여러 프로세스를 동시에 실행 시키는 시스템일 경우 아래의 이유로 가상 메모리 필요

  • 메모리 용량 부족
  • 프로세스 메모리 영역 간 침범

하나의 프로세스만 실행하는 경우 가상 메모리가 필요하지 않는다.

가상주소공간과 가상 메모리

가상 주소 공간

가상 논리 주소가 반드시 물리 주소로 할당 받는 것이 아니기에
가상 주소 공간은 실제로 컴퓨터가 장착하고 있는 물리 메모리보다 큰 크기를 갖을 수 있다.

그리고 부분적으로 프로세스의 페이지를 로드하는 개념은 가상 메모리(Virtual Memory) 기법으로 연결된다.

가상 메모리

가상 메모리는 물리 메모리(Ram)과 하드 디스크의 Swap영역(Swap Area)을 합친 것을 의미한다.
현재 필요하지 않은 프로세스의 페이지는 하드 디스크의 Swap영역에 머물러 있다가 해당 페이지가 필요할 때 Swap in 된다.

커널 공간

운영체제는 커널 공간에서 메모리 관리(memory manager)를 한다.

  • Memory Manage의 크기는 RAM + SWAP(하드디스크 영역)으로 결정
  • 가상 주소 공간과 물리 메모리를 연결하는 매핑 테이블을 가진다.
  • 가상메모리 에러를 유발하는 프로세서를 시스템이 감지하여 그 프로세스를 종료시키고 점유하고 있는 매핑 테이블, 물리 메모리 전부를 반환 시킨다.
    • 만약 커널이 물리 메모리를 잘 회수하지 못한다면, 물리 메모리를 사용할 수 있는 공간은 재부팅하기 전까지 점점 작아진다.

매핑 테이블

요약

  1. 가상메모리는 제한된 물리 메모리에 많은 프로세스를 실행하기 위해 필요하다.
  2. 가상메모리는 프로세스의 오류로 부터 물리 메모리의 자원을 관리해준다.
  3. 좋은 운영체제 일수록 어플리케이션의 가상화정도를 높여서 물리 메모리를 잘 관리한다.
    예를 들어, 휴대폰같은 경우 배터리가 나가는게 아니라면 몇달동안 재부팅하지 않고 사용하는 경우가 많다.

참고자료

가상 메모리 개요 - 널널한 개발자

0개의 댓글