IT 지식

[운영체제] 외부단편화와 내부단편화, 가변분할방식과 고정분할방식

히똔 2021. 6. 4. 19:49
728x90
반응형

일단, 단편화가 무엇일까?
단편화를 영어로 fragmentation, 즉 조각 모음이라는 의미를 갖고있다.

운영체제에서의 단편화는 메모리 상 비어있는 공간을 의미한다.
이 공간을 계속해서 재사용 할 수 있지만, 단편화 조각이 실행될 프로세스 크기보다 작으면 프로그램이 적재되지 못해서 메모리 배정을 받지 못한다.

외부단편화와 내부단편화를 이해하기 위해선 먼저, 메모리의 가변분할방식과 고정분할방식에 대해 알아야한다.

외부단편화

프로세스 A~E가 가변 분할 방식으로 메모리가 할당되어 있을때, 왼쪽과 같은 상태가 된다.
가변 분할 방식은 프로세스를 한덩어리로 처리하여 하나의 프로세스를 연속된 공간에 배치하는 메모리 분할 방식이다.
그러므로 메모리 영역이 각각 다르다.

프로세스 B와 D의 실행이 완료되면 오른쪽 그림과 같이 그 프로세스의 크기만큼 빈 공간이 생기게 된다.
이것을 외부단편화라고 한다. 

이때의 총 비어있는 메모리의 크기는 34KB(16+18)이지만, 이 상태에선 18KB 이상의 프로세스는 적재될수 없다.
적재하고자 한다면, 비어있는 공간을 하나로 합쳐야한다. 그러기 위해서 C와 E의 자리를 옮겨야한다.
하지만 이 과정이 복잡하기 때문에 메모리 관리가 비교적 어렵다.

 

내부단편화

 

같은 프로세스가 20KB 고정 분할 방식으로 메모리가 할당되어있을때 위 그림과 같다.
고정 분할 방식은 메모리를 일정한 크기로 나누어 관리하기 때문에 프로세스 크기에 상관없이 메모리가 같은 크기로 나뉜다.
그러므로 프로세스 C 같은 큰 프로세스가 메모리에 올라오면 여러조각으로 나누어 배치할 수 있다.
가변 분할 방식과 달리 비연속적 메모리 할당도 가능하다.

프로세스 B, C3, D가 할당된 메모리 공간을 보면 작은 메모리 조각이 할당되지 않고 남아 있다.
이것을 내부단편화라고 한다.

이 방식의 장점은 항상 일정한 크기만큼 메모리 공간이 비어있기 때문에 비교적 메모리 관리가 수월하다는 점이다.
또한 비연속적 메모리 할당이 가능하기 때문에 큰 메모리가 적재된다고 하더라도 어렵지 않게 실행될 수 있다.

하지만 비워두는 공간으로 인해 메모리 낭비가 발생할 수 있다는 단점이 있다.

728x90
반응형