단편화( Fragmentation )이란?
- 단편화(Fragmentation)란 메모리 관리 과정에서 발생하는 메모리 낭비 현상을 말합니다. 단편화는 외부 단편화와 내부 단편화가 있습니다.
외부 단편화( External Fragmentation )이란?
- 외부 단편화는 연속 메모리 할당에 방식에서 할당 및 해제를 반복하여 발생되는 단편화입니다. 즉, 위 그림과 같이 현재 PROCESS D를 적재할 수 있는 가용 메모리 공간은 충분하지만 연속적이지 못하기 때문에 메인 메모리에 적재할 수 없는 상태를 말합니다.
연속 메모리 할당이란?
- 프로세스 실행에 필요한 연속적인 메모리 공간을 메인 메모리에 그대로 적재하는 것을 말합니다. 이러한 연속적인 메모리 할당으로 인해서 아직 사용하지 않은 메모리까지 할당하게 되며 외부 단편화( External Fragmentation )까지 발생시키기 때문에 매우 비효율적인 메모리 할당 방식입니다.
내부 단편화( Internal Fragmentation )이란?
- 페이징은 외부 단편화 문제를 해결할 수 있지만, 내부 단편화( Internal Fragmentation )라는 문제가 발생될 수 있습니다. 위 그림과 같이 실제로 필요한 메모리는 3KB이지만, 할당 단위가 4KB 페이지 단위이기 때문에 할당하면서 1KB의 내부 단편화가 발생됩니다. 이러한 단편화를 줄이기 위해서는 페이지 크기를 고려해야 하지만, 페이지 크기가 작을 수록 페이지 테이블 크기 그리고 페이지 스왑 현상이 빈번하게 발생될 수 있고, 페이지 크기가 너무 크다면은 위와 같이 내부 단편화의 크기가 커질 수 밖에 없기 때문에 적절한 페이지 크기를 사용해야 합니다.
'운영체제 > Common' 카테고리의 다른 글
유저모드( User Mode )와 커널모드( Kernel Mode )란? (0) | 2022.11.10 |
---|---|
가상 메모리( Virtual Memory )와 페이징( Paging )이란? (0) | 2022.11.09 |
CPU 스케줄링( CPU Scheduling )이란? (0) | 2022.11.07 |
명령어 사이클( Instruction Cycle ) 과 인터럽트( Interrupt )란? (0) | 2022.10.27 |
프로세스 ( Process ) 와 쓰레드 ( Thread ) 란? (0) | 2022.10.03 |