추천, 2024

에디터의 선택

내부 및 외부 조각화의 차이점

프로세스가 물리적 메모리 블록에서로드되거나 제거 될 때마다 조각이라고하는 메모리 공간에 작은 구멍이 생깁니다. 단편화로 인해 요청 된 메모리 양을 갖지만 인접하지 않은 방식으로 연속 메모리 공간을 프로세스에 할당하는 데 실패합니다. 조각화는 내부 및 외부 조각화라는 두 가지 범주로 분류됩니다.

내부 및 외부 분류는 모두 시스템의 데이터 액세스 속도에 영향을 미칩니다. 그들은 고정 크기의 메모리 블록이 프로세스의 크기에 관계없이 프로세스에 할당 될 때 내부 조각화 가 발생하고 프로세스에 메모리가 동적으로 할당 될 때 외부 조각화 가 발생합니다. 아래에 나와있는 비교 차트의 도움으로 더 나아가서 차이점, 이유, 내부 및 외부 분열의 해결책을 논의합시다.

비교 차트

비교의 근거내부 단편화외부 단편화
기본이는 고정 된 크기의 메모리 블록이 프로세스에 할당 될 때 발생합니다.가변 크기 메모리 공간이 프로세스에 동적으로 할당 될 때 발생합니다.
발생프로세스에 할당 된 메모리가 프로세스에서 요청한 메모리보다 약간 큰 경우 할당 된 블록에 여유 공간이 생겨 내부 조각화가 발생합니다.프로세스가 메모리에서 제거되면 메모리에 여유 공간이 생겨 외부 조각화가 발생합니다.
해결책메모리는 가변 크기 블록으로 분할되어야하며 프로세스에 가장 적합한 블록을 할당해야합니다.압축, 페이징 및 분할.

내부 단편화의 정의

내부 단편화는 메모리가 고정 크기 블록 으로 분할 될 때 발생합니다. 메모리에 대한 프로세스 요청이있을 때마다 고정 크기 블록이 프로세스에 할당됩니다. 프로세스에 할당 된 메모리가 요청 된 메모리보다 다소 큰 경우, 할당 된 메모리와 요청 된 메모리의 차이는 내부 단편화 입니다.

고정 크기 블록 안의이 남은 공간은 프로세스가 메모리 요청을 만족시키기에 충분하지 않기 때문에 어떤 프로세스에도 할당 할 수 없습니다. 예제를 통해 내부 조각화를 이해합시다. 메모리 공간은 18, 464 바이트의 고정 크기 블록으로 분할됩니다. 18, 460 바이트에 대한 프로세스 요청과 18, 464 바이트의 분할 된 고정 크기 블록이 프로세스에 할당됩니다. 결과적으로 내부 조각화 인 18, 464 바이트의 4 바이트가 비어있게됩니다.

내부 단편화로 인해 생성 된 내부 구멍을 추적하는 오버 헤드는 내부 구멍의 수보다 실질적으로 많습니다. 내부 단편화 문제는 메모리를 가변 크기 블록으로 분할 하고 최적 크기 블록을 메모리를 요청하는 프로세스에 할당함으로써 해결할 수 있습니다. 그러나 내부 분열 문제를 완전히 제거하지는 못하지만 어느 정도는 줄일 수 있습니다.

외부 단편화의 정의

외부 단편화는 프로세스의 메모리 요청을 충족시키기에 충분한 공간이 메모리에있을 때 발생합니다. 그러나 사용 가능한 메모리가 인접하지 않은 방식이므로 프로세스의 메모리 요청을 만족시킬 수 없습니다. 첫 번째 적합 또는 최적 맞춤 메모리 할당 전략을 적용하면 외부 조각화가 발생합니다.

프로세스가 메모리에서로드되고 제거 될 때 여유 공간은 메모리 공간에 구멍을 생성하며 메모리 공간에 많은 구멍이 있습니다. 이것은 외부 조각이라고합니다. 첫 번째 적합도 및 최적 적합이 외부 조각화의 양에 영향을 줄 수 있지만 완전히 제거 할 수는 없습니다. 압축 은 외부 단편화를위한 솔루션 일 수 있습니다.

압축 알고리즘은 모든 메모리 내용을 한쪽으로 셔플하고 하나의 큰 메모리 블록을 해제합니다. 그러나 압축 알고리즘은 비용이 많이 든다. 프로세스가 불연속 방식으로 물리적 메모리를 확보 할 수 있도록하는 외부 조각화 문제를 해결할 수있는 대체 솔루션이 있습니다. 이 솔루션을 구현하는 기술은 페이징 및 분할입니다.

내부 및 외부 조각화의 주요 차이점

  1. 내부 및 외부 조각화가 발생하는 근본적인 이유는 메모리가 고정 크기 블록 으로 분할 될 때 내부 조각화가 발생하는 반면 메모리가 가변 크기 블록 으로 분할 될 때 외부 조각화가 발생한다는 것입니다.
  2. 프로세스에 할당 된 메모리 블록이 요청 된 메모리보다 약간 커지면 할당 된 메모리 블록에 남아있는 여유 공간으로 인해 내부 조각화가 발생합니다. 반면에 프로세스가 메모리에서 제거되면 메모리에 구멍이 생겨 여유 공간이 생겨 외부 조각화라고 불립니다.
  3. 내부 단편화 문제는 메모리를 가변 크기 블록으로 분할하고 요청 프로세스에 가장 적합한 블록을 할당하여 해결할 수 있습니다. 그러나 외부 단편화를위한 솔루션은 압축이지만 구현하기에 비용이 많이 들기 때문에 프로세스가 물리적 메모리를 비 연속적으로 획득하도록 허용해야합니다. 이렇게하려면 페이징 및 분할 기법을 도입해야합니다.

결론:

내부 단편화 문제는 줄일 수는 있지만 완전히 제거 할 수는 없습니다. 페이징 및 세그먼테이션은 프로세스가 비 연속적으로 메모리를 차지할 수있게함으로써 외부 분열로 인해 해제 된 공간을 활용하는 데 도움이됩니다.

Top