운영체제(OS)/keyword

(Project3-Virtual Memory) 페이지 오류(Page Fault)

스탠딩 2023. 12. 16. 15:33

페이지 폴트는 프로세스가 필요로 하는 페이지가 물리 메모리에 없어서 발생하는 예외 상황을 의미한다.

출처 : https://linuxembedded.fr/sites/default/files/uploads/2020/01/page-fault

 

페이지 폴트의 원인

  • 초기 로딩: 프로그램이 실행될 때 초기에 필요한 페이지들이 메모리에 로딩되지 않은 경우.
  • 페이지 교체: 물리 메모리에 여유 공간이 부족해져 페이지 교체가 필요한 경우.
  • 처음부터 물리 메모리에 없는 페이지에 접근: 처음부터 물리 메모리에 없는 페이지에 접근하는 경우.

페이지 폴트 처리 메커니즘

  • 페이지 폴트 핸들링: 운영체제는 페이지 폴트를 감지하고, 필요한 페이지를 디스크에서 읽어와 물리 메모리에 적재한다.
  • 페이지 교체 알고리즘: 물리 메모리가 가득 찬 상태에서 페이지 폴트가 발생하면 어떤 페이지를 교체할지 결정하기 위해 페이지 교체 알고리즘이 사용된다.

페이지 폴트와 성능

  • 성능 저하: 페이지 폴트는 디스크에서 페이지를 읽어오는 과정이 필요하므로 성능에 영향을 미친다.
  • 페이지 폴트 최적화: 프리페칭(Pre-fetching)이나 스와핑 등의 기술을 통해 페이지 폴트를 최소화하고 성능을 향상시키는 방법들이 있다.

페이지 폴트는 가상 메모리 시스템에서 빈번하게 발생하는 현상 중 하나로, 이를 효과적으로 처리함으로써 시스템의 성능을 최적화할 수 있다. 페이지 폴트 핸들링과 페이지 교체 알고리즘은 운영체제의 중요한 역할 중 하나이며, 적절한 최적화 기술을 적용함으로써 메모리 관리의 효율성을 높일 수 있다.