검색 여닫기
검색
메뉴 여닫기
515
223
4
2천
noriwiki
둘러보기
대문
최근 바뀜
임의의 문서로
미디어위키 도움말
특수 문서 목록
파일 올리기
환경 설정 메뉴 여닫기
notifications
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
user-interface-preferences
한국어
개인 도구
로그인
Extended page table 문서 원본 보기
noriwiki
문서 공유하기
다른 명령
←
Extended page table
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다:
사용자
.
문서의 원본을 보거나 복사할 수 있습니다.
[[분류: 가상화]] == 개요 == 가상머신에서 돌리는 운영체제는 그 자체의 메모리 요구를 하게 된다. 예를 들어서 가상머신의 가상 프로세스가 프로세서에게 특정 [[Virtual Address]]를 통하여 어떤 위치에 있는 정보를 읽어오고 싶다고 하면, 가상머신은 그 명령을 가로채서 적절한 호스트 운영체제의 가상 주소로 변환하여야 한다. 즉 가상머신은 가상의 MMU를 에물레이트 하여야 하는 것이다 (Shadow Paging). 하지만 이러한 가상 머신의 메모리 주소 변환에 따른 메모리 접근의 가상화는 모든 가상머신의 OS 커널이 요구하는 모든 가상 주소 변환에 대한 요청에 대해서 처리되어야 하기 때문에 (CR3 레지스터 접근, Exception, MMU를 통한 VA-PA 변환) 호스트 운영체제에 큰 부담을 주게 된다. 이러한 요구를 하드웨어적으로 지원하기 위한 방식이 바로 [[Intel]]의 EPT이다. == 구조 == 비가상화 환경에서 물리 주소와 가상 주소의 변환이 MMU를 통하여 두단계의 주소 체계를 가진다면, 가상화 환경에서는 : 가상 주소 -> 가상 물리 주소 -> 물리 주소 의 변환을 거쳐야 한다. 가상 머신에서 동작하는 게스트 운영체제는 가상화 환경에서 동작한다는 사실을 모른다. 따라서 가상 머신은 가상화되지 않은 환경에서 동작할 때와 마찬가지로 가상 주소와 물리 주소를 그대로 사용한다. 하지만 가상 머신이 아는 물리 주소는 실제 주소가 아니기 때문에 하이퍼바이저는 이를 실제 물리 주소로 변환하여야 한다. 이를 [[Shadow Paging]]이라고 한다. 이러한 가상 주소를 머신 주소를 바꾸는 기능의 오버헤드를 줄이기 위해서 AMD와 인털에서 개발한 기술이다. AMD는 중첩 페이지 테이블로 부르기도 하는데 하는 일은 거이 EPT와 같다. 중첩 페이지 테이블은 CPU가 내보내는 가상 주소를 게스트 운영체제가 구축한 페이지 테이블을 통해서 물리 주소로 변경하고, 변경한 물리 주소를 다시 하이퍼바이저가 구축한 중첩 페이지 테이블을 통해서 머신 주소로 변경하여 메모리에 접근한다. 이를 위하여 가상 머신의 논리 주소와 머신 주소를 연관하는 주소를 소프트웨어 적으로가 아닌 하드웨어 적으로 한번에 변환시켜주는 것을 일컷는다. CPU가 게스트 모드에 있으면 주소를 게스트 모드 주소에서 머신 주소로 변환하고 CPU가 호스트 모드면 주소를 호스트 모드 주소에서 머신 주소로 변환한다. 추가적으로 프로세서는 Nested TLB라는 캐시를 유지하여 게스트의 물리 주소를 시스템의 물리 주소로 변환하는 캐시를 유지하여 위와 같은 작업이 빠르게 일어날 수 있도록 하였다. == 참고 == 1. http://preview.hanbit.co.kr/2605/sample_ebook.pdf
Extended page table
문서로 돌아갑니다.