운영체제
[운영체제] 메모리 단편화(Memory Fragmentation)
Hyun-danpung2
2023. 5. 15. 21:43
728x90
반응형
서론
메모리 누수와 관련된 이야기를 하다가 메모리 단편화에 대한 조사가 필요해졌다.
본론
메모리 단편화(Memory Fragmentation)에는 외부 단편화(External Fragmentation)과 내부 단편화(Internal Fragmetation)가 있다.
1. 외부 단편화(External Fragmentation)
- 총 메모리 공간은 만족하지만, 연속적이지 않아 새로운 메모리 할당이 불가능한 경우
- 해결법
- Compaction(압축): Execution time binding(실제 실행되는 시점)에서만 가능한 방법으로, 메모리가 할당되지 않은 조각 공간들을 하나의 큰 공간으로 변환하는 방법
- Paging 등의 비연속적인 할당을 통해 외부 단편화의 근본적인 문제를 해결하는 방법(내부 단편화는 발생할 수도 있음)
2. 내부 단편화(Internal Fragmentation)
- 메모리를 할당할 때 프로세스가 필요한 양보다 더 큰 메모리가 할당되어서 프로세스에서 사용하는 메모리 공간이 낭비되는 경우
- 예를 들어 page size = 4kB, 프로세스가 필요한 메모리가 9kB인데 3개의 페이지가 할당되었을 경우 12kB가 할당되었으므로 내부 단편화
- 해결법
- Segmentation: 프로세스를 서로 크기가 다른 세그먼트로 분할하여 메모리에 할당. Paging과 유사하지만 Page에서는 고정 크기를 갖는 것에 비해 Segmentation은 크기가 가변적임. 내부 단편화는 해결할 수 있지만, 외부 단편화는 발생할 수도 있음
결론
메모리 관리는 잘하자
728x90
반응형