. [PintOS, Project 3] Virtual Memory Management - SW Components
본문 바로가기
Pintos Project/이론 공부

[PintOS, Project 3] Virtual Memory Management - SW Components

by 불냥이_ 2021. 2. 18.

 

Software Components

가상 메모리 성능 향상을 위한 관리 기법들

   - Allocation strategies (할당 기법)

   - Fetch strategies 

   - Placement strategies (배치 기법)

   - Replacement strategies (교체 기법)

   - Cleaning strategies (정리 기법)

   - Load control strategies (부하 조절 기법)

 

 

1. Allocation Strategies

각 프로세스에게 메모리를 얼마 만큼 줄 것인가?

  - Fixed allocation (고정 할당)

    ㆍ프로세스의 실행 동안 고정된 크기의 메모리 할당

  - Variable allocation (가변 할당)

    ㆍ프로세스의 실행 동안 할당하는 메모리의 크기가 유동적

 

 

고려사항

  - 프로세스 실행에 필요한 메모리 양을 예측해야 함

  - 너무 큰 메모리 할당 시,

     -> 메모리가 낭비 됨

  - 너무 적은 메모리 할당 시,

     -> Page fault rate 상승

     -> 시스템 성능 저하

 

 

 

2. Fetch Strategies

특정 page를 메모리에 언제 적재할 것인가?

  - Demand fetch (demand paging)

     ㆍ프로세스가 참조하는 페이지들만 적재

     ㆍPAge fault overhead

 

  - Anticipatory fetch (pre-paging)

     ㆍ참조될 가능성이 높은 page 예측

     ㆍ가까운 미래에 참조될 가능성이 높은 page를 미리 적재

     ㆍ예측 성공 시, page fault overhead가 없음

     ㆍPrediction overhead (kernel의 갱ㅂ), Hit ratio 에 민감함

 

실제 대부분의 시스템은 Demand fetch 기법을 사용한다.

  - 일반적으로 준수한 성능을 보여줌

  - Anticipatory fetch

     ㆍPrediction overhead : 예측하는 것이 쉽지 않으며, 잘못된 예측 시 자원 낭비가 크다.

     ㆍ하지만, 예측 가능한 상황에서 anticipatory fetch를 사용하면 많은 자원을 절약할 수 있다.

 

 

3. Placement Strategies

Page / Segment를 어디에 적재할 것인가?

  - Paging System에서는 불필요 (Process (Page) 과 Memory (Page frame) 양측을 고정된 크기로 자르기 때문이다.)

  - Segmentation system에서의 배치 기법

     ㆍFirst-Fit

     ㆍBest-Fit

     ㆍWorst-Fit

     ㆍNext-FIt

 

 

 

4. Replacement Strategies

빈 page frame이 없는 경우, 새로운 Page를 어떤 page와 교체할 것인가

   -> 다음 포스팅 참조

 

 

5. Cleaning Strategies

변경된 page를 언제 write-back할 것인가?

  - 변경된 내용을 swap device에 반영

  - Demand cleaning

     ㆍ해당 page에 메모리에서 내려올 때, wriet-back 수행

  - Anticipatory cleaning (pre-cleaning)

     ㆍ더 이상 변경될 가능성이 없다고 판단할 때, 미리 write-back

     ㆍPage 교체 시 발생하는 write-back 시간 절약

     ㆍWrite-back 이후, page 내용이 수정되면 overhead 발생

 

이 또한, 대부분의 시스템은 Demand cleaning 기법을 사용한다.

  - 일발적으로 준수한 성능을 보여줌

  - Anticipatory cleaning

     ㆍPrediction overhead : 예측하는 것이 쉽지 않으며, 잘못된 예측 시 자원 낭비가 크다.

 

 

6. Load Control Strategies

시스템의 multi-programming degree 조절

  - Alloctaion strategies와 연계 됨

 

그림 1. Multi-programming degree에 따른 부하 변화

적정 수준의 multi-programming degree를 유지해야 함

  - Plateau (고원) 영역으로 유지

  - 저부하 상태 (Under-loaded)

      -> 시스템 자원 낭비, 성능 저하

  - 고부하 상태 (Over-loaded)

      -> 자원에 대한 경쟁 심화, 성능 저하

      -> Thrashing (스레싱) 현상 발생 (과도한 page fault가 발생하는 현상)

 

 

댓글