물리 메모리 크기의 극복: 메커니즘#

스왑 공간#

개념: 물리 메모리가 부족하면 사용하지 않는 페이지를 하드 디스크의 특정 영역(스왑 공간)에 백업하고, 필요하면 다시 메모리로 불러오는 기술

장점

  • 물리 메모리보다 훨씬 저렴한 하드 디스크 공간을 활용하여 가상 메모리 공간을 확장 가능

image

스왑 공간 사용 방식 - 가상 메모리 공간이 부족하면 사용하지 않는 페이지를 스왑 공간으로 백업하고, 필요하면 다시 메모리로 불러온다.

단점

  • 하드 디스크는 메모리보다 훨씬 느려 페이지 폴트 발생 시 성능 저하

Present Bit#

개념: 페이지 테이블에 존재하는 각 엔트리에 설정되는 플래그 비트

기능: 해당 페이지가 현재 물리 메모리에 존재하는지 여부를 나타냄

활용

  • Present bit가 1이면 페이지가 메모리에 존재하므로 바로 접근 가능

  • Present bit가 0이면 페이지가 스왑 공간에 존재하므로 페이지 폴트 발생

페이지 폴트#

개념: 프로세스가 메모리에 존재하지 않는 페이지에 접근하려는 경우 발생하는 예외 상황

처리 과정

  1. 운영체제는 해당 페이지를 스왑 공간에서 메모리로 로드

  2. 페이지 테이블을 업데이트하여 Present bit를 1로 설정

  3. 프로세스가 다시 해당 페이지에 접근하도록 허용

영향: 페이지 폴트는 메모리 접근 지연을 야기하여 성능 저하를 초래한다.

메모리에 빈 공간이 없으면?#

LRU (Least Recently Used) 알고리즘: 최근에 사용되지 않은 페이지를 스왑 공간으로 교체하는 알고리즘

(그림)

LRU 알고리즘 동작 방식 - 가장 오랫동안 사용되지 않은 페이지를 스왑 공간으로 교체한다.

다른 알고리즘: FIFO, Modified Page Count 등 다양한 알고리즘 존재

페이지 폴트의 처리#

시간 소요: 페이지 폴트는 메모리 접근 지연을 야기하여 성능 저하를 초래

최소화 방안

  • 페이지 크기 조절: 작은 페이지 크기는 페이지 폴트 빈도 증가, 큰 페이지 크기는 페이지 폴트 처리 지연 증가

  • 효율적인 페이지 교체 알고리즘 사용: LRU, Modified Page Count 등 다양한 알고리즘 활용

교체는 실제 언제 일어나는가?#

실제 메모리 할당 시점: 새로운 페이지를 메모리에 로드할 때 발생 가능성이 높음

페이지 폴트 발생 시: Present bit가 0인 페이지를 메모리로 로드할 때 발생

요약#

메모리 가상화는 스왑 공간, Present bit, 페이지 폴트 등의 기술을 사용하여 물리 메모리 크기의 제약을 극복하는 기술입니다. 하지만 페이지 폴트 발생 시 성능 저하가 발생할 수 있으므로 효율적인 알고리즘 사용이 중요합니다.

추가 설명#

  • 메모리 가상화는 가상 주소 공간과 물리 주소 공간을 매핑하는 페이지 테이블을 사용합니다.

  • 페이지 테이블은 메모리 관리 장치(MMU)에 의해 관리됩니다.

  • MMU는 가상 주소를 물리 주소로 변환하여 실제 메모리에 접근하도록 합니다.

  • 메모리 가상화는 다중 프로그래밍, 다중 사용자 환경, 운영 체제에서 중요한 역할을 합니다.