본문 바로가기
Computer Science/운영체제

메모리 관리 전략

by Libi 2021. 7. 6.
반응형

멀티 프로세스 환경에서 성능을 향상시키기 위해서는 주 메모리에 여러 개의 프로세스가 올라와서 서로 공유하도록 해야 한다. 이때 운영체제가 어떤 프로세스를 메모리에 올릴 것인지를 판단한다.

우선 메모리 계층 구조를 간단하게 살펴보고 넘어가자. 메모리 계층 구조는 다음과 같이 레지스터, 캐시 기억장치, 주기억장치, 보조기억장치로 이루어져 있다.

 

여기서 주의 깊게 봐야 할 메모리는 보조기억장치와 주기억장치이다. 각각 하드디스크, RAM을 생각하면 쉽다.

과거의 프로그램들은 메모리 크기가 작았기 때문에 주기억장치에 모두 올릴 수 있었지만 현대의 프로그램들은 메모리가 굉장히 크기 때문에 모든 프로그램을 주기억장치에 올릴 수 없다. 주기억장치의 공간은 제한적이기 때문이다. 따라서 제한된 공간에 적절한 프로그램을 올려서 효율적으로 메모리를 관리해야 한다.

즉, 보조기억장치의 프로그램이나 데이터를 주기억장치에 적재시키는 시기, 적재 위치 등을 지정하여 한정된 주기억장치의 공간을 효율적으로 사용하기 위한 방법이 바로 메모리 관리 전략이다.

메모리 관리 전략은 반입(Fetch) 전략, 배치(Placement) 전략, 교체(Replacement) 전략이 있다. 하나씩 살펴보도록 하자.

반입 전략은 보조기억장치에 보관중인 프로그램이나 데이터를 언제(When) 주기억장치로 적재할 것인지를 결정하는 전략이다.

 

요구 반입(Demand Fetch)

  • 실행 중인 프로그램이 특정 프로그램이나 데이터 등의 참조를 요구할 때 적재하는 방법
  • 즉, 메모리에 올라가야 할 때 요청하는 방식

 

예상 반입(Anticipatory Fetch)

  • 실행 중인 프로그램에 의해 참조될 프로그램이나 데이터를 미리 예상하여 적재하는 방법
  • 즉, 참조 가능성이 높은 프로그램을 미리 메모리에 올리는 방식

 

 

배치 전략은 새로 반입되는 프로그램이나 데이터를 주기억장치의 어디에(Where) 위치시킬 것인지를 결정하는 전략이다.

 

최초 적합(First Fit)

  • 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 첫 번째 분할 영역에 배치시키는 방법
  • 다른 배치 방법에 비해 빠름
  • 메모리 공간 활용도가 떨어질 수 있음

최적 적합(Best Fit)

  • 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 단편화를 가장 작게 남기는 분할 영역에 배치시키는 방법
  • 메모리 단편화가 가장 작지만, 그만큼 탐색 비용이 발생

최악 적합(Worst Fit)

  • 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 단편화를 가장 많이 남기는 분할 영역에 배치시키는 방법
  • 최적 적합과 동일하게 전체 탐색이 필요

단편화(Fragmentation)는 주기억 장치의 분할된 영역에 프로그램이나 데이터를 할당할 경우, 분할된 영역이 프로그램이나 데이터보다 작거나 커서 생기는 빈 기억 공간을 의미한다. 단편화는 두 가지 종류로 나뉜다.

내부 단편화(Internal Fragmentaion)

  • 프로세스가 필요한 메모리보다 더 많은 메모리가 할당되어서 메모리가 남는 상황

외부 단편화(External Fragmentation)

  • 부분부분 사용하지 않는 메모리 공간이 존재해서 총 메모리 공간은 충분하지만 실제로 사용할 수 없는 상황

교체 전략은 주기억장치의 모든 영역이 이미 사용 중인 상태에서 새로운 프로그램이나 데이터를 주기억장치에 배치하려고 할 때, 이미 사용되고 있는 영역 중에서 어느 영역을 교체하여 사용할 것인지를 결정하는 전략이다.

페이지 교체 알고리즘(FIFO, OPT, LRU, LFU, NUR, SCR 등)을 통해 교체하는 방식이다. 교체 전략은 주로 가상기억장치와 함께 사용된다.

반응형

댓글