본문 바로가기

운영체제

메모리 관리 2 - 메모리 관리 전략

728x90
반응형

Goal

  • 여러 메모리 관리 기법에 대해 설명할 수 있다.

운영체제는 한정된 크기의 메모리를 효율적으로 다루기 위해 다양한 방식의 메모리 관리 방법을 사용한다.

 

운영체제는 메모리 관리를 통해 다음과 같은 기능을 제공해준다.

  • 여러 프로세스가 동시에 실행될 수 있도록 메모리 공간 제공
  • 메모리 보호(리소스 보호)
  • 공유 (메모리 공유를 통해 통신이 가능)
  • 사용자(프로그래머)를 위한 메모리 어드레싱 방법 제공

 

그렇다면 어떤 메모리 관리 기법이 있는지 알아보자.

 

메모리 관리 정책

  • 가져오기 정책(fetch policy) : 필요로 하는 데이터를 언제 메모리로 가져올지 결정
  • 배치 정책(placement policy) : 가져온 데이터를 메모리 어느 위치에 올려 놓을지 결정
  • 교체 정책(replacement policy) : 어떤 데이터를 메모리에서 내보내고 가져올지 결정

 

가져오기/적재 (fetch/load)

  • 요구 적재(demand fetch) : 요청 시 메모리에 적재
    • ex) 요구 페이징(demand paging)
    • dynamic loading
  • 예상 적재(anticipatory fetch) : 미리 예상하여 메모리에 적재
    • ex) 참조 가능성이 높은 페이지 미리 적재

 

배치(placement)

  • 최초 적합(first fit) : 프로그램이나 데이터가 들어갈 수 있는 위치 중 처음 발견한 위치에 배치
    • 다른 배치 방법에 비해 빠름
    • 메모리 공간 활용도가 떨어질 수 있다.
  • 최적 적합(best fit) : 빈 공간을 확인한 이후, 적당한 크기 가운데 가장 작은 공간에 배치
    • 메모리 단편화가 적게 발생하지만, 탐색 비용이 많이 발생
  • 최악 배치(worst fit) : 빈 공간을 확인한 이후, 가장 큰 공간에 배치
    • best fit과 마찬가지로 전체 탐색이 필요
    • 최적 배치와 반대되는 접근 방법으로, 최적 배치는 남는 공간의 활용도가 적은 반면 최악 배치는 남는 공간에 다른 프로세스 및 다른 데이터를 배치할 수 있게된다.

 

교체(replacement)

  • ex) swapping, page-replacement

 

*swapping : 프로세스를 메모리에서 쫒아 내고, 필요할 때 다시 메모리로 가져오는 기법으로 부족한 메모리 공간으로 인해 사용하는 방법이다. 

이때 쫒겨난 프로세스가 보관되는 영역을 스왑 영역이라고 한다.

  • swap-out : 프로세스를 메모리에서 쫒아내 스왑 영역에 저장
  • swap-in : 스왑 영역에서 다시 메모리를 로드

 

*page-replacement - 페이지를 교체하는 방법

(가상 메모리 참고)

 

메모리 분할

  • 고정 분할 방식 : 메모리를 같은 크기로 분할
    • 장점 : 관리가 수월
    • 단점 : 할당된 영역 중 쓸모없는 공간이 발생할 수 있다. (내부 단편화)
    • ex) paging, buddy system
  • 가변 분할 방식 : 메모리를 필요 크기에 따라 분할
    • 장점 : 필요로하는 크기 만큼의 공간만 할당하면 된다.
    • 단점 : 관리가 어렵다. 외부 단편화가 발생할 수 있다.
    • ex) segmentation

 

메모리 할당

  • 연속 메모리 할당(contiguous memory allocation) : 연속된 메모리 공간에 할당하는 방법
    • ex) 배열
  • 비연속 메모리 할당(noncontiguouse memory allocation) : 여러 조각으로 나누어, 비연속적인 메모리 공간에 할당하는 방법
    • ex) 동적 메모리 할당(dynamic memory allocation)

 

가상 메모리(Virtual Memory)

가상 메모리란 실제 메모리 크기와 상관 없이 메모리를 이용할 수 있도록 가상의 메모리 주소를 사용하는 방법이다.

virtual memory

가상 메모리를 사용하면 다음과 같은 이점이 있다.

  • 실제 메모리 크기 보다 더 큰 공간을 사용할 수 있다. (외부 저장 장치 메모리 공간 사용)
  • 가상의 주소 공간을 사용하여 논리적인 연속성을 제공해준다.
  • 물리 메모리 주소 공간을 알 필요가 없어진다.

 

가상 메모리의 가장 대표적인 기법으로 세그멘테이션(segmentation)페이징(paging)기법이 있는데, 이 내용에 대해서는 가상 메모리편에서 다룰 예정이다.

 

운영체제는 기본적으로 가상 메모리 시스템으로 운영되기 때문에 이러한 가상 메모리 시스템을 이해할 필요가 있다.

728x90
반응형