TIL - 1226

10장 - 요구페이징

5.1 요구 페이징

https://codemcd.github.io/study/OperatingSystem-15장-가상메모리/

10/Untitled.png

demand paging

  • 프로세스 이미지는 backing store 에 저장
  • 프로세스는 페이지의 집합 (대부분 페이지임)
  • 지금 필요한 페이지만 메모리에 올림
  • valid bit 를 페이지 테이블에 추가 → 메모리에 적재되어있는지 아닌지 확인 용도
  • 예제
    • 10/Untitled.png
    • CPU에서 P1 3번째 페이지 접근 → valid bit 0 → cpu 에 인터럽트 신호 발생 → 운영체제 내부의 ISR 로 점프 → P1 에 있는 2번째 페이지를 메모리에 할당하는 작업 처리

페이지 결함 (Page Fault)

  • 접근하려는 페이지가 메모리에 없는 경우
  • Backing store 에서 해당 페이지를 가져옴

Pure demand paging

  • 진짜 필요한 것만 메모리에 올림
  • 장점: 메모리 절약
  • 단점: 자주 page fault 가 나기 때문에 속도가 느림

Swapping vs Demand paging

  • swapping 실행단위는 프로세스 전체 단위
  • demand paging 은 페이지 단위
  • 페이징과 스와핑의 기본적인 차이는 페이징은 프로세스의 물리적 주소 공간이 연속적이지 않게 함으로서 외부 단편화를 피하게 하는 것/ 스와핑은 멀티 프로그래밍을 허용
  • 페이징은 메인 메모리간에 프로세스 페이지를 앞뒤로 전송하기 때문에 보조 메모리는 유연 그러나 스와핑은 프로세스 전체를 교환하기 때문에 유연성이 떨어짐
  • 페이징은 스와핑보다 더 많은 프로세스가 기본 메모리에 있게함

지역성의 원리

  • 프로세스 내의 명령어 및 데이터에 대한 참조가 지역성 경향이 있음 → 일부 선호하여 집중적으로 참조
  • 시간적 지역성: 최근 참조된 페이지가 가장 가까운 미래에 다시 참조될 가능성이 높음
  • 공간적 지역성: 가상 주소 공간 상에 참조된 페이지와 인접한 페이지가 참조될 가능성이 높음
  • 순차적 지역성: 분기가 발생하지 않는한 기억장치에 저장된 순서대로 인출된다는 특성
  • page fault 확률은 매우 낮다.