운영 체제(OS)에서의 페이지 폴트(Page Fault)는 프로세스가 접근하려는 메모리 페이지가 물리적 메모리(RAM)에 존재하지 않을 때 발생하는 이벤트입니다. 페이지 폴트는 가상 메모리 시스템의 중요한 부분으로, 메모리 관리와 자원 할당에 있어 핵심적인 역할을 합니다.
정의: 페이지 폴트는 프로세스가 참조하려는 가상 메모리 페이지가 현재 물리적 메모리에 로드되어 있지 않을 때 발생합니다. 이는 메모리 접근 시도 중에 발생하는 인터럽트 또는 예외 상황입니다.
목적: 페이지 폴트 메커니즘은 프로세스가 필요로 하는 페이지를 효율적으로 로드하고 관리하는 데 필요합니다. 이를 통해 운영 체제는 물리적 메모리의 한정된 크기에도 불구하고, 프로세스가 더 큰 가상 메모리 공간을 사용할 수 있게 합니다.
페이지 폴트 발생: 프로세스가 메모리에 접근하려 할 때, 해당 가상 주소에 대응하는 페이지가 물리적 메모리에 없으면 페이지 폴트가 발생합니다.
인터럽트 처리: 페이지 폴트는 운영 체제에 의해 처리되는 인터럽트입니다. 운영 체제는 이 인터럽트를 받고 현재 CPU의 상태를 저장한 후 페이지 폴트 처리 루틴을 실행합니다.
페이지 로딩: 운영 체제는 필요한 페이지를 찾아 물리적 메모리로 로드합니다. 이 페이지는 디스크의 스왑 영역이나 해당 파일 시스템에서 가져올 수 있습니다.
페이지 테이블 업데이트: 페이지가 메모리에 로드된 후, 페이지 테이블이 업데이트되어 새로운 매핑 정보를 반영합니다.
프로세스 재개: 페이지 로딩이 완료되면, CPU는 원래의 프로세스를 재개합니다.
Minor Page Fault: 이는 페이지가 메모리 내에 이미 존재하지만, 페이지 테이블에 아직 매핑되지 않았을 때 발생합니다.
Major Page Fault: 이는 페이지가 물리적 메모리에 전혀 존재하지 않고, 디스크에서 로드해야 할 때 발생합니다. 이는 더 많은 시간이 소요됩니다.
페이지 폴트는 가상 메모리를 효과적으로 관리하는 데 중요한 역할을 합니다. 이 메커니즘을 통해 운영 체제는 메모리를 더 효율적으로 사용할 수 있으며, 프로세스 간 메모리 공유, 메모리 보호, 디스크 스왑 등의 기능을 구현할 수 있습니다. 그러나 과도한 페이지 폴트는 시스템 성능 저하(스래싱)로 이어질 수 있어, 효율적인 메모리 관리가 중요합니다.