[컴퓨터과학] 운영체제(OS) - Virtual Memory(가상메모리) & Paging (페이징)

Kyung Jae, Cheong·2024년 11월 2일
post-thumbnail

운영체제(OS) - Virtual Memory & Paging

1. 가상 메모리(Virtual Memory)란?

가상 메모리(Virtual Memory)는 실제 물리 메모리보다 큰 메모리 공간을 사용하는 것처럼 보이게 하는 운영체제의 메모리 관리 기술입니다.

1.1 가상 메모리의 필요성

운영체제에서 각 프로세스에 충분한 메모리를 할당하려면 물리 메모리(RAM)의 크기가 한계일 수 있습니다. 가상 메모리는 다음과 같은 이유로 필수적입니다:

  • 메모리 절약:
    • 여러 프로세스가 동시에 실행될 때 물리 메모리 부족 문제를 해결할 수 있습니다.
  • 안정성 강화:
    • 프로세스 간 메모리 공간이 격리되어 하나의 프로세스 오류가 다른 프로세스에 영향을 주지 않습니다.

1.2 가상 메모리의 동작 원리

가상 주소(Virtual Address)물리 주소(Physical Address)의 개념을 기반으로 합니다.

  • 프로세스는 가상 주소를 사용해 메모리에 접근하며, 실제 데이터물리 주소에 위치합니다.

이때 MMU(Memory Management Unit)는 CPU에서 가상 주소로 접근할 때 이를 물리 주소로 변환하여 실제 메모리에 접근하게 합니다.

2. 페이징 시스템(Paging System)

2.1 페이징의 개념

페이징가상 메모리 공간물리 메모리 공간동일한 크기의 페이지 단위로 나누어 관리하는 방식입니다. 이를 통해 효율적인 메모리 관리와 메모리 조각화 문제 해결이 가능합니다.

  • 가상 메모리 페이지물리 메모리 페이지를 매핑하여 필요한 데이터만 메모리에 적재합니다.
  • 운영체제는 페이지 테이블(Page Table)을 통해 가상 주소물리 주소 간의 매핑 정보를 관리합니다.

2.2 페이지 테이블(Page Table)

페이지 테이블은 각 프로세스마다 생성되며, 가상 주소의 페이지 번호물리 메모리의 페이지 프레임으로 변환하는 정보를 포함하고 있습니다.

  • 예를 들어, 가상 주소(v) = (p, d)에서 p는 페이지 번호, d는 변위입니다.
  • 페이지 테이블을 참조해 p에 해당하는 물리 페이지의 시작 주소를 찾고 d를 더해 최종 물리 주소를 계산합니다.

2.3 MMU와 TLB

  • MMU페이지 테이블을 참조해 가상 주소를 물리 주소로 변환하는 역할을 합니다.
  • TLB(Translation Lookaside Buffer)는 페이지 테이블 참조 속도를 높이기 위한 캐시 메모리로, 자주 참조되는 페이지의 매핑 정보를 저장해 주소 변환 속도를 높입니다.

3. 요구 페이징(Demand Paging)

요구 페이징은 프로세스가 실제로 필요한 페이지만 메모리에 적재하는 방식입니다.

  • 처음부터 모든 페이지를 로드하지 않고, 필요할 때만 메모리에 올리므로 메모리 효율이 높아집니다.

3.1 페이지 폴트(Page Fault)

요구 페이징에서 필요한 페이지가 메모리에 없을 때 발생하는 인터럽트로, 페이지 폴트가 발생하면 운영체제는 해당 페이지를 물리 메모리에 로드합니다.

3.2 페이지 교체 정책(Page Replacement Policy)

페이지 교체 정책은 물리 메모리가 가득 찼을 때, 어떤 페이지를 내보내고 새로운 페이지를 올릴지 결정하는 방식입니다. 이는 시스템 성능과 메모리 효율성을 크게 좌우하는 중요한 요소입니다.

3.3 페이지 교체 알고리즘(Page Replacement Algorithm)

운영체제는 페이지 폴트가 발생할 때 어떤 페이지를 메모리에서 내보낼지를 결정하기 위해 페이지 교체 알고리즘을 사용합니다. 각 알고리즘은 다른 방식으로 교체할 페이지를 선택하며, 성능에 따라 적합한 알고리즘이 다를 수 있습니다.

  1. FIFO (First-In, First-Out)

    • 가장 먼저 메모리에 올라온 페이지를 가장 먼저 내보내는 방식입니다.
    • 간단한 구현이 가능하지만, 먼저 올라온 페이지가 자주 사용되는 경우에도 교체될 수 있는 단점이 있습니다.
    • 장점: 구현이 단순하고, 관리하기 쉽습니다.
    • 단점: 벨라디의 이상 현상(Belady's Anomaly)가 발생할 수 있어, 페이지 프레임 수가 증가해도 페이지 폴트가 줄어들지 않는 경우가 있습니다.
  2. OPT (Optimal Page Replacement)

    • 미래의 페이지 요청을 예측하여, 가장 오랫동안 사용되지 않을 페이지를 교체하는 이상적인 알고리즘입니다.
    • 이론적으로 가장 적은 페이지 폴트를 발생시킬 수 있는 최적의 알고리즘이지만, 현실적으로 구현이 불가능 합니다.
    • 장점: 최소한의 페이지 폴트를 보장합니다.
    • 단점: 실제로 미래의 페이지 요청을 예측하는 것은 불가능하기 때문에, 실제 시스템에서는 구현이 어렵습니다. 주로 다른 알고리즘의 성능을 비교하는 기준으로 사용됩니다.
  3. LRU (Least Recently Used)

    • 가장 오랫동안 사용되지 않은 페이지를 교체하는 방식입니다.
    • 최근에 사용된 페이지는 앞으로도 사용될 가능성이 높다는 점을 가정한 알고리즘입니다.
    • 장점: 페이지 폴트를 줄일 수 있는 현실적인 방법이며, OPT 알고리즘에 근접한 성능을 발휘합니다.
    • 단점: 페이지 사용 시간을 기록하고 관리하는 데 비용이 많이 듭니다. 또한 구현이 복잡해질 수 있습니다.

  1. LFU (Least Frequently Used)
    • 사용 빈도가 가장 낮은 페이지를 교체하는 방식입니다.
    • 자주 사용되지 않는 페이지를 내보내고, 자주 사용된 페이지는 메모리에 유지하는 전략입니다.
    • 장점: 상대적으로 사용 빈도가 높은 페이지를 유지함으로써, 효율적으로 메모리를 사용할 수 있습니다.
    • 단점: 최근의 사용 빈도를 반영하지 못할 수 있으며, 사용 빈도 관리 비용이 발생합니다.

  1. NUR (Not Used Recently)
    • 최근에 사용되지 않은 페이지를 교체하는 방식으로, 가장 간단하게 LRU와 유사한 성능을 제공하는 알고리즘입니다.
    • 참조 비트변형 비트를 사용해 페이지가 최근에 사용되었는지 여부를 판단합니다.
    • 장점: LRU에 비해 구현이 단순하며, 참조 비트만 관리하면 되기 때문에 오버헤드가 적습니다.
    • 단점: 최근 사용 여부만 고려하기 때문에 LRU보다 정확도가 떨어질 수 있습니다.

마무리

운영체제의 가상 메모리와 페이징 시스템은 컴퓨터의 물리 메모리 한계를 극복하고, 안정성과 효율성을 높이기 위한 중요한 기술입니다.

  • 가상 메모리를 통해 각 프로세스는 자신만의 독립된 메모리 공간을 가지게 되어, 프로세스 간의 충돌을 방지하고 메모리 자원을 효율적으로 사용할 수 있습니다.
  • 또한 페이지 교체 알고리즘을 통해, 페이지 폴트가 발생할 때 어떤 페이지를 메모리에서 내보낼지를 결정하게 됩니다.

이번 포스팅에서는 FIFO, OPT, LRU, LFU, NUR와 같은 대표적인 페이지 교체 알고리즘을 살펴보았으며, 각 알고리즘의 특성과 장단점을 비교해 보았습니다.

  • 시스템의 요구 사항에 따라 적절한 교체 알고리즘을 선택하는 것이 운영체제 성능 최적화의 중요한 부분입니다.

다음 포스팅에서는 운영체제의 파일 시스템을 다루어보겠습니다. FAT, Inode, 디렉토리 엔트리와 같은 파일 시스템의 구조를 이해하고, 가상 파일 시스템이 어떤 역할을 하는지 살펴보겠습니다.

profile
일 때문에 포스팅은 잠시 쉬어요 ㅠ 바쁘다 바빠 모두들 화이팅! // Machine Learning (AI) Engineer & BackEnd Engineer (Entry)

0개의 댓글