정의
메모리 리소스를 효율적으로 할당하고, 사용하고, 제거하는 과정을 말한다.
OS, HW, SW가 Memory를 어떻게 관리하느냐에 따라 시스템 성능과 안정성이 크게 좌우된다.
- 효율적인 메모리 할당: 프로세스와 프로그램에 필요한 메모리를 적절하게 할당하고, 비효율적인 메모리 사용을 방지한다.
- 메모리 보호: 한 프로세스가 다른 프로세스의 메모리에 접근하지 못하도록 보호하는 역할을 한다.
- 가상 메모리 지원: 실제 메모리보다 더 많은 메모리 공간을 사용하는 프로그램을 실행할 수 있도록 가상 메모리를 지원한다.
- 메모리 회수: 프로세스가 종료되거나 더 이상 사용하지 않는 메모리를 해제하여, 다른 프로세스가 사용할 수 있도록 한다.
Virtual Memory & Physical Memory
Memory를 프로세스(프로그램)에 할당하는 방식은 크게 두가지가 있다.
- Physical Memory : 말 그대로 실제로 설치된 Memory의 크기를 말한다.
- Virtual Memory : OS가 프로세스에 제공하는 가상 Memory 공간으로, Physical Memory보다 더 큰 공간을 사용할 수 있도록 한다. Linux의 swap이 Virtual Memory의 일종이라고 할 수 있다.
Paging
페이징은 Virtual Memory를 작은 Static Size의 블록(page)으로 나누어 Physical Memory의 프레임에 Provisioning 하는 방식이다.
페이징을 통해 Physical Memory와 Virtual Memory 사이의 매핑을 관리하며, 이로 인해 프로세스(프로그램)이 연속된 Memory Space를 요구하지 않아도 된다.
Segmentation