본문 바로가기

Solution/면접

[개발자 면접] 참조의 지역성이란? 가상메모리란?

728x90

Q. 메모리 계층 구조의 목적과 참조의 지역성에 대해 설명해보세요.

cpu의 속도가 메모리의 속도를 다라가지 못해 계층적으로 구성했고, 캐시메모리를 사용한다.

참조의 지역성이란 코드나 데이터 등이 짧은시간내에 재사용되는 프로그램의 특성이다. 이를 통해 메모리 계층구조가 성공할 수 있었다.


Q. 가상메모리에 대해서 설명해보세요.

메인 메모리의 크기가 한정되어 있어 물리적인 메모리크기보다 큰 프로세스를 시행시킬수 없어 가상메모리를 사용한다.

 

프로세스에서 사용하는 메모리 주소와 실제 물리적 메모리 주소는 다를 수 있다.

메모리 부족해서 가상메모리를 사용하는 것은 맞지만, 가상메모리를 쓴다해서 실제 메모리처럼 사용하는 것은 아니다. 

실제 메모리 안의 공간이 부족하면 현재 사용하고 있지 않는 데이터를 빼내어 가상 메모리에 저장해두고, 실제 메모리에선 처리만 하게 하는 것이 가상메모리의 역할이다.

 

즉 실제 메모리에 늘고 있는 공간이 없게 계속 일을 시키는 것, 이를 도와주는 것이 가상메모리입니다.


Q. 요구 페이징 기법이란?

물리 메모리의 크기 한계를 극복하기 위한 페이징 기법이다.

프로세스의 페이지들을 물리 메모리와 하드디스크에 걸쳐 분산 할당하고, 현재 실행에 필요한 페이지만 물리메모리를 할당하고 나머지는 하드디스크에 둬 물리메모리를 많은 프로세스들이 사용할 수 있도록 하는 기법이다.  

 

# 가상 메모리는 요구페이징 기법을 통해 필요한 페이지만 메모리에 적재하고 사용하지 않는 부분은 그대로 둔다. 하지만 필요한 페이지만 올려도 메모리는 결국 가득 차게 되고, 올라와있던 페이지가 사용이 다 된 후에도 자리만 차지하고 있을 수 있다. 따라서 메모리가 가득 차면, 추가로 페이지를 가져오기 위해서 안쓰는 페이지는 out시키고, 해당 공간에 현재 필요한 페이지를 in 시켜여한다.

 

728x90