paging ; 페이징

페이징이란 프로그램 중 자주 사용되지 않는 부분의 작업 메모리를 주기억장치인 메모리로부터 보조기억장치인 하드디스크로 옮기는 방식을 통해, 활용 가능한 메모리 공간을 증가시키기 위한 기법 중 하나이다. 이때, 한번에 옮겨지는 메모리 용량 단위를 페이지라 부른다.

메모리 관리장치는 메모리 접근 요청들을 감시하고, 또한 각 주소를 페이지 번호와 페이지 내의 오프셋으로 분할한다. 메모리 관리장치는 페이지 표에 있는 페이지 번호를 확인하는데, 페이지 표에는 해당 페이지가 메모리에서 디스크로 옮겨졌는지 또는 메모리에 아직 존재하는지에 관한 정보들이 표시되어 있다. 만약 메모리에 존재하는 페이지에 대해 접근하려는 시도가 있는 경우라면, 가상의 주소가 실제 주소로 번역된 후 접근이 즉시 허용된다. 그러나 요청된 페이지가 이미 디스크로 옮겨진 상태라면, 먼저 메모리에 현존하는 다른 페이지를 디스크로 옮겨서 빈 공간을 만들어야만 한다. 그다음 디스크의 스왑 공간 상에 있던 해당 페이지가 주기억장치인 메모리로 읽혀 들여진다. 이때 그 페이지가 이제는 주기억장치 내에 존재한다는 표시와 함께 메모리 상의 물리적인 주소 등 페이지 표의 정보도 함께 갱신된다.

메모리 관리장치는 주기억장치로 불려 들어온 이후에 내용이 수정된 페이지가 어떤 페이지인지에 관한 정보 기록도 유지한다. 만약 수정이 된 적이 없고 디스크로 복사할 필요가 없는 페이지는 즉시 재사용될 수 있다.

스와핑이 여러 개의 프로세스들이 동시에 실행될 수 있게 해주는 것임에 반하여, 페이징은 모든 작업들을 수행하기 위해 필요한 메모리 소요량의 합이 메모리의 실제 크기를 넘어서더라도 작업이 가능하도록 해준다.


작성 : 02-08-15 수정 : 04-06-23
영어판(whatis.com)