TIL(2020.09.22)

Awesome·2020년 9월 22일
0

TIL

목록 보기
30/46
post-custom-banner

Virtual Memory Management

Overview

가상 메모리

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

가상 메모리의 관리 목적 : 가상 메모리 시스템 성능 최적화

  • Cost model

Cost model

  • Page fault frequency (발생 빈도)
  • Page fault rate(발생률)

--> Page fault rate를 최소화 할 수 있도록 전략들을 설계해야 함

Hardware Components

가상 메모리의 성능 향상을 위한 하드웨어적인 요소들이 있다.

  • Address translation device(주소 사상 장치)
    • 앞서 가상 메모리의 address mapping 부분에서 봤던 TLB와 같이 가상 주소와 실제 주소를 효율적으로 매칭시켜주기 위한 장치를 지칭한다.
  • Bit Vectors
    • Page 사용 상황에 대한 정보를 기록하는 비트들을 의미한다.
    • Reference bits(used bit)
    • Update bits(modified bits, write bits, dirty bits)

Software Components

가상 메모리 성능 향상을 위한 소프트웨어적인 관리 기법들은 다음과 같다.

  • Allocation strategies (할당 기법)
    • 각 프로세스에 얼만큼 메모리를 부여할 것인가?
    • Fixed vs Variable
  • Fetch strategies
    • 특정 page를 메모리에 언제 적재할 것인가?
    • Demand vs Anticipatory
  • Placement strategies (배치 기법)
    • Page/segment를 어디에 적재할 것인가?
    • Paging system 에서는 page frame 크기가 동일하므로 불필요
  • Replacement strategies (교체 기법)
    • 새로운 page를 어떤 page와 교체할 것인가?
    • Fixed allocation 인 경우 vs Variable allocation 인 경우
  • Cleaning strategies (정리 기법)
    • 변경된 page를 언제 write-back(swap-device에 반영)할 것인가?
    • Demand vs Anticipatory
  • Load control strategies (부하 조절 기법)
    • 시스템의 multi-programming degree 조절(프로세스의 수)
    • Allocation strategies와 연계
    • Plateau(고원) 영역 유지
    • Over-loaded인 경우 Thrasing(스레싱), 즉 과도한 page fault 발생

Replacement strategies 심화

Locality의 특성 활용

Allocation strategies에 따라 달라짐

1. Fixed allocation


LRU에서 매번 횟수를 기록하여 overhead 가 커지는 단점을 보완하기 위해 매 횟수를 기록하는 것이 아닌 일정 기간 동안 참조 여부를 파악하는 방식으로 단순화함

이 때, hardware component 인 Bit vector를 사용함.

NUR 알고리즘을 실제 적용한 사례가 아래의 Clock 알고리즘임

시계침이 페이지를 지나가는 순간 reference bit 상태가 초기화됨


2. Variable allocation

1) Working Set algorithm

프로세스에게 할당하는 메모리 공간의 크기가 가변적인 경우

  • 참고
    • [ -> 포함
    • ( -> 미포함

window 는 최소 1개부터 최대 Δ+1\Delta + 1 개의 페이지를 참조할 수 있다.

Q : MA 가 고정이고 Δ\Delta값이 가변적일 경우?
A : Fixed allocation 의 LRU(Least Recently Used) 알고리즘과 유사함

window size : 얼만큼의 구간을 볼 것인가?
ws : memory allocation size

Locality 의 영향으로 Window size가 커질수록 초반에는 WS size가 급격하게 커지지만 어느 수준 이상이 될 경우, WS size는 유지됨
-> 지역성의 특성상, 참조하는 페이지만 계속해서 참조함

Working set 에서 다른 working set 으로 전환될 때, 일시적으로 working set size(메모리 할당)가 증가한다. 이를 working set transition 이라고 한다.


할당하는 페이지 수가 다르기 때문에 Page fault 외의 평균적인 page frame 수, page fault를 처리하는 비용, page frame 유지 비용 등과 같은 지표도 함께 봐야 함.


2) Page Fault Frequency algorithm

threshold value(τ\tau) : page fault 빈도를 측정하기 위한 기준 시간, 이 값에 따라 성능이 좌우됨

3) Variable MIN (VMIN) algorithm


Other Considerations

Page size

내부 단편화 : Internal fragmentation
I/O 시간 : swap device 에서 읽어야 하는 data 가 많다.
Locality : page 크기가 크면 필요치 않은 데이터도 같이 메모리에 올라간다.
Page fault : 페이지 교체의 빈도

Q : 왜 페이지 크기는 점점 커지는 경향을 갖는가?
A : CPU 성능 향상 속도가 상대적으로 swap device 의 성능 향상 속도에 비해 빨라지고 있으며 이로 인한 격차가 커져 I/O 병목 현상 발생한다. 상대적으로 I/O 시간을 감소시키는 방향으로 가는 것이 효과적이다. 메모리도 커지고 있기 때문에 페이지 크기가 너무 작은 경우 page fault 가 증가하여 커널에 부담을 줄 수 있다.

Program Restructuring

TLB Reach

profile
keep calm and carry on
post-custom-banner

0개의 댓글