컴퓨터가 메모리보다 큰 프로세스를 실행하는 방법을 설명하시오
가상 메모리를 활용하여 물리 메모리와 별도로 가상 주소 공간을 만들어, 프로세스가 가상 주소 공간에 접근할 수 있도록 한다.
가상메모리의 동작 방식
프로세스는 가상 주소 공간을 할당받는다.
프로세스가 가상 주소를 참조할 때, 운영체제는 해당 가상 주소를 물리 주소로 변환한다.
운영체제는 변환된 물리 주소를 사용하여 프로세스에 메모리를 제공한다.
요구 페이징으로 램에 올릴 때 가상 주소가 물리 메모리에 존재하지 않는 경우, 운영체제는 페이지 폴트를 발생시켜 페이지를 보조 기억장치에서 읽어와 물리메모리에 적재한다.
가상주소 물리주소 관리 기법
참고로 가상 메모리 구현을 위해서는 컴퓨터가 가상주소를 물리주소로 변화시키는 하드웨어인 MMU가 필요하다.
MMU (Memory Management Unit)
① MMU는 가상 주소를 물리 주소로 변환하고, 메모리를 보호하는 기능을 수행한다.
② MMU를 사용하게 되면, CPU는 각 물리 메모리에 접근하기 이전에 메모리 주소 변환 작업을 거친다.
③ MMU는 굉장히 빈번하게 작업을 처리해야 하기 때문에, 소프트웨어 코드만으로는 이 작업을 수행하기 벅차다. 그래서 메모리 관리 작업을 하는 특수한 하드웨어를 따로 컴퓨터에 설치해야 한다. (실제로는 작은 칩을 컴퓨터에 꽂아서 사용한다)
④ MMU가 메모리를 일일이 가상 주소에서 물리 주소로 변환하게 되면, 작업 부하가 높아질 수 있다. 그래서 MMU는 실제 물리 메모리 공간을 여러 페이지 단위로 나눠서, 각 페이지 단위로 데이터를 처리한다.
페이징
가상 주소를 페이지 번호와 오프셋으로 분리하고, 페이지 번호에 해당하는 페이지를 물리 메모리에서 찾는다. 오프셋은 페이지에서의 위치를 나타내며, 페이지가 물리 메모리에 존재하면, 해당 오프셋에 해당하는 메모리 위치를 물리 주소로 변환한다.
세그멘테이션
가상 주소를 세그먼트 번호와 오프셋으로 분리하고, 세그먼트 번호에 해당하는 세그먼트를 물리 메모리에서 찾는다. 오프셋은 세그먼트에서 위치를 나타내며, 세그먼트가 물리 메모리에 존재하면, 해당 오프셋에 해당하는 메모리 위치를 물리 주소로 변환한다.
가상메모리의 장점과 단점
장점
프로세스가 물리 메모리보다 큰 크기를 가질 수 있다.
메모리 낭비를 줄일 수 있다.
프로세스 간 메모리 보호를 제공할 수 있다.
단점
메모리 접근 속도가 느릴 수 있다.
페이지 교체로 인해 성능이 저하될 수 있다.
참고
Last updated