디맨드 페이징

Demand paging

컴퓨터 운영 체제에서는 (예상 페이징이 아닌) 요구 페이징은 가상 메모리 관리 방법입니다.디맨드 페이징을 사용하는 시스템에서는, 디스크 페이지에 액세스 하려고 하고, 그 페이지가 메모리내에 아직 없는 경우(페이지 장해가 발생했을 경우)에만, operating system은 디스크 페이지를 물리 메모리에 카피합니다. 결과, 물리 메모리에 페이지가 없는 상태에서 프로세스가 실행을 개시하고, 프로세스의 작업 세트의 대부분이 물리 메모리에 배치될 때까지 많은 페이지 장애가 발생합니다.이것은 느린 로딩 기술의 예입니다.

기본 개념

디맨드 페이징에서는 실행 프로세스에서 필요한 경우에만 페이지를 메모리로 가져와야 합니다.프로세스에서 요구하는 페이지만 세컨더리 스토리지에서 메인 메모리로 스와프되기 때문에 이를 보통 게으른 평가라고 합니다.프로세스 시작 시 프로세스의 모든 메모리가 세컨더리 스토리지에서 메인 메모리로 스왑되는 순수 스왑과 대조됩니다.

일반적으로 이 프로세스를 수행하기 위해 페이지 테이블 구현이 사용됩니다.페이지 테이블은 논리 메모리물리 메모리매핑합니다.페이지 테이블은 비트 연산자를 사용하여 페이지가 유효한지 비활성인지를 표시합니다.유효한 페이지는 현재 메인 메모리에 있는 페이지입니다.유효하지 않은 페이지는 현재 세컨더리 메모리에 있는 페이지입니다.프로세스가 페이지에 액세스를 시도할 때는 일반적으로 다음 단계를 수행합니다.

  • 페이지 접근을 시도합니다.
  • 페이지가 유효하면(메모리에서) 정상적으로 명령 처리를 계속합니다.
  • 페이지가 비활성화되면 페이지 장애 트랩이 발생합니다.
  • 메모리 참조가 secondary 메모리상의 장소에 대한 유효한 참조인지 확인합니다.그렇지 않으면 프로세스가 종료됩니다(부정한 메모리액세스).그렇지 않으면 필요한 페이지를 호출해야 합니다.
  • 디스크 조작을 스케줄 해, 필요한 페이지를 메인 메모리로 읽어냅니다.
  • 운영체제 트랩에 의해 중단된 명령을 재시작합니다.

이점

모든 페이지를 즉시 로드하는 것이 아니라 요구 페이징:

  • 실행 프로세스에 필요한 페이지만 로드합니다.
  • 메인 메모리의 빈 영역이 넓어짐에 따라 더 많은 프로세스를 로드할 수 있어 컨텍스트 전환 시간이 단축되고 대량의 리소스가 사용됩니다.
  • secondary 스토리지로부터 액세스 하는 정보가 적어지기 때문에, 메인 메모리에 가져오는 정보가 적어지기 때문에, 프로그램 기동시에 로드 레이텐시가 단축됩니다.
  • 메인 메모리는 세컨더리 메모리에 비해 가격이 비싸기 때문에 스마트폰의 BOM(Bill of Material) 비용을 대폭 절감할 수 있다.Symbian OS에는 이 기능이 있습니다.

단점들

  • 개별 프로그램은 처음 페이지에 액세스할 때 추가 지연 시간이 발생합니다.
  • 저비용 저전력 임베디드 시스템에서는 페이지 치환을 지원하는 메모리 관리 유닛이 없을 수 있습니다.
  • 페이지 치환 알고리즘을 사용한 메모리 관리는 조금 더 복잡해집니다.
  • 타이밍 공격에 대한 취약성 등 보안 위험이 발생할 수 있습니다.를 참조해 주십시오.Percival, Colin (2005-05-13). Cache missing for fun and profit (PDF). BSDCan 2005. (구체적으로는 섹션2의 가상 메모리 공격).
  • 반복된 페이지 장애로 인해 발생할 수 있는 스레싱입니다.

「 」를 참조해 주세요.

레퍼런스

  • 타넨바움, 앤드류 S운영 체제: 설계구현(제2판).뉴저지: 프렌티스홀 1997.