운영체제 | 가상 메모리

Faithful Dev·2025년 1월 25일

컴퓨터 공학

목록 보기
31/81

가상 메모리 (Virtual Memory)

정의

  • 가상 메모리는 프로세스가 실제 물리 메모리의 용량에 구애받지 않고 더 큰 메모리를 사용할 수 있도록 지원하는 메커니즘이다.
  • 운영 체제가 물리 메모리와 보조 저장 장치(예: HDD) 사이를 관리하여, 프로세스마다 고유한 메모리 공간을 제공하는 기술이다.

주요 개념

  1. 논리 주소와 물리 주소
    • 논리 주소(Logical Address): 프로세스가 참조하는 가상 주소.
    • 물리 주소(Physical Address): 실제 RAM에서의 주소.
    • MMU(메모리 관리 장치)가 논리 주소를 물리 주소로 변환.
  2. 페이지와 페이지 테이블
    • 가상 메모리는 페이지(Page)라는 고정 크기 블록으로 나뉜다.
    • 운영 체제는 페이지 테이블을 사용하여 가상 주소와 물리 주소 간의 매핑을 관리한다.
  3. 스왑(Swap)
    • 물리 메모리가 부족하면, 사용하지 않는 페이지를 보조 저장 장치(예: 디스크)로 옮기는 과정.
    • 스왑 영역은 보조 저장 장치의 일부를 가상 메모리로 사용하는 공간이다.

장점

  1. 메모리 확장: 실제 물리 메모리보다 더 많은 메모리를 사용할 수 있음.
  2. 프로세스 격리: 각 프로세스는 독립적인 메모리 공간을 가짐.
  3. 효율적 자원 관리: 자주 사용하지 않는 데이터를 디스크로 이동하여 RAM을 절약.

단점

  1. 성능 저하: 스왑이 빈번하게 발생하면 페이지 폴트로 인해 성능이 저하될 수 있음.
  2. 복잡성: 페이지 테이블 관리 및 주소 변환 과정이 추가됨.

MMU (Memory Management Unit)

정의

  • MMU는 가상 주소를 물리 주소로 변환하는 하드웨어 장치이다.
  • CPU와 메모리 사이에 위치하여, 가상 메모리 관리를 지원하는 데 핵심 역할을 한다.

주요 기능

  1. 주소 변환 (Address Translation)
    • 가상 주소를 물리 주소로 변환.
    • 이 과정에서 페이지 테이블을 참조하여 매핑을 수행.
  2. 페이지 보호 (Page Protection)
    • 페이지 단위로 메모리 접근 권한(읽기/쓰기/실행 등)을 설정하여 프로세스 간의 메모리 침범을 방지.
  3. TLB (Translation Lookaside Buffer)
    • 주소 변환 속도를 높이기 위해 사용하는 캐시.
    • 페이지 테이블의 일부를 저장하여 자주 참조되는 주소 변환을 빠르게 처리.

주소 변환 과정 (일반적인 흐름)

  1. CPU가 가상 주소를 생성.
  2. MMU가 페이지 테이블을 참조하여 해당 가상 주소를 물리 주소로 변환.
  3. 변환된 물리 주소를 통해 실제 데이터에 접근.

장점

  1. 주소 매핑 자동화: CPU가 직접 물리 주소를 계산하지 않아도 됨.
  2. 성능 향상: TLB와 같은 하드웨어 가속을 통해 빠른 주소 변환 가능.
  3. 보안 강화: 메모리 접근 권한을 제어하여 시스템 안정성 확보.

단점

  1. 추가 비용: MMU와 페이지 테이블 관리로 인해 시스템 설계가 복잡해짐.
  2. TLB 미스: TLB에 없는 페이지를 참조할 경우, 성능이 일시적으로 저하.

가상 메모리와 MMU의 관계

  • 가상 메모리와 MMU는 상호 의존적이다.
  • 가상 메모리는 논리 주소 공간을 생성하여 프로세스의 메모리 사용 효율을 높이며, MMU는 이러한 논리 주소를 물리 주소로 변환하는 데 필요한 하드웨어적 지원을 제공한다.

가상 메모리의 동작 원리

  1. 주소 공간 분리
    • 프로세스마다 독립적인 논리 주소 공간을 제공.
  2. 페이지 교체
    • 물리 메모리가 부족할 때, 페이지 교체 알고리즘을 통해 스왑 영역으로 데이터를 이동.
    • 예: FIFO, LRU, LFU 등의 알고리즘.
  3. 페이지 폴트 처리
    • 가상 메모리에서 참조된 페이지가 물리 메모리에 없으면, 운영 체제가 디스크에서 해당 페이지를 로드.

가상 메모리와 MMU의 장단점

기능장점단점
가상 메모리물리 메모리 확장, 프로세스 간 격리, 효율적 자원 관리성능 저하(스왑), 페이지 폴트 관리 필요
MMU빠른 주소 변환, 메모리 보호, 효율적 자원 접근추가 하드웨어 비용, TLB 관리 필요
profile
Turning Vision into Reality.

0개의 댓글