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 는 가장 최근에 참조된 것으로 보고 앞으로 사용할 가능성이 높다고 판단한다.