운영 체제(OS)에서 "익명 페이지(Anonymous Page)"는 특정 파일이나 다른 데이터 소스에 직접 매핑되지 않는 메모리 페이지를 의미합니다. 이러한 페이지들은 주로 프로세스의 힙(heap)이나 스택(stack) 영역에 할당되며, 프로세스의 동적 메모리 할당 요청에 응답하여 생성됩니다. 익명 페이지는 운영 체제의 메모리 관리 시스템에서 중요한 역할을 합니다.
정의: 익명 페이지는 파일 시스템상의 파일이나 다른 지속적인 저장소에 백업되지 않은 메모리 페이지를 가리킵니다. 이는 데이터의 원래 소스가 없거나, 데이터가 프로그램 실행 중에 동적으로 생성되었을 때 발생합니다.
사용 사례: 익명 페이지는 주로 프로세스의 스택과 힙 영역에서 사용됩니다. 예를 들어, 프로그램이 malloc
같은 메모리 할당 함수를 사용하여 동적으로 메모리를 할당할 때, 운영 체제는 이러한 요청을 충족시키기 위해 익명 페이지를 할당합니다.
메모리 할당: 프로세스가 동적 메모리 할당을 요청하면, 운영 체제는 익명 페이지를 할당하여 이 요청을 충족시킵니다.
페이지 폴트 처리: 프로세스가 처음으로 익명 페이지에 접근하면 페이지 폴트가 발생합니다. 이때 운영 체제는 해당 페이지를 물리적 메모리에 매핑하고, 필요에 따라 초기화합니다.
스왑 아웃: 시스템 메모리가 부족할 때, 운영 체제는 익명 페이지를 스왑 공간(swap space)으로 이동시킬 수 있습니다. 이는 물리적 메모리를 확보하기 위한 조치입니다.
비지속성: 익명 페이지는 디스크에 있는 파일과 연결되지 않으므로, 시스템이 종료되면 해당 데이터는 사라집니다.
동적 할당: 동적 메모리 할당 요청에 대응하여 생성되며, 프로세스의 런타임 동안만 존재합니다.
스왑 가능성: 메모리 부족 상황에서 스왑 영역으로 이동될 수 있으며, 이는 성능에 영향을 줄 수 있습니다.
익명 페이지는 현대 운영 체제에서 프로세스의 메모리 요구사항을 효율적으로 관리하는 데 중요한 역할을 합니다. 이들은 프로세스가 필요로 하는 메모리를 유연하게 할당하고 관리할 수 있게 해줌으로써, 시스템의 성능과 자원 활용도를 최적화하는 데 기여합니다.