메모리 관리

메모리 관리(Memory Management)는 운영체제가 프로그램 실행을 위해 메모리를 효율적으로 배치하고 보호하는 기법입니다.
효과적인 메모리 관리는 시스템 성능과 안정성을 크게 좌우합니다.

메모리 관리 기법은 크게 연속 메모리 할당과 비연속 메모리 할당(가상 메모리)으로 나눌 수 있습니다.

연속 메모리 할당

연속 메모리 할당(Contiguous Memory Allocation)은 프로세스가 필요로 하는 메모리 공간을 연속된 블록에 할당하는 기법입니다.

할당은 최초 적합, 최적 적합, 최악 적합으로 분리됩니다.

  • 최초 적합(First Fit): 메모리에서 처음 맞는 블록을 선택
  • 최적 적합(Best Fit): 가장 작은 빈 블록 중 적합한 공간 선택
  • 최악 적합(Worst Fit): 가장 큰 빈 블록 선택

단순하고 구현이 쉽습니다.
CPU가 메모리에 빠른 속도로 접근할 수 있습니다.

물리 메모리보다 큰 메모리가 필요한 프로세스를 실행할 수 없습니다.

프로세스의 실행과 종료가 반복되며 메모리 사이에 빈 공간이 생기면서 외부 단편화(External Fragmentation) 문제가 발생할 수 있습니다.
외부 단편화는 메모리의 빈 공간은 충분하지만 연속된 공간을 가지지 않아 프로세스를 적재할 수 없는 현상을 의미합니다.

이를 해결하기 위해 메모리 압축이나 페이징, 세그멘테이션 등 비연속 메모리 기법을 사용할 수 있습니다.

비연속 메모리 할당

비연속 메모리 할당(Non-Contiguous Memory Allocation)은 프로세스가 필요로 하는 메모리 공간을 여러 개의 메모리 블록으로 나누어 할당하는 기법입니다.
연속 할당의 한계를 극복하기 위해 사용됩니다.

연속 메모리 할당에 비해 외부 단편화 문제를 크게 완화하고, 메모리 활용 효율이 증가됩니다.
하지만, 구현은 연속 할당보다 복잡합니다.

논리 주소(Logical Address)와 물리 주소(Physical Address)의 개념이 필요합니다.
논리 주소는 CPU가 참조하는 주소이며, 물리 주소는 실제 RAM에서 접근하는 주소입니다.

현대 운영체제에서는 가상 메모리릍 통해 페이징과 세그멘테이션이 구현되며, 스와핑과 스왑 영역 같은 기법이 함께 사용됩니다.

ComputerScience 카테고리 내 다른 글 보러가기

댓글남기기