[컴퓨터공학]/[운영체제]

[운영체제]가상 메모리 관리(Virtual Memory Management) - 1

딥러닝 도전기 2021. 6. 3. 21:16

운영체제 - 한빛아카데미

운영체제에 대해 공부한 내용에 대해 정리해보았습니다.

KOREATECH 김덕수 교수님의 자료와 한밭대학교 임경태 교수님의 강의를 참고하였습니다


이번 포스팅에서는 가상 메모리 관리에 대해 다뤄보겠습니다.

 

가상 메모리 관리의 목적은 가상 메모리 시스템 성능 최적화에 있습니다.
가상 메모리 시스템 성능 최적화는 Page fault rate를 최소화하여 Context switch를 최소화하는 것입니다.
결국 성능을 최적화시키게 되면 자원 사용이 감소하여(overhead가 감소하여) 성능이 향상되는 효과가 있습니다.

 

메모리 관리의 키워드에 대해 살펴보겠습니다.

 

Page fault frequency (page fault의 발생 빈도)

 

page referenve string $\omega$

$\omega = r_1r_2r_3\cdots r_k \cdots r_T$

$r_i$ : 페이지 번호, $ r_i\in{0, 1, 2, \cdots, N-1}$

N : 프로세스의 페이지 수

 

page fault rate (page fault의 발생률) = $F(\omega)$

$F(\omega) = frac {Num of page faults during \omega}{|\omega|}$

여기서 $|\omega|$ 는 참조한 페이지의 수를 의미합니다.

 

결국 Page fault rate = page fault 수/참조한 페이지 수 입니다.

 

Address translation device : TLB와 같이 주소 사상을 효율적으로 수행하기 위한 하드웨어 장치

 

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

  • Reference bits(used bit) : 참조 비트
  • Update bits(dirty bit) : 갱신 비트

reference bits, update bits

reference bit vector와 update bit vector을 그림으로 나타낸 것입니다. 두 비트들은 PMT내부에 존재하며 효율성을 위해 page frame들의 정보를 관리합니다.

 

reference bit vector는 메모리에 적재된 각각의 page가 최근에 참조되었는지에 대한 정보를 관리합니다.

주기적으로 모든 reference bit를 0으로 초기화 하며 프로세스에 의해 참조되면 해당 페이지의 reference bit를 1로 설정합니다.

→reference bit를 확인함으로서 최근에 참조된 page를 확인 가능하다 (locality)

 

update bit vector은 page가 메모리에 적재된 후 프로세스에 의해 수정되었는지를 표시합니다.

주기적인 초기화는 없습니다.

update bit 가 1일 때는 해당 page의 Main memory상의 내용과 Swap device의 내용이 다르기 때문에 write-back이 필요합니다.

반응형