Trap and emulate

Ahn9807 (토론 | 기여)님의 2023년 3월 20일 (월) 10:13 판 (새 문서: 분류: 가상화 == 개요 == Trap and emulate란 가상화를 위해서 특정 sensitive한 instruction들이 trap을 발생하게 하고 발생한 trap을 바탕으로 VMM에서 Emulate한 결과를 전송하여 하드웨어 가상화를 이루는 방법을 말한다. 그러나 전통적인 x86 아키텍쳐에서는 여러 특별한 문제로 인하여 트랩앤 에뮬리이터를 사용할 수 없다. 이는 Popek and Goldberg 조건을 만족시키지 못...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)


개요

Trap and emulate란 가상화를 위해서 특정 sensitive한 instruction들이 trap을 발생하게 하고 발생한 trap을 바탕으로 VMM에서 Emulate한 결과를 전송하여 하드웨어 가상화를 이루는 방법을 말한다.

그러나 전통적인 x86 아키텍쳐에서는 여러 특별한 문제로 인하여 트랩앤 에뮬리이터를 사용할 수 없다. 이는 Popek and Goldberg 조건을 만족시키지 못하기 때문이다.

예를 들어서 EFLAGS register와 같은 경우를 살펴보자. EFLAGS 레지스터는 Interrupt enable처럼 sensitive한 작업들이 있는데, 이는 User level에서 바꿀려고 하면 Trap을 일으키지 않는다. 그렇기 때문에 Trap and emulate로만 구현할 수가 없다. 이런것을 구현하기 위해서 Binary translation이 필요하다.