본문 바로가기

VM

(2)
Pintos Project3: Virtual Memory 지금까지 만든 pintos project는 몇가지 한계가 있었다. 먼저 swap을 진행 할 수 없고 demand paging이 사용 불가 했고 가상 메모리가 구현 되지 않았다. 이번 프로젝트에는 이런 점들을 보완할 것이다. 그 전에 먼저 Supplemental page table을 정리하고 넘어가야 한다. 우리가 기존에 아는 페이지 테이블에 좀 더 보충해주는 역할을 하는 테이블이다. 각 페이지에 대한 추가 데이터로 페이지를 보완한다. 여기서는 페이지 테이블과 같게 봐도 될 것 같다. 페이지 폴트가 났을때 추가 되어야 할 데이터를 알 수 있고, 프로세스가 종료 되었을때 해제 되어야할 자원을 알 수 있게 해준다. 우리 프로젝트에서는 hash 를 사용해서 페이지들을 관리 한다. supplemental_page..
Virtual Memory 주소 변환의 원리 cpu와 마찬가지로 memory에서도 가상화 비슷한 전략을 추구한다. 제어와 효율성을 추구함. 프로그램을 다른 프로그램으로부터 보호하고 운영체제를 프로그램으로부터 보호하려면 하드웨어 도움이 필요함. 밑의 핵심문제를 보자 여기서 다루는 기법은 하드웨어-기반 주소 변환인데 짧게 주소 변환이라고도 한다. 가상 주소를 물리 주소로 변환하는 것. 주소 변환은 하드웨어가 하지만 하드웨어를 셋업 하기 위해 운영체제가 관여해야 함. 메모리의 빈 공간 사용 공간 등 알고 있어야 함. 먼저 가장 간단한 가정부터 시작함 사용자의 주소 공간이 물리 메모리에 연속적으로 배치되어야 한다고 가정. 또한 주소 공간은 물리 메모리 크기보다 작고, 주소 공간의 크기가 같다고 가정. 예시를 보면 프로그램 관점에서 0부터..