OS의 가상 메모리: 수요 페이징이란 무엇이며 장점
⚡ 스마트 요약
가상 메모리는 보조 저장 장치의 일부를 RAM처럼 사용하여 사용자에게 마치 대용량 메인 메모리가 있는 것처럼 보이게 하는 저장 메커니즘입니다. 이를 통해 물리적 메모리보다 큰 프로세스를 실행할 수 있으며, 요구 페이징 방식으로 구현됩니다.
가상 메모리란 무엇입니까?
가상 메모리 가상 메모리는 사용자가 마치 매우 큰 메인 메모리를 가지고 있는 것처럼 느끼게 해주는 저장 메커니즘입니다. 이는 보조 메모리의 일부를 메인 메모리처럼 취급함으로써 구현됩니다. 가상 메모리에서는 사용자가 사용 가능한 메인 메모리보다 더 큰 크기의 프로세스를 저장할 수 있습니다.
따라서 하나의 긴 프로세스를 주 메모리에 로드하는 대신 OS는 주 메모리에 있는 둘 이상의 프로세스의 다양한 부분을 로드합니다. 가상 메모리는 대부분 수요 페이징(Demand Paging)과 수요 분할(Demand Segmentation)로 구현됩니다.
가상 메모리가 필요한 이유는 무엇입니까?
가상 메모리를 사용하는 이유는 다음과 같습니다.
- 컴퓨터의 물리적 메모리에 공간이 부족할 때마다, 컴퓨터는 기억해야 할 데이터를 하드 디스크의 스왑 파일에 가상 메모리로 저장합니다.
- 컴퓨터가 실행 중이라면 Windows 시스템에 설치된 메모리/RAM보다 더 많은 메모리가 필요할 경우, 하드 드라이브의 일부를 이 용도로 사용합니다.
가상 메모리는 어떻게 작동하나요?
현대 사회에서 가상 메모리는 매우 흔하게 사용됩니다. 가상 메모리는 실행을 위해 일부 페이지를 메인 메모리에 로드해야 하지만, 해당 페이지들을 로드할 수 있는 메모리가 부족할 때 사용됩니다.
따라서 이 경우 운영체제는 페이지가 메인 메모리로 들어가는 것을 막는 대신, 최근에 사용량이 가장 적거나 참조되지 않은 RAM 공간을 찾아 보조 메모리로 이동시켜 메인 메모리에 새 페이지를 위한 공간을 확보합니다.
이해하자 가상 메모리 관리 한 가지 예의 도움으로.
예를 들어
운영체제가 실행 중인 모든 프로그램을 저장하는 데 300MB의 메모리가 필요하다고 가정해 봅시다. 하지만 현재 사용 가능한 물리적 메모리는 RAM에 50MB밖에 없습니다.
- 그러면 운영체제는 250MB의 가상 메모리를 설정하고 가상 메모리 관리자(VMM)라는 프로그램을 사용하여 해당 250MB를 관리합니다.
- 따라서 이 경우 VMM은 필요한 추가 메모리를 저장하기 위해 하드 디스크에 250MB 크기의 파일을 생성합니다.
- 이제 운영체제는 사용 가능한 공간이 50MB에 불과하더라도 RAM에 실제로 저장된 메모리가 300MB인 것처럼 메모리에 접근합니다.
- VMM은 실제 사용 가능한 메모리 공간이 50MB에 불과하더라도 300MB의 메모리를 관리해야 하는 역할을 합니다.
수요 페이징이란 무엇입니까?
요구 페이징 메커니즘은 페이징 메커니즘과 매우 유사합니다. 페이징 시스템 스왑과 함께ping이 방식에서는 프로세스가 보조 메모리에 저장되고 페이지는 미리 로드되는 것이 아니라 필요할 때만 로드됩니다.
따라서 컨텍스트 스위치가 발생하면 운영체제는 이전 프로그램의 페이지를 디스크에서 복사하거나 새 프로그램의 페이지를 메인 메모리로 복사하지 않습니다. 대신, 첫 번째 페이지를 로드한 후 참조되는 프로그램의 페이지를 가져와 새 프로그램을 실행하기 시작합니다.
프로그램 실행 중에 프로그램이 메인 메모리에서 사용 가능한 페이지가 아닌 스왑 아웃된 페이지를 참조하는 경우, 프로세서는 이를 유효하지 않은 메모리 참조로 간주합니다. 페이지 폴트가 발생하면 제어권이 프로그램에서 운영체제로 다시 넘어가고, 운영체제는 해당 페이지를 메모리에 다시 저장하도록 요구하기 때문입니다.
페이지 교체 방법의 유형
다음은 몇 가지 중요한 페이지 교체 메서드입니다.
- FIFO
- 최적의 알고리즘
- LRU 페이지 교체
FIFO 페이지 교체
FIFO(선입선출)는 간단한 구현 방법입니다. 이 방법에서는 메모리가 메모리의 가상 주소에 가장 오랫동안 있었던 대체 페이지를 선택합니다.
기능
- 새 페이지가 로드될 때마다 메모리에 가장 오래 남아 있던 페이지가 제거됩니다. 따라서 어떤 페이지를 제거할지 결정하는 것은 쉽습니다. 해당 페이지의 식별 번호가 항상 FIFO 스택의 맨 앞에 있기 때문입니다.
- 메인 메모리에서 가장 오래된 페이지가 교체 대상으로 먼저 선택되어야 합니다.
최적의 알고리즘
최적의 페이지 교체 방법은 다음 참조까지의 시간이 가장 긴 교체 페이지를 선택합니다.
기능
- 최적 알고리즘은 페이지 폴트 발생 횟수를 최소화합니다. 하지만 이 알고리즘은 구현하기 어렵습니다.
- 최적의 페이지 교체 알고리즘은 모든 알고리즘 중에서 페이지 폴트 발생률이 가장 낮습니다. 이러한 알고리즘은 존재하며 MIN 또는 OPT라고 불러야 합니다.
- 장기간 사용되지 않을 가능성이 높은 페이지는 교체하십시오. 페이지는 필요할 때만 사용됩니다.
LRU 페이지 교체
LRU는 '최근에 가장 적게 사용된 페이지(Least Recently Used Page)'의 약자입니다. 이 방법은 운영체제가 짧은 시간 동안의 페이지 사용량을 파악하는 데 도움을 줍니다. 이 알고리즘은 각 페이지에 카운터를 연결하여 구현해야 합니다.
어떻게 진행합니까?
- 메인 메모리에서 가장 오랫동안 사용되지 않은 페이지가 교체 대상으로 선택됩니다.
- 구현이 쉽고, 목록을 유지하고, 시간을 되돌아보며 페이지를 교체합니다.
기능
- LRU 교체 방식은 가장 높은 카운트를 기록합니다. 이 카운터는 페이지 사용 기간 및 관련 페이지를 얼마나 자주 참조해야 하는지를 지정하는 에이징 레지스터라고도 합니다.
- 메인 메모리에서 가장 오랫동안 사용되지 않은 페이지가 교체 대상으로 선택되어야 합니다.
- 또한 목록을 유지하고 시간을 되돌아보며 페이지를 교체합니다.
고장률
고장률은 설계된 시스템이나 구성 요소가 고장나는 빈도를 나타냅니다. 이는 단위 시간당 고장 횟수로 표현되며, 그리스 문자 λ(람다)로 표기합니다.
가상 메모리의 장점
가상 메모리 사용의 장점/이점은 다음과 같습니다.
- 가상 메모리는 프로그램 실행에 프로그램의 특정 세그먼트만 필요할 때 속도를 높이는 데 도움이 됩니다.
- 다중 프로그래밍 환경을 구현하는 데 매우 유용합니다.
- 한 번에 더 많은 응용 프로그램을 실행할 수 있습니다.
- 많은 대형 프로그램을 작은 프로그램에 맞추는 데 도움이 됩니다.
- 공통 데이터나 코드는 메모리 간에 공유될 수 있습니다.
- 프로세스의 크기가 물리적 메모리 용량을 훨씬 초과할 수도 있습니다.
- 데이터/코드는 필요할 때마다 디스크에서 읽어와야 합니다.
- 코드는 재배치 없이 실제 메모리의 어느 곳에나 배치될 수 있습니다.
- 더 많은 프로세스가 주 메모리에 유지되어야 하며, 이는 CPU의 효과적인 사용을 증가시킵니다.
- 각 페이지는 필요할 때까지 디스크에 저장되며, 필요해진 후에는 삭제됩니다.
- 동시에 더 많은 애플리케이션을 실행할 수 있습니다.
- 다중 프로그래밍 정도에는 특별한 제한이 없습니다.
- 가상 주소 공간이 물리적 메모리보다 훨씬 크기 때문에 대규모 프로그램을 작성하는 것이 좋습니다.
가상 메모리의 단점
가상 메모리 사용의 단점은 다음과 같습니다.
- 시스템이 가상 메모리를 사용하는 경우 응용 프로그램 실행 속도가 느려질 수 있습니다.
- 애플리케이션 간 전환에 더 많은 시간이 걸릴 가능성이 높습니다.
- 사용 가능한 하드 드라이브 공간이 더 적습니다.
- 시스템 안정성이 저하됩니다.
- 이를 통해 물리적 RAM 용량만으로는 실행에 필요한 대규모 애플리케이션을 시스템에서 실행할 수 있습니다.
- RAM과 같은 성능을 제공하지는 않습니다.
- 이는 시스템의 전반적인 성능에 부정적인 영향을 미칩니다.
- 이는 저장 공간을 차지하게 되는데, 그 공간은 장기 데이터 저장에 다른 용도로 사용될 수 있습니다.


