전체 목록
운영체제Hard#199

페이징과 페이지 폴트는 무엇인가요?

#운영체제#Paging#PageFault#메모리

답변 포인트

페이지 테이블과 디스크 I/O 비용를 기준으로 정의, 장점, 한계, 예시를 함께 설명해보세요.

정답 및 해설

빠른 요약

페이징은 메모리를 고정 크기 페이지와 프레임으로 나눠 매핑하는 방식입니다. 페이지 폴트는 필요한 페이지가 물리 메모리에 없어 디스크에서 가져와야 할 때 발생합니다.

페이징은 가상 메모리와 물리 메모리를 고정 크기 블록인 page와 frame으로 나눠 매핑하는 방식입니다. 페이지 폴트는 프로세스가 접근한 가상 페이지가 현재 물리 메모리에 없거나 접근 권한이 맞지 않을 때 발생하는 예외입니다.

핵심 개념

  • 페이지 테이블은 가상 페이지 번호를 물리 frame 번호와 권한 정보로 매핑합니다.
  • TLB는 최근 주소 변환 결과를 캐시해 페이지 테이블 조회 비용을 줄입니다.
  • 페이지 폴트가 발생하면 커널이 필요한 페이지를 로드하거나, 권한 위반이면 프로세스에 오류를 전달합니다.

동작 방식 또는 판단 기준

이 주제를 이해할 때는 다음 순서로 보면 실무 적용이 쉬워집니다.

  1. 무엇을 해결하려는가: 성능, 표현력, 안정성, 접근성 중 어떤 문제를 줄이려는지 확인합니다.
  2. 전제 조건은 무엇인가: 정렬 여부, 브라우저 지원, 네트워크 특성, 동시성 조건처럼 성립해야 하는 조건을 점검합니다.
  3. 비용은 어디서 발생하는가: 시간 복잡도, 메모리, 캐시, 재시도, 렌더링 비용처럼 병목 지점을 나눠 봅니다.
  4. 실패 시 어떤 문제가 생기는가: 잘못 적용했을 때의 버그나 운영 리스크를 함께 고려합니다.

실제 예시

Text
  
1. CPU   0x... 
2. TLB   
3.    
4. present bit 0 page fault
5.  / page   frame 
6.  

실무에서 주의할 점

  • 모든 page fault가 에러는 아닙니다. demand paging에서는 정상적인 로딩 과정일 수 있습니다.
  • 하지만 major page fault가 많으면 디스크 I/O가 발생해 성능이 크게 저하됩니다.
  • 잘못된 주소 접근이나 권한 위반은 segmentation fault 같은 치명적 오류로 이어집니다.

실무 적용 가이드

  • 성능 분석 시 minor/major page fault를 구분해 봅니다.
  • 큰 배열을 순차 접근하면 공간 지역성이 좋아 page/cache 효율이 높습니다.
  • 메모리 사용량이 큰 서비스는 working set이 RAM에 들어가는지 확인하고, swap 의존을 줄입니다.

함께 연결해서 보면 좋은 키워드

Paging, Page Fault, TLB, Virtual Memory, MMU

정리

페이징은 가상 메모리와 물리 메모리를 고정 크기 블록인 page와 frame으로 나눠 매핑하는 방식입니다. 다만 개념 자체보다 중요한 것은 적용 조건과 한계를 함께 이해하는 것입니다. 작은 예제에서는 단순해 보여도 실제 서비스에서는 성능, 보안, 유지보수성, 접근성 요구사항이 함께 얽히므로, 문제의 성격을 먼저 파악한 뒤 적절한 도구로 선택하는 것이 좋습니다.

관련 질문

같은 카테고리/태그 기준