페이징 기법 예제

가상에서 물리적 주소로의 매핑은 하드웨어 장치인 MMU(메모리 관리 장치)에 의해 수행되며 이 매핑을 페이징 기법이라고 합니다. 운영 체제가 페이지 교체 알고리즘인 재사용할 페이지 프레임을 선택하는 데 사용하는 방법은 효율성에 중요합니다. 운영 체제는 가장 최근에 사용되지 않는(LRU) 알고리즘 또는 프로그램의 작업 집합을 기반으로 하는 알고리즘을 통해 곧 필요할 가능성이 가장 낮은 페이지 프레임을 예측합니다. 응답성을 더욱 높이기 위해 페이징 시스템은 프로그램이 해당 페이지를 참조하기 전에 RAM에 미리 로드하여 곧 필요한 페이지를 예측할 수 있습니다. 프로그램에는 서로 다른 시간에 동일한 메모리를 차지하는 여러 오버레이가 포함될 수 있습니다. 오버레이는 RAM을 디스크에 페이징하는 방법이 아니라 프로그램의 RAM 사용을 최소화하는 방법일 뿐입니다. 후속 아키텍처는 메모리 세분화를 사용했으며 개별 프로그램 세그먼트는 디스크와 RAM 간에 교환되는 단위가 되었습니다. 세그먼트는 프로그램의 전체 코드 세그먼트 또는 데이터 세그먼트 또는 때로는 다른 큰 데이터 구조였습니다. 이러한 세그먼트는 RAM에 상주할 때 연속적이어야 했으며 조각화를 해결하기 위해 추가 계산 및 이동이 필요했습니다. [6] Ferranti는 아틀라스에 페이징을 도입했지만, 첫 번째 대량 시장 메모리 페이지는 RAM과 디스크 간에 페이지가 이동했는지 여부에 관계없이 컴퓨터 아키텍처의 개념이었습니다.

[2] [3] 예를 들어, PDP-8에서, 명령 비트의 7은 128(27) 단어 중 하나를 선택한 메모리 주소를 구성하였다. 이 메모리 영역을 페이지라고 합니다. 이 용어의 사용은 이제 드뭅니다. 1960년대에 스왑은 초기 가상 메모리 기술이었습니다. 전체 프로그램은 RAM에서 디스크로 스왑(또는 롤아웃)되고 다른 프로그램은 스왑(또는 롤인)됩니다. [4] [5] 스왑 아웃 프로그램은 최신 이지만 RAM이 다른 프로그램에서 사용 하는 동안 실행 일시 중단 됩니다. 일부 컴퓨터에는 Magic-1,[29] 일부 PDP-11 컴퓨터와 같은 프로세스의 가상 주소 공간보다 큰 주 메모리가 있으며 물리적 주소 확장이 있는 32비트 x86 프로세서를 사용하는 일부 시스템이 있습니다. 이렇게 하면 단일 프로세스가 가상 주소 공간의 양보다 더 많은 주 메모리를 사용할 수 없으므로 가상 메모리의 상당한 이점이 무효화됩니다. 이러한 시스템은 종종 페이징 기술을 사용하여 보조 이점을 얻습니다: AmigaOS 4.0은 RAM을 할당하고 실제 메모리조각 모음을 위한 새로운 시스템을 도입했습니다.

조각 모음할 수 없는 플랫 공유 주소 공간을 여전히 사용합니다. 슬래브 할당 메서드 및 페이징 메모리를 기반으로 스와핑을 허용 합니다. 페이징은 AmigaOS 4.1에서 구현되었지만 모든 실제 메모리가 모두 소진되면 시스템이 잠글 수 있습니다. [26] 스왑 메모리는 사용자가 실제 RAM만 사용하도록 선택할 수 있도록 언제든지 메모리를 활성화하고 비활성화할 수 있습니다. 페이징을 활용하는 메모리 관리 시스템에서 OS는 페이지라는 블록의 보조 저장소에서 데이터를 읽으며, 모두 크기가 동일합니다. 단일 페이지를 포함하는 메모리의 물리적 영역을 프레임이라고 합니다. 페이징을 사용하는 경우 프레임은 보조 저장소에서 물리적으로 연속된 단일 영역을 구성할 필요가 없습니다. 이 방법은 저장소의 보다 효율적이고 빠른 사용을 용이하게 하기 때문에 이전 메모리 관리 방법에 비해 이점을 제공합니다. 이 예제의 프로세서는 RAM을 4GB 를 초과하여 해결할 수 없지만 운영 체제는 설치된 RAM의 한계를 초과하여 증가할 수 있는 파일과 같이 더 큰 메모리를 구상하는 프로그램에 서비스를 제공할 수 있습니다.

운영 체제를 사용하면 프로그램에서 페이징을 사용하여 파일의 일부를 RAM으로 가져오는 등 임의로 파일의 데이터를 조작할 수 있습니다.