CS study/기타 토막지식

가상 메모리

블랑v 2023. 10. 20. 20:45

가상 메모리

가상 메모리는 프로그램이 물리 메모리(RAM)의 크기를 초과하더라도 실행될 수 있게 하는 기술이다. 이는 물리 메모리와 하드 디스크의 일부를 함께 사용하여 일종의 '가상의 메모리 공간'을 만드는 것을 의미한다.

  1. 가상 주소와 물리 주소: 프로그램이 메모리에 접근할 때 사용하는 주소는 가상 주소다. 이 가상 주소는 물리 메모리의 실제 주소로 맵핑되어야 실제로 메모리에 접근할 수 있다.
  2. 페이징: 가상 메모리는 페이지라는 단위로 나뉜다. 물리 메모리도 마찬가지로 페이지 단위로 관리된다. 가상 주소의 페이지는 필요에 따라 물리 메모리의 페이지에 로딩되거나 하드 디스크의 '스왑 공간'으로 이동한다.
  3. 페이지 테이블: 가상 주소와 물리 주소의 맵핑 정보를 저장하는 데이터 구조다. CPU나 운영체제는 페이지 테이블을 조회해서 가상 주소를 물리 주소로 변환한다.
  4. 스왑: 물리 메모리가 부족할 때, 현재 사용하지 않는 페이지를 하드 디스크의 스왑 영역으로 내보낸다. 필요할 때 다시 불러오는 것이다.
  5. TLB (Translation Lookaside Buffer): 가상 주소를 물리 주소로 변환하는 과정은 상대적으로 느리다. TLB는 이 과정을 빠르게 하기 위해 최근의 주소 변환 정보를 캐싱한다.

장점:

  • 더 큰 프로그램을 실행할 수 있다.
  • 메모리 사용이 효율적이다.

단점:

  • 스왑이 빈번하게 발생하면 성능이 떨어진다 (스왑 스로틀링).
  • 페이지 테이블 관리, 주소 변환 등으로 추가적인 CPU 오버헤드가 있다.