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)
: 외부 단편화의 해결방안으로 흩어져 있는 홀들을 하나의 커다란 홀로 통합하여 사용한다.
: 문제는 어떤 방식으로 압축을 할 것인가가 큰 문제가 된다. 상대적으로 커다란 프로세스를 이동하여 압축을 하게 된다면 압축을 위한 비용이 많이 들어 비효율적이게 된다.
댓글 없음:
댓글 쓰기