본문 바로가기
운영체제

[운영체제] 메모리 단편화의 종류와 원인

728x90
반응형

 

🎲 메모리 단편화란?

    컴퓨터에서 프로그램을 실행하면 일정량의 메모리를 할당 해주고 코드 영역, 데이터 영역, 스택 영역, 힙 영역으로 나누어 사용하게 됩니다. 이 때, 코드 영역과 데이터 영역은 실행 이후 변하지 않지만 스택과 힙에서는 메모리 할당 해제가 빈번하게 일어납니다. 일반적으로는 높은 주소부터 순차적으로 할당을 해주지만, 앞선 메모리가 먼저 할당 해제될 경우 할당된 메모리들 사이에 빈칸이 생기게 되는데 이 빈칸의 크기에 따라 새로 할당을 해줄 수 없는 상황이 오기도 합니다. 이를 바로 메모리 단편화라고 합니다.

 

🍳 내부 단편화

    프로그램에서 요구하는 메모리보다 더 많은 메모리를 할당해 주어 메모리가 낭비되는 현상을 내부 단편화라고 합니다. 페이징 기법을 사용할 때 Frame(논리적 메모리 단위)단위로 메모리를 넘겨주게 되는데 이때 프레임이 128byte라고 가정할 때 프로그램이 200btye를 요구하게 되면 2개의 프레임에 해당하는 256byte를 넘겨줄 수 밖에 없고 56byte가 낭비되게 됩니다.

 

 

🍳 외부 단편화

    메모리는 1차원 배열처럼 연속적으로 존재합니다. 이때, 메모리 할당을 받으면 순서대로 크기에 맞게 할당을 해주게 되는데 할당순서와 할당해제 순서는 다르기 때문에 프로그램이 진행됨에 따라 메모리 중간중간에 빈공간이 생성되게 됩니다. 이렇게 되면 총합적으로는 메모리가 여유가 있더라도 메모리를 할당해주지 못하는 상황이 발생하게 되는데 이를 외부 단편화라고 합니다. 

 

 

 

🍳 해결 방법

 

[운영체제] 페이징 기법의 원리

🎲 페이징 기법이란? 페이징 기법은 외부 단편화로 인해 발생하는 메모리 낭비를 줄이고자 고안된 기법입니다. 기본의 메모리 사용 방식에서는 하나의 객체를 저장하기 위해서는 물리적인 메

wisdom-coding.tistory.com

 

 

[운영체제] 세그멘테이션 기법의 원리

🎲 세그멘테이션 기법이란? 세그멘테이션 기법은 메모리 단편화 문제를 해결하기 위한 기법중 하나로, 세그멘테이션이라는 논리 메모리 단위를 통해 메모리를 할당하여 주는 방식입니다. 페이

wisdom-coding.tistory.com

 

반응형