10장 - 요구페이징
5.1 요구 페이징
https://codemcd.github.io/study/OperatingSystem-15장-가상메모리/
demand paging
- 프로세스 이미지는 backing store 에 저장
- 프로세스는 페이지의 집합 (대부분 페이지임)
- 지금 필요한 페이지만 메모리에 올림
- valid bit 를 페이지 테이블에 추가 → 메모리에 적재되어있는지 아닌지 확인 용도
- 예제
- 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 확률은 매우 낮다.