운영체제

[운영체제] 메모리 단편화(Memory Fragmentation)

Hyun-danpung2 2023. 5. 15. 21:43
728x90
반응형

서론

메모리 누수와 관련된 이야기를 하다가 메모리 단편화에 대한 조사가 필요해졌다.

 

본론

메모리 단편화(Memory Fragmentation)에는 외부 단편화(External Fragmentation)과 내부 단편화(Internal Fragmetation)가 있다.

 

1. 외부 단편화(External Fragmentation)

- 총 메모리 공간은 만족하지만, 연속적이지 않아 새로운 메모리 할당이 불가능한 경우

- 해결법

  1. Compaction(압축): Execution time binding(실제 실행되는 시점)에서만 가능한 방법으로, 메모리가 할당되지 않은 조각 공간들을 하나의 큰 공간으로 변환하는 방법
  2. Paging 등의 비연속적인 할당을 통해 외부 단편화의 근본적인 문제를 해결하는 방법(내부 단편화는 발생할 수도 있음)

2. 내부 단편화(Internal Fragmentation)

- 메모리를 할당할 때 프로세스가 필요한 양보다 더 큰 메모리가 할당되어서 프로세스에서 사용하는 메모리 공간이 낭비되는 경우

- 예를 들어 page size = 4kB, 프로세스가 필요한 메모리가 9kB인데 3개의 페이지가 할당되었을 경우 12kB가 할당되었으므로 내부 단편화

- 해결법

  1. Segmentation: 프로세스를 서로 크기가 다른 세그먼트로 분할하여 메모리에 할당. Paging과 유사하지만 Page에서는 고정 크기를 갖는 것에 비해 Segmentation은 크기가 가변적임. 내부 단편화는 해결할 수 있지만, 외부 단편화는 발생할 수도 있음

 

결론

메모리 관리는 잘하자

 

728x90
반응형