메모리 관리 2

[OS] 다중 프로그램을 메모리에 할당하는 방법 (고정 분할, 가변 분할)

모든 프로세스는 서로 다른 메모리 사이즈( 4GB, 8GB, 16GB ...)를 가지는 PC에서 모두 동일하게 실행되어야 한다. 프로세스마다 크기가 다르기 때문에 메모리의 구역을 나누는 방식은 중요한 문제가 되는데, MMU(Memory Manage Unit)라고 불리는 메모리 관리자는 fetch(메모리로 가져옴), placement(배치), replacement(재배치)를 수행하여 메모리에서 운영체제와 다양한 프로세스의 구역을 나누어 작업공간을 확보한다. 다중 프로그래밍 환경에서 fetch 수행 시에 프로세스은 고정(page)/가변(segmentation) 사이즈로 분할되어진 메모리에 할당되어지고, 메모리에 더이상 새로운 프로세스를 할당할 공간이 부족할 경우에는 이전 프로세스를 스왑영역(Swap Area..

CS/OS 2021.11.14

[OS] 프로그램이 메모리 사이즈보다 크다면? - 메모리 오버레이 기법

다음과 같은 상황을 생각해보자. - 메모리의 용량이 작을 때 이보다 큰 사이즈의 프로그램을 실행시키려면 어떻게 해야할까? - 고정 분할방식으로 나뉜 메모리의 page 사이즈보다 프로그램의 사이즈가 크면 어떻게 해야할까? 메모리공간 < 프로그램사이즈인 위와 같은 상황에서는 프로그램을 쪼개어야 메모리에 할당할 수 있다. 이 때 프로그램의 명령어와 데이터들(instructions and data)을 Module로 나누어 먼저 실행되어야하는 모듈을 메모리에 우선적으로 할당하고, 다음 모듈을 실행하기 위해서는 이전의 모듈을 swap area로 옮겨 메모리를 관리하는 방식을 메모리 오버레이 기법이라고 한다. 1번의 예에서 메모리 오버레이 기법을 통해 메모리를 관리하는 방법을 자세히 살펴보면 다음과 같다. - 현재에..

CS/OS 2021.11.14