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

[PintOS, Project 3] Virtual Memory Management - Cost Model / HW Components

by 불냥이_ 2021. 2. 18.

 

 

Virtual Memory (기억장치)

  - Non-continuous allocation

     ㆍ사용자 프로그램을 block으로 분할하여 적재/실행

  - Paging / Segmentation system

 

 

 

가상 메모리 관리의 목적

  - 가상 메모리 시스템 성능 최적화

     ㆍPage fault frequency (발생 빈도)

     ㆍPage fault rate (발생률) : Page fault rate를 최소화 할 수 있도록 전략들을 설계해야 함

         -> Context switch 및 Kernel 개입을 최소화

         -> 시스템 성능 향상

 

 

Cost Model

  - Page reference string (d)

     ㆍ프로세스의 수행 중, 참조한 페이지 번호 순서

     ㆍω = r1r2 ... rk ... rT (프로세스가 실행되면서 참조한 페이지의 수)

         - ri = 페이지 번호 (i = 0 ~ N-1)

         - N : 프로세스의 페이지 수 (0 ~ N-1)

 

  - Page fault rate = F(ω)

    F(ω) = (ω 중에 일어난 Page fault 수) / |ω|  (|  | 은 절댓값이 아니라 길이/갯수를 뜻한다)

 

 ※ Segment 의 경우에도 위와 동일하다.

 

 

HW Component 

Address Translation device (주소 사상 장치)

  - 주소 mapping을 효율적으로 수행하기 위해 사용

     ㆍTLB (associated memories), Dedicated page-table register, Cache memories 등

 

 

 

Bit Vectors

  - Page 사용 상황에 대한 정보를 기록하는 비트들

  - Reference Bits (used bit)

     ㆍ참조 비트

  - Update bits (modified bits, write bits, dirty bits)

     ㆍ갱신 비트

     ㆍdirty bits는 OS 뿐 아니라 많은 곳에서도 쓰이고 있다. 현재 데이터가 오염되었는지 아닌지를 점검하는 비트이다.

        /* magic과 같은 역할 수행하나? */

 

 

그림 1. PMT에서 사용되는 Bit Vectors

 

 

Reference bit vector

  - 메모리에 적재된 각각의 page가 최근에 참조 되었는지를 표시

  - 운영 

     1) 프로세스에 의해 참도죄면 해당 page의 Ref. bit를 1로 설정

     2) 주기적으로 모든 reference bit를 0으로 초기화

 

그림 2. 주기적으로 Reference Bit를 초기화한다.

  - Reference bit를 확인함으로서 최근에 참조된 page들을 확인 가능

     -> 지역성;Locality을 활용할 수 있게 된다.

 

 

 

Update bit vector

  - Page가 메모리에 적재된 후, 프로세스에 의해 수정되었는지를 표시

  - Reference bit와는 다르게 주기적으로 초기화하지 않는다.

  - Update bit = 1 일 때, 해당 page 의 Main memory 상 내용 != Swap device의 내용이라면 해당 page에 대한 write-back (to swap device)가 필요하다. 

 

 왜 사용하는가?

   ->메모리에 적재된 page에 대해 프로세스가 수정을 가했다면, page가 메모리에서 내려올 때, swap device에 있는 내용도 똑같이 수정해야하기 때문에 update bit를 사용한다. 

 

 

 

 

 

댓글0