<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ko">
	<id>http://junhoahn.kr/noriwiki/index.php?action=history&amp;feed=atom&amp;title=Popek_and_Goldberg_%EC%A1%B0%EA%B1%B4</id>
	<title>Popek and Goldberg 조건 - 편집 역사</title>
	<link rel="self" type="application/atom+xml" href="http://junhoahn.kr/noriwiki/index.php?action=history&amp;feed=atom&amp;title=Popek_and_Goldberg_%EC%A1%B0%EA%B1%B4"/>
	<link rel="alternate" type="text/html" href="http://junhoahn.kr/noriwiki/index.php?title=Popek_and_Goldberg_%EC%A1%B0%EA%B1%B4&amp;action=history"/>
	<updated>2026-04-20T02:38:01Z</updated>
	<subtitle>이 문서의 편집 역사</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>http://junhoahn.kr/noriwiki/index.php?title=Popek_and_Goldberg_%EC%A1%B0%EA%B1%B4&amp;diff=937&amp;oldid=prev</id>
		<title>Ahn9807: /* 조건 2 - 가상화 정리 */</title>
		<link rel="alternate" type="text/html" href="http://junhoahn.kr/noriwiki/index.php?title=Popek_and_Goldberg_%EC%A1%B0%EA%B1%B4&amp;diff=937&amp;oldid=prev"/>
		<updated>2023-03-20T12:34:47Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;조건 2 - 가상화 정리&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ko&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 이전 판&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2023년 3월 20일 (월) 12:34 판&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l22&quot;&gt;22번째 줄:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;22번째 줄:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: 이는 효율적으로 VM을 만들기 위해서 [[Trap and emulate]]를 사용하여야 하며, 이를 위해서는 모든 sensitive instruction들이 Trap을 만들어야 한다는 것을 의미한다. 여기서 발생할 수 있는 문제는 Recurive virtualization의 상황에서, Trap이 guest 1인지 guest 1에서 돌아가는 guest 2의 것인지를 구분하는 능력이 있어야 한다는 것을 요구한다는 것이다. 이를 위해서 &amp;lt;정리 2&amp;gt;가 주어지게 되었다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: 이는 효율적으로 VM을 만들기 위해서 [[Trap and emulate]]를 사용하여야 하며, 이를 위해서는 모든 sensitive instruction들이 Trap을 만들어야 한다는 것을 의미한다. 여기서 발생할 수 있는 문제는 Recurive virtualization의 상황에서, Trap이 guest 1인지 guest 1에서 돌아가는 guest 2의 것인지를 구분하는 능력이 있어야 한다는 것을 요구한다는 것이다. 이를 위해서 &amp;lt;정리 2&amp;gt;가 주어지게 되었다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; 정리 2. Recursive virtualizable하기 위해서는 컴퓨터 시스템이 스스로 가상화 가능하여야 하며, 그 컴퓨터 시스템을 가상화 시킬 수 있는 VMM이 존재하여야 한다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; 정리 2. Recursive virtualizable하기 위해서는 컴퓨터 시스템이 스스로 가상화 가능하여야 하며, 그 컴퓨터 시스템을 가상화 시킬 수 있는 VMM이 존재하여야 한다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; 정리 3. hybrid VMM은 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;user &lt;/del&gt;sensitive instrutions들이 Privileged instructions들의 subset이어야 한다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; 정리 3. hybrid VMM은 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;User &lt;/ins&gt;sensitive instrutions들이 Privileged instructions들의 subset이어야 한다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;여기서 중요한 것은 정리 1이다. 정리 1은 현재에도 가상화를 설명하기 위해서 널리 사용되고 있다. 정리 1을 만족시키지 않는 명령어들을 위해서 다양한 방법들이 개발되어 왔다. 그중 하나가 [[Binary translation]]혹은 [[반가상화]]이다. 이러한 방식을 사용함으로서, 현재 가상화 시스템은 Classic virtualization보다 훨씬 효율적으로 작동하고 있다.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;여기서 중요한 것은 정리 1이다. 정리 1은 현재에도 가상화를 설명하기 위해서 널리 사용되고 있다. 정리 1을 만족시키지 않는 명령어들을 위해서 다양한 방법들이 개발되어 왔다. 그중 하나가 [[Binary translation]]혹은 [[반가상화]]이다. 이러한 방식을 사용함으로서, 현재 가상화 시스템은 Classic virtualization보다 훨씬 효율적으로 작동하고 있다.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Ahn9807</name></author>
	</entry>
	<entry>
		<id>http://junhoahn.kr/noriwiki/index.php?title=Popek_and_Goldberg_%EC%A1%B0%EA%B1%B4&amp;diff=936&amp;oldid=prev</id>
		<title>Ahn9807: 새 문서: 분류: 가상화  == 개요 == Popek and Goldberg virtualization requirements (conditions)는 가상화가 이루어지기 위한 조건들을 의미한다. 특히 조건 2 - 가상화 정리는 현재에도 좋은 VMM 완변한 VMM을 설명하기 위해서 널리 사용되고 있다.  == 조건 1 - 좋은 VMM 작동을 위한 조건 == VMM은 다음과 같은 세가지의 조건을 충족해야 좋은 VM이라고 할 수 있다. * Equivalence / Fidelity: VMM은 같은...</title>
		<link rel="alternate" type="text/html" href="http://junhoahn.kr/noriwiki/index.php?title=Popek_and_Goldberg_%EC%A1%B0%EA%B1%B4&amp;diff=936&amp;oldid=prev"/>
		<updated>2023-03-20T12:34:27Z</updated>

		<summary type="html">&lt;p&gt;새 문서: &lt;a href=&quot;/noriwiki/index.php?title=%EB%B6%84%EB%A5%98:%EA%B0%80%EC%83%81%ED%99%94&quot; title=&quot;분류:가상화&quot;&gt;분류: 가상화&lt;/a&gt;  == 개요 == Popek and Goldberg virtualization requirements (conditions)는 가상화가 이루어지기 위한 조건들을 의미한다. 특히 조건 2 - 가상화 정리는 현재에도 좋은 VMM 완변한 VMM을 설명하기 위해서 널리 사용되고 있다.  == 조건 1 - 좋은 VMM 작동을 위한 조건 == &lt;a href=&quot;/noriwiki/index.php?title=VMM&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;VMM (없는 문서)&quot;&gt;VMM&lt;/a&gt;은 다음과 같은 세가지의 조건을 충족해야 좋은 VM이라고 할 수 있다. * Equivalence / Fidelity: VMM은 같은...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;새 문서&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[분류: 가상화]]&lt;br /&gt;
&lt;br /&gt;
== 개요 ==&lt;br /&gt;
Popek and Goldberg virtualization requirements (conditions)는 가상화가 이루어지기 위한 조건들을 의미한다. 특히 조건 2 - 가상화 정리는 현재에도 좋은 VMM 완변한 VMM을 설명하기 위해서 널리 사용되고 있다.&lt;br /&gt;
&lt;br /&gt;
== 조건 1 - 좋은 VMM 작동을 위한 조건 ==&lt;br /&gt;
[[VMM]]은 다음과 같은 세가지의 조건을 충족해야 좋은 VM이라고 할 수 있다.&lt;br /&gt;
* Equivalence / Fidelity: VMM은 같은 Machine instruction을 수행하면 게스트에서도 호스트와 같은 동작을 보여야 한다.&lt;br /&gt;
* Resource control / Safety: VMM은 리소스 관리를 안전하게 그리고 최종적인 권한을 가지고 수행해야 한다.&lt;br /&gt;
* Efficieny / Performance: 호스트에서 수행하는것과 비슷한 성능이 나와야 한다. 이를 위해서 VMM의 개입없이 최대한 많은 부분이 Host에서 실행되어야 한다.&lt;br /&gt;
&lt;br /&gt;
Pepek and Goldberg에 따르면 VMM은 반드시 위의 세 조건을 만족시켜야 한다고 한다. 효율적인 VMM을 위해선 위의 세가지를 지켜주어야 한다. &lt;br /&gt;
&lt;br /&gt;
== 조건 2 - 가상화 정리 ==&lt;br /&gt;
우선 정리에 앞어서, 다음과 같은 Instruction set에 대한 분류가 필요하다.&lt;br /&gt;
* Privileged Instructions: User모드에서 실행하면 TRAP이 나는 경우를 명령어를 말한다.&lt;br /&gt;
* Control sensitive instructions: System의 환경을 바꾸는 명령어를 말한다.&lt;br /&gt;
* Behavior sensitive instructions: System의 환경에 영향을 받는 명령어를 말한다. &lt;br /&gt;
&lt;br /&gt;
Popek and Goldberg조건은 다음과 같은 조건을 만족시키는 경우를 말한다.&lt;br /&gt;
; 정리 1. Sensitive instructions은 Privileged instructions이어야 한다.&lt;br /&gt;
: 이는 효율적으로 VM을 만들기 위해서 [[Trap and emulate]]를 사용하여야 하며, 이를 위해서는 모든 sensitive instruction들이 Trap을 만들어야 한다는 것을 의미한다. 여기서 발생할 수 있는 문제는 Recurive virtualization의 상황에서, Trap이 guest 1인지 guest 1에서 돌아가는 guest 2의 것인지를 구분하는 능력이 있어야 한다는 것을 요구한다는 것이다. 이를 위해서 &amp;lt;정리 2&amp;gt;가 주어지게 되었다.&lt;br /&gt;
; 정리 2. Recursive virtualizable하기 위해서는 컴퓨터 시스템이 스스로 가상화 가능하여야 하며, 그 컴퓨터 시스템을 가상화 시킬 수 있는 VMM이 존재하여야 한다.&lt;br /&gt;
; 정리 3. hybrid VMM은 user sensitive instrutions들이 Privileged instructions들의 subset이어야 한다.&lt;br /&gt;
&lt;br /&gt;
여기서 중요한 것은 정리 1이다. 정리 1은 현재에도 가상화를 설명하기 위해서 널리 사용되고 있다. 정리 1을 만족시키지 않는 명령어들을 위해서 다양한 방법들이 개발되어 왔다. 그중 하나가 [[Binary translation]]혹은 [[반가상화]]이다. 이러한 방식을 사용함으로서, 현재 가상화 시스템은 Classic virtualization보다 훨씬 효율적으로 작동하고 있다. &lt;br /&gt;
&lt;br /&gt;
== 참고 ==&lt;br /&gt;
# https://en.wikipedia.org/wiki/Popek_and_Goldberg_virtualization_requirements#cite_note-1&lt;/div&gt;</summary>
		<author><name>Ahn9807</name></author>
	</entry>
</feed>