기어가더라도 제대로

[운영체제-김덕수 교수님] 가상 메모리 관리(2/6) - 소프트웨어 컴포넌트 본문

CS/운영체제

[운영체제-김덕수 교수님] 가상 메모리 관리(2/6) - 소프트웨어 컴포넌트

Damagucci-juice 2022. 8. 15. 22:56

앞 강좌에서 하드웨어적으로 페이지 관리 기법을 살펴봤으면,
이번장에선 소프트웨어적으로 가상 메모리에서 페이지 관리 기법을 살펴보자
또한, page 를 어떻게 가져올지 부터, 오래된 page는 어떻게 청소할 지까지 배워보자

목차.

1. Fetch Strategies
2. Placement Strategies
3. Replacement Strategies
4. Cleaning Strategies
5. Load Control Strategies

개요

  • 각 프로세스에게 메모리를 어떻게 줄것인가?
    • Fixed allocation(고정할당)
      • 프로세스의 실행 동안 고정된 크기의 메모리 할당
    • Variable allocation(가변할당)
      • 프로세스의 실행동안 할당하는 메모리의 크기가 유동적
  • 고려사항
    • 프로세스 실행에 필요한 메모리의 양을 예측해야함
    • 너무 큰 메모리 할당
      • 메모리가 낭비됨
    • 너무 작은 메모리 할당
      • 페이지 폴트율 상승
      • 시스템 성능 저하

Fetch Strategies

  • 특정 page를 메모리에 언제 적재할 것인가?
    • Demand fetch (demand paging)
      • 프로세스가 참조하는 페이지들만 적재
      • page falut overhead
      • 만화방에가서 지금 당장 읽을 책 1권만 들고 오는 전략
        • 3~4권을 읽어야 성이 찰것이면 다음의 볼것을 대비하는 전략을 찾아야함
    • Anticipatory fetch(pre-paging)
      • 참조될 가능성이 높은 page 예측
      • 가까운 미래에 참조될 가능성이 높은 page를 미리 적재
      • 예측 성공시, page fault overhead 가 없음
      • prediction overhead(kernel의 개입), hit ratio에 민감함
    • 실제 대부분의 시스템은 demand fetch 기법을 사용
      • 일반적으로 준수한 성능을 보여줌
      • Anticipatory fetch
        • prediction overhead
          • 잘못된 예측시 자원낭비가 큼

‏‏‎ ‎

Placement strategies

  • page/segment를 어디에 적재할 것인가?
  • Paging system에는 불필요
  • segmentation system에서의 배치 기법
    • first-fit
    • best-fit
    • worst-fit
    • next-fit

‏‏‎ ‎

Replacement strategis

  • 새로운 page를 어떤 page와 교체할 것인가?
    • 빈 page frame이 없는 경우
    • Fixed allocation 의 경우
    • variable allocation의 경우
    • 당연한 말이지만, 각각의 경우에 따라 전략이 다름
      • 개인적으로는 variable allocation 의 경우가 제일 이해하기 어려움
        ‏‏‎ ‎

Cleaning strategies

  • 변경 된 page를 언제 write-back 할 것인가?
    • 변경된 내용을 swap device 에 반영
    • Demand cleaning
      • 해당 page 에 메모리에서 내려올 때 write-back
    • Anticipatory cleaning
      • 더이상 변경될 가능성이 없다고 판단할 때, 미리 write-back
      • page 교체시 발생하는 write-back 시간 절약
      • write-back 이후, page 내용이 수정되면, overhead!
  • 실제 대부분의 시스템은 Demand cleaning 기법 사용
    • 일반적으로 준수한 성능을 보여줌
    • Anticipatory cleaning
      • Prediction overhead 잘본된 예측시 자원낭비가 큼

‏‏‎ ‎

Load Control Strategies

[운영체제-김덕수 교수님] 가상 메모리 관리(2/6) - 비용 모델, 하드웨어 요소 image

  • 시스템의 multi-programming degree 조절
    • Allocation strategies 와 연계됨
  • 적정 수준의 multi-programming degree 를 유지해야함
    • Plateau(고원) 영역으로 유지
    • 저부하 상태(Under-loaded)
      • 시스템 자원 낭비, 성능 저하
    • 고부하 상태(over-loaded)
      • 자원에 대한 경쟁 심화, 성능 저하
      • Thrashing(스레싱) 현상 발생
        • 과도한 page fault 가 발생하는 현상

‏‏‎ ‎

Software components

  • 가상 메모리 성능 향상을 위한 관리 기법들도 배울것이다~
Comments