Virtual Memory(가상 메모리)
가상 메모리는 메모리가 실제 메모리보다 큰 프로세스를 실행할 수 있게 하는 기술로, 어떤 프로세스가 실행될 때 메모리에 해당 프로세스 전체가 올라가지 않더라도 실행 가능하는 점에 착안하여 고안된 기술이다.
페이징
공간을 일정한 단위로 자르는 가상 메모리 관리 기법으로, 공간을 두 가지 단위로 나누어 관리한다.
프로세스의 논리 주소 공간:
페이지
라는 일정한 단위로 나누어 관리메모리 물리 주소 공간:
프레임
이라는 페이지와 동일한 크기의 일정한 단위로 나누어 관리
일정한 단위로 자른 뒤 페이지
를 프레임
에 할당하게 되는데, 페이지 번호와 프레임 번호를 짝지어 물리 주소를 찾아갈 수 있게 된다.
스와핑
페이징 기법에서도 스와핑을 사용하여 프로세스를 페이지 아웃
, 페이지 인
하는데, 아래와 같은 특징을 가진다.
스왑은 프로세스 전체가 아닌 페이지 단위로 이루어짐
실제 메모리에는 프로세스 중 실행에 필요한 일부 페이지만 적재
당장 필요하지 않은 페이지들은 보조기억장치에 저장하여 메모리보다 큰 프로세스를 실행 가능하게 함
페이지 테이블
프로세스가 메모리에 불연속적으로 배치되어 있으면 CPU에선 이를 순차적으로 실행할 수 없어, 페이지 테이블이라는 테이블을 통해 물리 주소를 찾아가게 된다. 페이지 테이블은 페이지 번호와 프레임 번호를 짝지어 주는 테이블로, 페이지 번호를 통해 프레임 번호를 찾아가 프로세스를 실행할 수 있게 한다.
내부 단편화(internal fragmentation)
페이징은 메모리 연속 할당과 반대로 내부 단편화 문제가 발생할 수 있다. 페이지 크기가 10KB이고 프로세스 크기가 32KB인 경우, 32KB 프로세스를 위해 40KB의 메모리가 필요하게 되는데, 이때 8KB가 내부 단편화가 된다.
페이지 폴트(page fault)
페이지 폴트는 어떤 페이지에 접근하려 했을 때 해당 페이지가 실제 물리 메모리에 부재할 때 발생하는 인터럽트로, 해당 문제가 발생하면 운영체제가 데이터를 메모리에 가져와서 다음 동작을 이어갈 수 있게 한다.
참고자료
Last updated
Was this helpful?