Post

메모리 관리

메모리 관리

메모리 관리는 컴퓨터 내부 메모리의 활용을 최적화하는 운영체제(OS)의 필수 기능이다. 메모리 할당, 가상 메모리 관리, 페이지 교체 등 다양한 프로세스가 포함된다. 각각에 대해 자세히 알아보자 😉

메모리 할당 기술

  • 연속 할당
    • 고정 파티셔닝: 메모리를 고정된 크기로 나누고 각 파티션에는 하나의 프로세스가 필요한 만큼 메모리가 할당된다.
    • 동적 파티셔닝: 파티션 크기 제한 없이 각 프로세스에 필요한 만큼의 메모리가 할당되도록 동적으로 생성된다.
  • 비연속 할당
    • 페이징: 메모리는 ‘페이지’라는 고정된 크기의 블록으로 나눠지고, 프로세스는 동일한 크기의 페이지가 할당된다.
    • 분할화: 메모리는 서로 다른 길이의 세그먼트로 나눠지고, 각 세그먼트는 함수, 개체 또는 배열로 논리적으로 분할된다.

contiguous-and-non-contiguous-memory

가상 메모리

가상 메모리는 컴퓨터에서 물리적으로 사용 가능한 것보다 더 많은 메모리를 사용할 수 있도록 하는 컴퓨터 시스템의 기능이다.

메모리는 기본적으로 속도는 빠르지만, 용량이 작다. 그래서 하드디스크에 공간 중 일부를 추가로 사용해 더 많은 저장공간을 확보해 많은 작업을 처리하게 해준다. 🫢

virtual-memory

페이지 교체 전략

페이지 교체 전략은 가상 메모리 시스템을 다룰 때 페이지(메모리 블록)가 물리적 메모리(RAM) 안팎으로 스왑(RAM과 디스크 간에 페이지를 이동하는 작업)되는 방식을 관리하는 데 사용되는 방법이다.

  • FIFO(First-In, First-Out)
    • 전략: 페이지를 교체해야 하는 경우 가장 오래된 페이지를 제거하고 새 페이지를 추가한다.
    • 장점: 구현이 간단하고, 이해하기가 쉽다.
    • 단점: 페이지 사용 빈도나 이용 패턴 등을 고려하지 않으므로 자주 액세스하는 페이지의 경우 성능이 저하될 수 있다.

fifo

  • LRU(Least Recently Used)
    • 전략: 페이지를 교체해야 하는 경우 가장 오랫동안 사용되지 않은 페이지를 제거한다.
    • 장점: 최근 페이지 사용 내역을 고려하므로 FIFO보다 효율적이다.
    • 단점: 각 페이지의 액세스 시간을 기록하려면 추가 데이터 구조가 필요하므로 구현이 더 복잡하다.

lru

  • Optimal Page Replacement

    • 전략: 향후 가장 오랫동안 사용되지 않을 페이지를 대체한다.
    • 장점: 가장 낮은 페이지 오류율을 제공한다.
    • 단점: 페이지 참조에 대한 미래의 지식이 필요하기 때문에 이론적이며 실제 시스템에서는 실현 가능하지 않다.
  • Clock (Second Chance Algorithm)

    • 전략: FIFO를 개선한 이 알고리즘은 각 페이지가 교체되기 전에 두 번째 기회를 제공한다. 페이지 교체가 고려될 때 해당 페이지에 참조 비트(최근에 액세스했음을 나타냄)를 확인해 1이라면 비트를 0으로 변경 후 두 번째 기회가 주어지고, 0이라면 삭제된다.
    • 장점: 복잡성을 피하면서 LRU를 근사화(아주 가깝게 닮음)한다.
    • 단점: 특정 시나리오에서는 실제 LRU보다 효율성이 떨어질 수 있습니다.

clock

  • LFU(Least Frequently Used)
    • 전략: 각 페이지에 액세스한 횟수를 추적하며, 액세스 횟수가 가장 적은 페이지가 먼저 교체된다.
    • 장점: 자주 사용되지 않는 페이지를 식별하는 데 효과적이다.
    • 단점: 페이지 액세스 횟수의 최근성을 고려하지 않으며, 액세스 횟수를 유지하는 데 오버헤드가 많이 발생할 수 있다.

lfu

This post is licensed under CC BY 4.0 by the author.