CS study/기타 토막지식
가상 메모리
블랑v
2023. 10. 20. 20:45
가상 메모리
가상 메모리는 프로그램이 물리 메모리(RAM)의 크기를 초과하더라도 실행될 수 있게 하는 기술이다. 이는 물리 메모리와 하드 디스크의 일부를 함께 사용하여 일종의 '가상의 메모리 공간'을 만드는 것을 의미한다.
- 가상 주소와 물리 주소: 프로그램이 메모리에 접근할 때 사용하는 주소는 가상 주소다. 이 가상 주소는 물리 메모리의 실제 주소로 맵핑되어야 실제로 메모리에 접근할 수 있다.
- 페이징: 가상 메모리는 페이지라는 단위로 나뉜다. 물리 메모리도 마찬가지로 페이지 단위로 관리된다. 가상 주소의 페이지는 필요에 따라 물리 메모리의 페이지에 로딩되거나 하드 디스크의 '스왑 공간'으로 이동한다.
- 페이지 테이블: 가상 주소와 물리 주소의 맵핑 정보를 저장하는 데이터 구조다. CPU나 운영체제는 페이지 테이블을 조회해서 가상 주소를 물리 주소로 변환한다.
- 스왑: 물리 메모리가 부족할 때, 현재 사용하지 않는 페이지를 하드 디스크의 스왑 영역으로 내보낸다. 필요할 때 다시 불러오는 것이다.
- TLB (Translation Lookaside Buffer): 가상 주소를 물리 주소로 변환하는 과정은 상대적으로 느리다. TLB는 이 과정을 빠르게 하기 위해 최근의 주소 변환 정보를 캐싱한다.
장점:
- 더 큰 프로그램을 실행할 수 있다.
- 메모리 사용이 효율적이다.
단점:
- 스왑이 빈번하게 발생하면 성능이 떨어진다 (스왑 스로틀링).
- 페이지 테이블 관리, 주소 변환 등으로 추가적인 CPU 오버헤드가 있다.