페이징 기법(paging)은 컴퓨터가 메인 메모리에서 사용하기 위해 2차 기억 장치[a]로부터 데이터를 저장하고 검색하는 메모리 관리 기법이다.[1] 즉 가상기억장치를 모두 같은 크기의 블록으로 편성하여 운용하는 기법이다. 이때의 일정한 크기를 가진 블록을 페이지(page)라고 한다.
주소공간을 페이지 단위로 나누고 실제기억공간은 페이지 크기와 같은 프레임으로 나누어 사용한다.
페이징 기법이 적용된 시스템에서 가상주소는 순서쌍로 나타낼 수 있다. 는 가상기억장치 내에서 참조될 항목이 속해 있는 페이지 번호이고, 는 페이지 내에서 참조될 항목이 위치하고 있는 곳의 변위이다.
어떤 프로세스가 현재 참조하고 있는 페이지가 주기억장치 내에 있다면 그 프로세스는 수행될 수 있다. 반대로 주기억장치 내에 없다면 그 해당 페이지를 보조기억장치로부터 읽어와서 페이지 프레임의 한 블록에 저장한다.
역사
최초의 메모리 페이지는 램과 디스크 간에 페이지가 이동하느냐에 관계 없이 컴퓨터 구조의 한 개념이었다.[2][3]
프레임과 페이지
프레임과 페이지는 메모리를 일정한 크기의 공간으로 나누어 관리하는 단위이며, 프레임과 페이지의 크기는 같다.
프레임(Frame) : 물리 메모리를 일정한 크기로 나눈 블록이다.
페이지(Page) : 가상 메모리를 일정한 크기로 나눈 블록이다.
페이지가 하나의 프레임을 할당 받으면, 물리 메모리에 위치하게 된다. 프레임을 할당 받지 못한 페이지들은 외부 저장장치에 저장되며, 이때도 프레임과 같은 크기 단위로 관리된다.
페이지의 크기는 하드웨어에 의해 정의된다. 대개 컴퓨터 구조에 따라 512 Byte에서 16MB 사이이며 2의 제곱으로 증가한다.
만약 논리 주소 공간의 크기가 2의 m승이고, 페이지가 2의 n승이라면 논리주소(logical address)의 상위 m-n Bit는 페이지 번호를 하위 n비트는 페이지 변위(offset)을 나타낸다.
하나의 페이지는 x86과 amd64에서는 4KB, ia64에서는 8KB의 크기를 가진다.