[운영체제] 가상메모리 관리 전략

su_y2on·2022년 10월 19일
0

CS

목록 보기
8/9
post-thumbnail

가상메모리 관리

목적

가상 메모리 시스템(paging, segmentation, hybrid)의 성능 최적화




성능 최적화 지표

그렇다면 어떤 지표를 이용해서 성능 최적화를 평가해야할까? 바로 page fault의 발생률이다. page fault가 발생하면 Context Switch 및 Kernel의 개입이 일어난다. 따라서 시스템 성능에 영향을 준다.




Bit Vectors

여기서 하나 알아둬야할 정보는 PMT에 들어있는 reference bitsupdate bits이다.

reference bits

참조 비트로 페이지가 최근에 참조되었는지를 표시하는 비트이다. 주기적으로 모든 참조비트를 0으로 만들어준다. 그리고 page를 참조할 때 마다 참조비트를 1로 만들어준다. 이 비트의 정보를 통해 지역성을 챙겨갈 수 있다.

update bits

page가 메모리에 적재된 후에 수정이 있었는지를 표시하는 비트이다. 주기적인 초기화는 없으며 후에 swap device와의 정합성을 맞추기위해 필요한 비트이다.




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

Allocation 전략

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

너무 적은 메모리를 할당하면 page fault 횟수가 늘어난다. 하지만 너무 큰 메모리를 할당하면 메모리 낭비가 생길 것이다.


Fetch 전략

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

  • demand fetch
    프로세스가 page를 필요로할 때 적재한다. page fault비용이 들어간다.

  • pre-paging
    프로세스에서 필요로하는 page를 미리 예측해서 적재해놓는다. page fault 없지만 예측비용들어간다.

대부분의 OS는 demand fetch를 이용


Placement 전략

segment를 어디에 적재할 것인지?
이는 block의 크기가 다른 가상 메모리 시스템에서 고려되어야한다.

  • first fit
  • best fit
  • worst fit
  • next fit

Replacement 전략

새로운 페이지를 어떤 페이지와 교체할 것인가?
이는 메모리에 더이상 빈 페이지프레임이 없는 경우 페이지를 올려야한다면 어떤 것을 뺄지 결정하는 것이다. 다양한 기법이 존재하고 뒤에서 좀더 자세히 다루도록 하겠다.


Cleaning 전략

변경 된 페이지를 언제 write-back할 것인가?
update bits가 1이면 메모리에 올라간 페이지에 변경이 일어난 것이다. 따라서 swap device와 상태가 달라졌기때문에 이를 반영해줘야한다.

  • demanding
    해당 page가 메모리에서 내려올 때(교체될 때) 반영한다.
  • pre
    더 이상 변경될 가능성이 없을 때 미리 반영한다. 예측비용이든다. page 교체시 시간절약할 수 있다.

대부분 OS에서 Demand방식을 사용한다.


Load Control 전략

시스템의 Multi-programming degree조절

시스템에 너무 많은 프로그램이 올라와 있으면 자원에 대한 경쟁이 심화 되어 성능이 저하될 수 있다. 이때 과도한 page fault가 발생하는 thrashing현상이 일어난다. 반대로 너무 적은 프로그램이 올라와있으면 시스템 자원이 낭비된다.

0개의 댓글