Chapter10. 가상 메모리 관리(1)

Date:     Updated:

카테고리:

태그:

유튜브에 있는 김덕수 교수님의 Operating System 강의를 듣고 정리한 내용입니다.
중간에 등장하는 ppt 내용들은 모두 강의자료를 캡처한 것입니다.


🔧 Virtual Memory

  • Virtual memory
    • Non-continuous allocation
    • 사용자 프로그램을 block으로 분할하여 적재/실행
    • Paging/Segmentation system


  • Virtual memory management
    • 가상 메모리 시스템 성능 최적화
    • Cost model 정의 → 다양한 최적화 기법


🔧 Cost model for virtual memory system

10-4

  • Page fault rate (발생률)
  • Page fault frequency (발생 빈도)
  • Page fault를 최소화 할 수 있도록 전략을 설계
    • Context swiching 및 커널 개입 최소화


🔧 HW Components

Address translation device (주소 사상 장치)

  • TLB, page table register, cache memory, …


Bit vetroes

Bit veotrs Reference bit 초기화
10-1 10-2
  • Reference bits (참조 비트)
    • 메모리에 적재된 각각의 page가 최근에 참조되었는지 표시
    • 프로세스에 의해 참조되면 reference bit 1로 설정
    • 주기적으로 모든 reference bit 0으로 초기화
    • 어떤 방식으로 초기화하느냐가 전략
  • Update bits (갱신 비트)
    • dirty bits 라고도 함
    • page가 메모리에 적재된 후, 프로세스에 의해 수정되었는지 표시
    • 수정되었다면 memory 내의 데이터 != swap device 내의 데이터
    • 해당 page에 대한 write-back 필요


🔧 SW Components

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

  • Allocation strategies (할당 기법)
  • Fetch strategies
  • Placement strategies (배치 기법)
  • Replacement strategies (교체 기법)
  • Cleaning strategies (정리 기법)
  • Load control strategies (부하 조절 기법)


Allocation strategies (할당 기법)

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

  • Fixed allocation (고정 할당)
    • 프로세스의 실행 동안 고정된 크기의 메모리만 할당
  • Variable allocation (가변 할당)
    • 프로세스 실행 동안 유동적으로 메모리 할당


  • 프로세스 실행에 필요한 메모리 양을 예측해야함
  • 너무 큰 메모리 할당하면 메모리 낭비
  • 너무 작은 메모리 할당하면 page fault 증가


Fetch strategies

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

  • Demand fetch (demand paging)
    • 프로세스가 참조하는 페이지들만 적재
    • page fault overhead
  • Anticipatory fetch (pre-paging)
    • 참조될 가능성이 높은 page를 예측하고 미리 적재
    • 예측 성공 시 page fault overhead 없음
    • 예측 실패 시 자원 낭비가 큼
  • 실제 대부분의 시스템은 demand fetch 기법 사용


Placement strategies (배치 기법)

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

  • Paging system에는 불필요
    • 크기가 전부 같아서 전략이 필요 없음
  • Segmentation system에서의 배치 기법
    • First-fit
    • Best-fit
    • Worst-fit
    • Next-fit


Replacement strategies (교체 기법)

따로 빼서 정리

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

  • Fixed allocation을 위한 교체 기법
    • MIN algorithm
    • Random algorithm
    • FIFO algorithm
    • LRU(Least Recently Used) algorithm
    • LFU(Least Frequently Used) algorithm
    • NUR(Not Used Recently) algorithm
    • Clock algorithm
    • Second chance algorithm
  • Variable allocation을 위한 교체 기법
    • VMIN(Variable MIN) algorithm
    • WS(Working Set) algorithm
    • PFF(Page Fault Frequency) algorithm


Cleaning strategies (정리 기법)

변경된 page를 언제 write-back할 것인가? (swap device에 반영)

  • Demand cleaning
    • 해당 page에 메모리에서 내려올 때 write-back
  • Anticipatory cleaning (pre-cleaning)
    • 더 이상 변경될 가능성이 없다고 판단할 때 미리 write-back
    • Page 교체 시 발생하는 write-back 시간 절약
    • Write-back 이후, page 내용이 수정되면 overhead
  • 실제 대부분의 시스템은 demand cleaning 기법 사용


Load control strategies (부하 조절 기법)

10-3

시스템의 multi-programming degree 조절

  • Allocation strategies와 연계됨
  • 저부하 상태 (Inder-loaded)
    • 시스템 자원 낭비, 성능 저하
  • 고부하 상태 (Over-loaded)
    • 자원에 대한 경쟁 심화, 성능 저하
    • Thrashing(스레싱) 현상 발생
      • 과도한 page fault가 발생하는 현상


맨 위로 이동하기

OS 카테고리 내 다른 글 보러가기

댓글 남기기