[운영체제] 가상메모리 관리

찬들이·2022년 8월 19일
1

컴퓨터공학

목록 보기
16/34

가상 메모리 관리

  • 가상메모리란 메모리 내에 완전히 존재하지 않는 프로세스를 실행하는 기술을 의미한다.

  • 즉 프로그램이 CPU에 의해 실제로 사용되는 부분만 메모리로 로드하고, 사용되지 않는 부분은 디스크로 옮겨서 실제 메모리를 대체하도록 하는 것이다.

  • 장점

    • 물리 메모리의 크기에 제한 받지 않는다
    • 더 많은 프로그램이 동시에 실행될 수 있다.
    • 페이지 테이블 전체를 읽을 필요가 없기 때문에 프로그램을 Load/Swap하기 위한 연산이 줄어든다.

    요구페이징

    • 요구 페이징이란 프로세스를 구성하는 페이지 전체를 메모리로 적재하는 것이 아니라, 당장 필요한 페이지만 메모리에 적재하는 기술이다.

    • 프로세스 내에서 한 번도 접근되지 않은 페이지는 절대로 메모리에 로드되지 않는다.

    • 요구페이징의 기본적인 개념으로 디스크의 페이지를 메모리로 적재할 때, pager는 어떤 페이지가 사용될지 예측하고 메모리로 적재시킨다.

    • 이 때 메모리에 적재되어 있는 페이지와 디스크에 있는 페이지를 구분해야 한다. 이를 위해 valid-invalid bit를 사용한다.

    Page Fault(페이지 부재)

    • 페이지 부재는 프로세스가 메모리에 존재하지 않는 페이지에 접근하려고 할 때 발생한다.

    Victim page

    • Victim page는 pag-out이 되는 페이지를 뜻한다.

    페이지 교체 알고리즘

    • FIFO 알고리즘
      • 메모리에 먼저 올라온 페이지를 먼저 내보낸다는 알고리즘
      • 페이지 결함이 많이 일어난다는 단점이 있다.
    • OPT 알고리즘
      • 앞으로 가장 사용하지 않을 페이지를 가장 우선적으로 내려 보내는 알고리즘이다.
      • FIFO에 비해서는 페이지 결함이 일어날 횟수가 많이 감소한다.
      • 단점으로는 미래를 알 수 없는 조건에 의해 실질적으로 수행하는데는 큰 어려움이 있다
    • LRU 알고리즘
      • 최근에 사용하지 않은 페이지를 가장 먼저 내려 보내는 알고리즘이다.
      • OPT의 경우에는 미래에 대한 예측이지만, LRU는 과거를 보고 판단하므로 실질적으로 이용이 가능하다.
      • OPT 보단 페이지 결함이 더 일어날 수는 있지만, 실제로 사용할 수 있는 알고리즘 중에서는 좋은 방법 중 하나라고 할 수 있다.
    • LFU
      • 페이지를 사용할 때마다 횟수를 기록하고 카운트가 가장 작은 페이지를 victim으로 지정하고 교체하는 방법이다.
      • 앞으로 많이 사용할 페이지가 들어오더라도, 적은 횟수를 가지고 있기 때문에 victim이 될 수있다.
      • 초기에 많이 사용되고 더이상 사용하지 않을 페이지가 메모리에 남아있을 수 있다.
    • 무작위
      • 스왑 영역으로 쫓아낼 대상 페이지를 특별한 로직 없이 무작위로 선정한다.
      • 지역성을 고려하지 않아 성능이 좋지 않다는 단점이 있다.

    스레싱과 프레임 할당

    • 스레싱은 각 프로세스에 프레임을 할당하는 문제와도 연관된다.
    • 남아있는 프레임을 실행 중인 프로세스에 적절히 나누어주는 할당 방법이다.
    • 정적할당과 동적할당으로 구분된다.

      정적 할당

    • 정적할당방식은 프로세스 실행 초기에 프레임을 나누어준 후 그 크기를 고정하는 방식이다.
    • 균등할당과 비례할당으로 나뉜다.
    • 균등 할당
      • 프로세스의 크기에 상관 ㅇ벗이 사용 가능한 프레임을 모든 프로세스에 동일하게 할당하는 방식
    • 비례 할당
      * 프로세스의 크기에 비례하여 프레임을 할당하는 방식

      동적 할당

    • 정적 할당과 다르게 시시각각 변하는 메모리 요청들을 수용하여 프레임을 조절하는 방식이다.
    • 동적 할당 방식에는 직업집합모델을 사용하는 방식과 페이지 부재 빈도를 사용하는 방식이 있다.
    • 작업 집합 모델
      • 지역성 이론을 바탕으로 하며, 가장 최근에 접근한 프레임이 이후에도 참조될 가능성이 높다는 가정에서 출발한다.
      • 최근 일정 시간 동안 참조된 페이지들을 집합으로 만들고, 이 집합에 있는 페이지들을 물리 메모리에 유지하여 프로세스 실행을 돕는다.
    • 페이지 부재 빈도
      • 페이지 부재 횟수를 기록하여 페이지 부재 비율을 계산하는 방식이다.
      • 페이지 부재 방식에서는 페이지 부재 배율의 상한선과 하한선을 설정한다.
      • 하한선에 도달하면 프레임을 회수하고, 상한선에 도달하면 프레임을 추가한다.
profile
Junior-Backend-Developer

0개의 댓글