※ 전남대학교 박태준 교수님의 운영체제 강의를 듣고, 정리한 내용입니다.
운영체제에 의해 메모리 관리가 필요한 이유는 다음과 같습니다.
메모리는 공유 자원
메모리 보호
메모리 용량 한계 극복
메모리 효율성 증대
먼저, 메모리의 공간은 항상 부족합니다.
그리고 프로세스는 가능하면 많은 메모리를 사용하고 싶어 하기에, 이 부족한 메모리 공간을 잘 나눠서 써야합니다.
→ 메모리는 공유 자원
또 프로세스간 영역을 서로 침범하면 안됩니다.
→ 메모리 보호
프로세스는 가상 메모리를 사용합니다.
그 덕에 프로세스는 메모리 전체를 사용하고 있다고 생각합니다.
→ 메모리 용량 한계 극복
부족한 메모리 공간 안에서 가능한 많은 프로세스를 실행시켜야 합니다.
그러기 위해 운영체제는 프로세스당 최소한의 메모리를 할당해주어야 합니다.
→ 메모리 효율성 증대
메모리는 컴퓨터 시스템 여러 곳에 계층적으로 존재합니다.
이렇게 메모리를 계층화해서 사용하는 이유는, 병목현상을 해결하기 위함입니다.
자원을 조금이라도 더 빨리 처리하기 위해서
즉 CPU 의 메모리 엑세스 시간을 줄이기 위해서

이렇게 계층 구조가 가능한 이유는 참조의 지역성 때문입니다.
참조의 지역성이란 코드나 데이터, 자원 등이 아주 짧은 시간 내에 다시 사용되는 프로그램의 특성을 의미합니다.
CPU 는 작은 캐시 메모리에 로딩된 코드와 데이터로 한동안 실행
캐시를 채우는 시간의 손해보다 빠른 캐시를 이용하는 이득이 더 큼
시간 지역성 ( Loop ) , 공간 지역성 ( Array )
메모리 주소
CPU 의 비트
메모리 공간은 항상 부족합니다.
그리고 여러 프로세스간 이 부족한 공간을 나눠서 사용해야 합니다.
나눠서 씀과 동시에, 여러 프로세스간 침범이 안되게 하면서, 필요한 공간은 충분히 할당해줘야 하고, 가능한 많은 프로세스가 동작하도록 해주어야 합니다.
즉 메모리 관리의 이중성 때문에 메모리는 관리하기 어렵다고 볼 수 있습니다.
프로세스 : 가능한 많은 메모리를 쓰고 싶어함 ( 메모리 독점 )
OS / 관리자 : 가능한 메모리를 효율적으로 ( 적게 ) 주고 싶어함
적재 정책 ( Fetch Policy )
배치 정책 ( Placement Policy )
재배치 ( 교체 ) 정책 ( Replacement Policy )