메모리는 어떻게 관리될까?

메모리 관리 전략

  1. 연속 메모리 할당: 프로그램 전체를 메모리의 연속된 영역에 할당한다. 초기의 간단한 운영체제에서 사용된 방식.
  2. 페이징(Paging): 프로그램을 고정된 크기의 블록, 즉 페이지로 나눈다. 페이징 테이블을 통해 관리한다.
  3. 세그멘테이션(Segmentation): 프로그램을 의미 있는 단위인 세그먼트로 나눈다. 세그먼트 테이블을 통해 관리한다.

메모리 관리 전략의 문제점

  1. 연속 할당 방식: 프로그램이 실행 중에 추가적인 메모리를 할당받기 어렵다.
  2. 불연속 할당 방식: 주로 테이블을 통해 가상 메모리에 사용된다. 테이블을 관리하기 위해 추가 자원이 필요하다.
  3. 고정 크기 할당 방식: 내부 단편화1가 발생한다.
  4. 가변 크기 할당 방식: 외부 단편화2가 발생한다.


1내부 단편화: 메모리를 고정된 크기로 나누어 할당할 때 발생한다. 할당된 메모리 블록에 사용되지 않고 낭비되는 영역이 생긴다.
2외부 단편화: 메모리를 동적으로 할당할 때 발생한다. 시간이 지나며 메모리의 여러 부분에 할당되지 않은 작은 공간들이 생긴다.