본문 바로가기
운영체제

운영체제 정리 6. 가상메모리

by sunday5214 2018. 12. 3.

가상메모리란?

-보조기억장치를 주기억장치처럼 주소지정 가능하게 만든 저장공간 할당체제


가상메모리를 사용하는 이유

-보다 많은 프로세스를 주기억장치에 유지할 수 있다.

-각 프로세스에 대해 일부 블록들만 적재하므로 많은 프로세스를 적재할 수 있다. 이로 인해 임의 시점에 하나 이상의 프로세스가 준비 상태에 있을 가능성이 커지므로 처리기의 활용도가 높아진다.//여쭈어보자


-주기억장치보다 큰 프로세스를 수행할 수 있다.

-프로그래밍에 있어 가장 근본적 제약점 중 하나가 제거된다. 이 기법을 적용하지 않을 경우, 프로그래머는 얼마나 많은 메모리 공간을 사용할 수 있는지 정확히 인식해야한다. 프로그램이 클 경우, 오버레이와 같은 기법을 적용하여 분할 적재할 수 있도록 프로그램을 여러 블록으로 구조화할 수 있는 방법을 모색해야 한다.



지역성의 원리

-프로세스 내의 명령어 및 데이터에 대한 참조가 군집화 경향이 있음을 뜻한다.

-지역성의 원리는 참조된 메모리의 근처 메모리를 참조하는 공간의 지역성의 원리, 참조했던 메모리는 빠른 시간내에 다시 참조될 확률이 높다는 시간의 지역성의 원리, 데이터가 순차적으로 액세스되는 것을 말하는 순차 지역성 등이 있습니다.


가상메모리 관리방법

-TLB(Translation Lookaside Buffer)

-원칙적으로 모든 가상메모리 참조는 두 번의 물리메모리 참조를 수반한다. 한 번은 해당 페이지테이블 항목을 참조하기 위함이고, 다른 한 번은 요구된 데이터를 접근하기 위함이다. 이런 가상메모리 방식은 두 배의 메모리 접근 시간을 갖게 한다. 이러한 문제 해결을 위해 대부분의 가상메모리 방식은 페이지테이블 항목들에 대한 특수 고속캐시를 사용하는데 일반적으로 이를 TLB라 부른다.

-장점 : 속도가 빠르다.


-메모리관리 관련 알고리즘(아래의 그림참조)

-최적 : 미래에 참조될 때까지의 시간이 가장 긴 페이지를 교체 대상으로 선택한다. 이 정책이 가장 적은 페이지폴트를 발생시키지만 운영체제가 미래에 일어날 사건들에 대해 완벽히 알 수 없으므로 이 정책의 구현은 불가능하다.


-LRU(Least Recently Used) : 가장 오랜 동안 참조되지 않은 주기억장치 상의 페이지를 교체한다. 지역성의 원리에 따른다면, 이 페이지는 가까운 미래에 참조될 가능성이 가장 적을 것으로 예상되는 페이지가 분명하다. 실제로 이 정책은 최적 정책과 거의 유사하게 동작한다. 위에서 구현이 불가능 하다고 했는데 최적과 무엇이 다르냐를 알아보면 각 페이지에 대한 최종 참조 시간을 해당 페이지의 태그로 설정해 두거나 페이지 참조들에 대해 스택을 유지할 수 있는데 이러한 방법은 오버헤드가 엄청나고 그에 대한 비용이 매우 크다.


-FIFO(First-In-First-Out) : 프로세스에 할당된 페이지프레임들을 순환버퍼처럼 다루어, 라운드로빈 스타일로 프레임 상의 페이지들을 제거한다. 이 정책은 가장 쉽게 구현 가능한 페이지 교체정책 중 하나로, 페이지들을 원형으로 연결하는 포인터가 구현에 필요한 모든 것이다.(한마디로 쉽게 구현한다.)FIFO는 가장 오래 전에 반입된 페이지는 이제 사용되지 않을 것이다. 라는 전제하에 메모리에 가장 오래 머물렀던 페이지를 교체한다. 이 때문에 LRU는 페이지 2나 5가 다른 페이지보다 자주 참조된다는 것을 인식하지만 FIFO는 그렇지 않다.