4월5일 - 가상메모리

Yullgiii·2024년 4월 8일
0
post-thumbnail

가상 메모리

가상 메모리란 무엇인가?

가상 메모리는 실제 물리 메모리 용량을 초과하는 프로그램 실행을 가능하게 하는 기술이다. 이 기술은 물리 메모리와 보조 저장 장치를 함께 사용하여, 프로그램에게 더 큰 메모리 공간을 제공하는 것처럼 보이게 한다.

가상 메모리가 가능한 이유

운영 체제와 하드웨어의 지원으로 가능하다. 페이지 테이블을 통해 가상 주소와 물리 주소 간의 매핑 정보를 관리하고, 메모리 관리 단위(MMU)는 이를 사용하여 가상 주소를 물리 주소로 변환한다.

Page Fault 처리

Page Fault는 필요한 데이터나 코드가 메모리에 없을 때 발생한다. 처리 과정은 다음과 같다:
1. Page Fault 감지 및 인터럽트 발생
2. 페이지 테이블에서 디스크 위치 확인
3. 물리 메모리 내 공간 확보 (필요시 다른 페이지 스왑 아웃)
4. 디스크에서 요구된 페이지를 메모리로 읽어옴
5. 페이지 테이블 업데이트 및 프로그램 실행 재개

페이지 크기의 Trade-Off

  • 큰 페이지 크기는 메모리 오버헤드 감소 및 페이지 테이블 크기 축소 장점이 있지만, 내부 단편화 및 메모리 사용 효율 저하 단점이 있다.
  • 작은 페이지 크기는 내부 단편화 감소 및 메모리 사용 효율 증가 장점이 있지만, 페이지 테이블 크기 증가 및 메모리 오버헤드 증가 단점이 있다.

페이지 크기와 Page Fault 빈도

페이지 크기가 커지면 내부 단편화로 인해 실제로 사용되지 않는 데이터가 메모리에 로드될 수 있으므로, 전반적인 메모리 사용 효율성이 떨어질 수 있다. 따라서, 페이지 크기가 페이지 폴트 빈도에 직접적인 영향을 미친다고 단정하기 어렵다.

세그멘테이션 방식과 가상 메모리

세그멘테이션 방식에서도 가상 메모리를 사용할 수 있다. 세그멘테이션은 메모리를 논리적 단위로 나누고, 이와 결합된 페이지화 기법을 통해 가상 메모리를 관리할 수 있다. 이는 세그멘테이션의 논리적 메모리 관리와 페이지화의 효율적인 물리 메모리 관리 장점을 모두 활용할 수 있다.

profile
개발이란 무엇인가..를 공부하는 거북이의 성장일기 🐢

0개의 댓글