가상메모리 및 관련 용어 개념

Updated:

가상메모리 및 관련 용어 개념


가상메모리

  • 기계에 실제로 이용 가능한 기억 자원을 이상적으로 추상화하여,
  • 사용자들에게 매우 큰 메모리로 보이게 만드는 것
  • 한정된 물리 메모리의 한계를 극복하고자,
  • 디스크와 같은 느린 저장장치를 활용해, 애플리케이션들이 더 많은 메모리를 활용할 수 있게 해 주는 것이 가상 메모리

참고 : https://smile2x.tistory.com/61



32비트 시스템에서 프로세스(실행 중인 프로그램) 생성시,

프로세스는 최대 4GB(2^32)의 메모리를 할당받을 수 있는데, 이는 램만으로는 충당하기엔 턱없이 부족하다.

그래서 램(실제메모리)와 하드디스크(보조기억장치)를 이용해서 가상 메모리라는 개념이 필요하게 된다.


가상메모리는 프로세스의 물리 메모리와 논리 메모리를 분리하기 위해 생겨난 것이라 볼 수 있다. 이를 이용해서 논리 메모리가 물리 메모리보다 커지는 것을 가능케 한다.


ex) 램이 1gb인 컴퓨터에서 게임,포토샵,인터넷익스플로러를 동시에 실행할 수 있는 것이 가상메모리 덕분

→ 이것은 논리적으로 봤을때, 여러개의 프로세스를 동시에띄우는데 실제 메모리인 램 1GB보다 압도적으로 많다고 느껴지기 때문


즉, 가상메모리는 실제로 사용하는 메모리는 작다는 점에서 고안된 기술이다.

  • 실제 사용되는 영역만 물리 메모리(RAM)에 올리고,
  • 사용되지 않는 영역은 보조기억장치(HDD,SSD)에 존재하게 된다.

프로세스는 기본적으로 가상주소를 사용하고, 데이터를 읽고 쓸때만 물리주소로 바꿔주면 된다.



근데 페이지 폴트라는게 발생할수 있다

프로그램이 자신의 주소 공간(가상메모리공간)에는 존재하지만

시스템의 RAM에는 현재 없는 데이터나 코드에 접근 시도하였을 경우 발생하는 현상을 말한다.

→ 가상메모리에는 논리주소가 존재하는데, 물리메모리에 물리주소가 없는 현상

→ MMU가 CPU에 인터럽트를 걸어서, 페이지 폴트 처리기라는 소프트웨어가 실행되도록 한다.

이 페이지 폴트 처리기가 원하는 페이지를 디스크 상 어디에 위치하는지 찾은 후 읽어오게 하는 작업을 한다.


가상주소 : 프로그램을 실행할때 생성되는 주소이며, 실제 물리주소에 매핑되는 주소값을 가지고있다.

물리주소 : 실제 램에 올려져있는 주소



MMU(Memory Management Unit)

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

MMU

출처 : https://velog.io/@pa324/운영체제-가상-메모리-개념-4dk2q3ivff



마지막으로, 가상메모리를 쓰는 이유는 무엇인가

[장점]

  • 병행성 및 CPU 이용률 증가
    • 사용자 프로그램이 더 작은 메모리를 차지하므로 더 많은 프로그램을 동시에 수행 가능
    • 주기억장치의 용량이 확대된 것 처럼 프로그램 실행 가능

[단점]

  • 전반적인 속도가 느려질 수 있다.
    • 가상메모리를 사용할 경우 물리 메모리로 프로그램을 구동하는 것 보다 속도가 느림

Leave a comment