2017년 5월 10일 수요일

14. 메모리 관리1


1) 연속메모리 할당(Contiguous Memory Allocation)


  * 하나의 프로세스는 연속된 메모리 공간에 할당을 받게 된다.
  * 부팅직후에는 메모리홀이 매우 크지만 시간이 지날 수록 프로세스의 생성과 소멸이 반복되면서 불연속적으로 단편화된 작은 홀들이 흩어 지게 된다.
   위 그림의 마지막에서 3칸을 차지하는 Process는 메모리에 진입할 수 없게 된다.

  * 외부 단편화(External Fragmentation)
    : 빈 메모리 공간이 있지만 이 공간이 여러개의 불연속적인 작은 공간으로 나뉘어져 있어서 프로세스를 할당할 수 없는 상태일 때 이 조각난 공간들에 대한 현상을 외부 단편화라고 한다. 외부 단편화는 심한 메모리 낭비의 원인이 된다.


 * 메모리 할당 방식
  : 메모리를 프로세스에게 어떻게 할당하는 것이 바람직한가?에 대한 문제.

  (1) First-fit (최초 적합)
     : 최초로 할당받을 수 있는 크기의 공간에 무조건 할당된다.(위 또는 아래 부터)


  (2) Best-fit (최적 적합)
     : 크기가 가장 근접한 공간에 할당된다.


  (3) Worst-fit (최악 적합)
      : 크기가 가장 많이 차이가 나는 공간에 할당된다.

  * 속도면에서는 "best-fit"이 최고이다.
  * 이용률 면에서는 "first-fit"과 "best-fit"이 좋은 편이고 "worst-fit"은 좋지 못함. 
  * 어떤 경우이든 외부 단편화는 존재하기 마련이다.

 * 압축(Compaction)
  : 외부 단편화의 해결방안으로 흩어져 있는 홀들을 하나의 커다란 홀로 통합하여 사용한다.
  : 문제는 어떤 방식으로 압축을 할 것인가가 큰 문제가 된다. 상대적으로 커다란 프로세스를 이동하여 압축을 하게 된다면 압축을 위한 비용이 많이 들어 비효율적이게 된다.

댓글 없음:

댓글 쓰기