메모리 단편화 (Memory Fragmentation)

lsjoon·2024년 2월 16일
0

CS & PROGRAMMING

목록 보기
7/15

메모리 단편화


사용 가능한 메모리 공간이 분산되어
프로세스가 필요한 메모리 공간을 할당받지 못하거나,
메모리 공간을 효율적으로 사용하지 못하는 상황

  • 시스템의 전체적인 메모리 사용 효율성을 저하
  • 메모리 할당 및 해제 알고리즘의 선택, 메모리 할당 정책 등에 영향
  • 메모리 관리 기법을 통해 해결 ( 가상 메모리, 메모리풀 )

외부 단편화

메모리 공간들이 작은 조각으로 나뉘어 프로세스가 요구하는 큰 메모리 블록을 할당받지 못하는 상황

  • 프로세스들이 메모리를 할당하고, 해제하는 과정에서 발생 가능

내부 단편화

할당된 메모리 블록의 실제 사용되지 않는 부분

  • 메모리 할당이 고정된 크기로 이루어지는 경우에 발생

메모리 단편화 해결방법


[ 페이징, 세그멘테이션, 메모리 풀 ] >> 자세히 보기

페이징

가상 메모리 사용, 외부 단편화 해결, 내부 단편화 존재

  • 가상 메모리를 같은 크기로 나눔 = Page
    주 기억장치를 같은 크기로 나눔 = Frame
  • 사용하지 않는 프레임을 페이지로 이동, 필요한 메모리 페이지 단위로 프레임에 옮김(Swapping)

세그멘테이션

가상 메모리 사용, 내부 단편화 해결, 외부 단편화 존재

  • 페이징 기법과 유사
  • 가상 메모리를 서로 다른 크기(Block)로 나눔 = Segment

메모리 풀

가상 메모리 사용, 단편화 문제 최소화
미리 고정된 크기의 메모리를 할당, 메모리 동적 할당을 가능하게 함

  • 메모리 풀은 이미 할당된 메모리 블록을 관리하기 때문에, 할당 및 해제가 빠름
  • 고정 크기의 메모리 블록을 사용하므로, 메모리 단편화가 발생할 가능성이 줄어듬
  • 동적 메모리 할당은 메모리 블록의 크기를 관리하기 위한 추가적인 메타 데이터를 유지해야 하지만,
    메모리 풀은 이미 고정 크기의 블록들을 관리하고 있어 메모리 할당 및 해제에 따른 오버헤드가 감소
profile
중요한 것은 꺾여도 그냥 하는 마음

0개의 댓글