컴퓨터 구조 - 메모리 관리 Paging 기법

Paging 기법

프로세스가 사용하는 메모리를 일정한 크기로 잘라 메모리에 할당 하는 방식, 기존 논리 주소 공간이 하나의 연속된 물리 주소 공간에 들어가야 하는 제약을 해소하기 위해 생긴 방식

  • 프로세스의 주소 공간을 나누는 단위는 page, 메모리를 나누는 단위는 frame 이라 한다.
  • page 와 frame 의 크기는 항상 같다.
  • 메모리에 프로세스 주소 공간 전체를 올릴 필요가 사라졌다.
  • 연속된 메모리로 관리하지 않기 때문에 Page Table 을 이용해 여러개로 나뉜 Page 정보를 관리한다.
  • 외부 단편화 가 발생하지 않지만 내부 단편화 가 발생하게 된다.

Page Table

Virtual Page Number 를 Physical Frame Number 로 변환 시켜주는 Mapping 정보와 현재 Memory 적재 여부를 확인할 수 있는 Table

  • MMU(Memory Management Unit) 는 Page Table 정보를 이용해 논리 주소를 물리 주소로 변환시킨다.
  • Page Table 을 프로세스 마다 하나씩 존재하고 메모리에 올라가 있다.
  • 실행된고 있는 프로세스가 많을 수록 메모리에 올라가 있는 Page Table 정보도 많게 된다.

Page Fault

Page Fault 란 프로세스가 요청하는 Page 정보가 현재 Memory 에 없는 경우를 뜻한다.

  • Virtual Memory 가 Mapping 돼 있지 않을 상태일 때 CPU 에게 Trap 을 발생시켜 OS가 인지하게 한다.
  • Page 가 Mapping 돼 있지 않은

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

Memory 에 새로운 Page 올릴 공간이 없을 경우 기존 Memory 에서 점유하는 Page 를 내리기 위한 알고리즘

  • FIFO(First In First Out)
    • 가장 먼저 올라간 Page 를 가장 먼저 내리는 알고리즘
  • LRU (Least Recently Used)
    • 가장 오랫동안 사용되지 않는 Page 를 내리는 알고리즘
    • 많은 운영체제에서 사용하는 Page 교체 알고리즘이다.
  • 계수-기반(Counting-Based) 페이지 교체
    • NFU (Not Frequently Used)
      • 참조 횟수가 가장 적은 Page 를 교체하는 알고리즘
      • 만약 Page 교체 대상이 여러개일 경우 LRU 알고리즘을 이용해 가장 오랫동안 사용되지 않는 Page 를 내린다.
    • MFU (Most Frequently Used)
      • 참조 횟수가 가장 많은 Page 를 교체하는 알고리즘
      • 참조 횟수가 적은 Page 는 가장 최근에 참조된 것으로 보고 앞으로 사용할 가능성이 높다고 판단한다.
Share