Virtualization Mechanism
์ ๋ฒ๊น์ง ๋ค๋ฃฌ CPU ๊ฐ์ํ์ ํต์ฌ์ Time Sharing์ด๋ค.
Time Sharing์ ์ฌ๋ฌ ๊ฐ์ ํ๋ก์ธ์ค๊ฐ CPU์ ์๊ฐ์ ๋๋์ด ์ฐ๋ ๊ธฐ๋ฒ์ ๋งํ๋ค.
๊ทธ๋ ๋ค๋ฉด ์ด๋ฌํ Time Sharing์ ์ค์ ๋ก ์ด๋ค ๋ฉ์ปค๋์ฆ์ผ๋ก ๊ตฌํํ ์ ์์๊น? ์ง๊ธ๋ถํฐ๋ ์ด๋ฅผ ์ด๋ป๊ฒ ๊ตฌํํ๋์ง ์ดํด๋ณธ๋ค.
Time Sharing ๊ตฌํ ์ด์๋ ๋ค์๊ณผ ๊ฐ๋ค.
- Performance : ๊ฐ์ํ ๊ตฌํ ์ Context Switching ๋ฑ์ ์ค๋ฒํค๋๋ฅผ ์ต์ํํด์ผ ํ๋ค.
- Control : ์ด์์ฒด์ ๊ฐ CPU์ ๋ํ ์ ์ด๊ถ์ ์ ์งํ๋ฉฐ ํ๋ก์ธ์ค๋ฅผ ํจ์จ์ ์ผ๋ก ๋์์ํฌ ์ ์์ด์ผ ํ๋ค.
Direct Execution
์ฐ์ ์ฑ๋ฅ ์ด์๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณธ๋ค.
ํ๋ก๊ทธ๋จ์ ํจ์จ์ ์ผ๋ก ์คํํ๋ ค๋ฉด CPU์์ ํ๋ก๊ทธ๋จ์ ๋ฐ๋ก ์คํํ๋ ๊ฒ์ด ์ข๋ค. ์ด๋ฅผ Direct Execution์ด๋ผ ํ๋ค.
Direct Execution์ ์คํ ํ๋ฆ
1-6
: OS๊ฐ CPU๋ฅผ ์ ์ ํ๊ณ , ํ๋ก๊ทธ๋จ ์คํ์ ์ํ ์ฌ์ ์์
์ ์ํํ๋ค.
7-8
: ํ๋ก๊ทธ๋จ์ main()
ํจ์๋ฅผ ์คํํ๋ค. return
๋ช
๋ น ํธ์ถ ์ ๊น์ง ํ๋ก๊ทธ๋จ์ด CPU๋ฅผ ์ ์ ํ๋ค.
9-10
: ํ๋ก๊ทธ๋จ์ ์คํ์ด ์ข
๋ฃ๋๊ณ , OS๊ฐ ๋ค์ CPU๋ฅผ ์ ์ ํ๋ค.
์ด๋ฌํ ์คํ ๋ฐฉ์์ OS๋ฅผ ๊ฑฐ์น์ง ์๋ CPU์์ ํ๋ก๊ทธ๋จ์ ๋ฐ๋ก ์คํํ ์ ์์ผ๋ฏ๋ก ์ฑ๋ฅ์ด ๋ฐ์ด๋๋ค. ํ์ง๋ง ์ฌ๊ธฐ์๋ 2๊ฐ์ง ๋ฌธ์ ์ ์ด ์กด์ฌํ๋ค.
Problem 1 : Restricted Operation
ํ๋ก๊ทธ๋จ์ด CPU์์ ์ง์ ์คํ๋๋ ๊ฒฝ์ฐ์๋, ๋ค์ ์์ ๋ค์ ์ด์์ฒด์ ๊ฐ ์ ์ ํ ์ ์ดํด ์ค ํ์๊ฐ ์๋ค.
- ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ ๋ฑ์ ์์ ์ถ๊ฐ ํ ๋น ์์ฒญ
- ๋ค๋ฅธ ํ๋ก์ธ์ค์ ๋ฐ์ดํฐ์ ๋ํ ์ ๊ทผ
- ์ ์ฅ ๊ณต๊ฐ์ ๋ํ I/O ์์ฒญ
ํ๋ ์ด์์ฒด์ ์์๋ ์ด๋ฌํ Restricted Operation ๋ค์ OS๊ฐ ์ค๊ฐ์์ ๊ด๋ฆฌํ ์ ์๋๋ก ์์คํ ์ ์คํ ๊ถํ์ 2๊ฐ์ง ๋ชจ๋๋ก ๋ถ๋ฆฌํ๋ค.
- User Mode : ์ฌ์ฉ์ ์ดํ๋ฆฌ์ผ์ด์ ์ ์คํํ๋ ๋ชจ๋๋ก, OS์ ํ๊ฐ ์์ด ์์คํ ์์์ ์ฌ์ฉํ ์ ์๋ค.
- Kernel Mode : OS๊ฐ ๋์ํ๋ ๋ชจ๋๋ก, Disk IO ๋ฐ ์์คํ ์์ ์ฌ์ฉ์ ๋ํ ์์ฒญ์ ํ ์ ์๋ค.
System Call
์์คํ ์ฝ(System Call)
๋ค์ ์์ ์ ์ํํ๊ณ ์ถ์ ์ํฉ์ ๊ฐ์ ํด ๋ณด์.
- ํ์ผ ์์คํ ์ก์ธ์ค
- ํ๋ก์ธ์ค ์์ฑ ๋ฐ ์ญ์
- ํ๋ก์ธ์ค ๊ฐ ๋ฐ์ดํฐ ๊ตํ
- ๋ฉ๋ชจ๋ฆฌ ์ถ๊ฐ ํ ๋น
์์คํ ์์์ ๊ด๋ จ๋ ๋ด์ฉ์ด๋ฏ๋ก User Mode์์๋ ์ํํ ์ ์์ ๊ฒ์ด๋ค. ๋ฐ๋ผ์ ์ด๋ฌํ ์์ ์ ์คํํด ๋ฌ๋ผ๊ณ OS์๊ฒ ์์ฒญํ๊ธฐ ์ํ ๋๊ตฌ๊ฐ ๋ฐ๋ก ์์คํ ์ฝ(System Call)์ด๋ค.
ํธ๋ฉ (Trap)
ํธ๋ฉ ๋ช ๋ น์ด(Trap Instruction)๋ User Mode์์ Kernel Mode๋ก ์ ํ์์ผ์ฃผ๋ CPU ๋ช ๋ น์ด์ด๋ค.
User mode์์ Trap์ด ํธ์ถ๋๋ฉด ํ์ฌ ์คํ ์ค์ด๋ ์ ์ ํ๋ก๊ทธ๋จ์ ์คํ์ด ์ผ์ ์ค๋จ๋๊ณ Kernel Mode๋ก ์ ํ๋๋ค.
User Mode์์ Kernel Mode๋ก ์ ํํด ์คํํ ํ์๊ฐ ์๋ ์์ ์ ์ ๋ถ Trap์ ํตํด ์ด๋ค์ง๋ค. ์์คํ ์ฝ๋ OS๊ฐ ์ฒ๋ฆฌํด์ผ ํ๋ ์์ ์ด๋ฏ๋ก ํธ๋ฉ์ ํธ์ถํ๋ค.
Return-from-trap instruction์ Kernel Mode์์ ๋ค์ User Mode๋ก ๋๋์๊ฐ๋ ๋ช ๋ น์ด์ด๋ค.
ํธ๋ฉ์ด ๋ฐ์ํ๋ฉด ํธ๋ฉ ํ ์ด๋ธ์ ์ฐธ๊ณ ํ์ฌ ์ ์ ํ ํธ๋ฉ ํธ๋ค๋ฌ๋ฅผ ์คํํ๋ค.
- ํธ๋ฉ ํ ์ด๋ธ : ํธ๋ฉ์ด ๋ฐ์ํ๋ฉด OS ๋ด์ ์ด๋ค ์ฝ๋๋ฅผ ์คํํด์ผ ํ๋๊ฐ๋ฅผ ๊ธฐ๋กํ๊ณ ์๋ ์๋ฃ๊ตฌ์กฐ
- ํธ๋ฉ ํธ๋ค๋ฌ : ํธ๋ฉ์ ๋ฐ๋ผ ์คํ๋์ด์ผ ํ๋ ์ฝ๋์ด๋ค.
์์คํ ์ฝ ๋ฒํธ (System call Number)
OS ๋ด์๋ ๋ฐฑ์ฌ ๊ฐ์ง์ ์์คํ ์ฝ์ด ์กด์ฌํ๋ค. ์ด๋ฅผ ๊ตฌ๋ณํ๊ธฐ ์ํด ์์คํ ์ฝ ๋๋ฒ๊ฐ ์กด์ฌํ๋ค.
์ฃผ์ : ์์คํ ์ฝ ๋ฒํธ์ ํธ๋ฉ ํ ์ด๋ธ์ ์๋ก ๋ค๋ฅธ ๊ธฐ๋ฅ์ด๋ค. ๋ชจ๋ ์์คํ ์ฝ์ ๋์ผํ ์ข ๋ฅ์ ํธ๋ฉ์ด๊ณ , ์์คํ ์ฝ์ ํด๋นํ๋ ํธ๋ฉ ํธ๋ค๋ฌ๊ฐ ํธ์ถ๋๋ฉด ์์คํ ์ฝ ๋๋ฒ๋ฅผ ๋ณด๊ณ ์ ์ ํ ์์คํ ์ฝ์ ์ํํ๋ค.
์ ์ ๊ฐ ์์คํ ์ฝ์ ํธ์ถํ ๋๋ ์ง์ ๋ ๋ ์ง์คํฐ์ ์์คํ ์ฝ ๋๋ฒ๋ฅผ ๋ฃ์ด ํธ์ถํ๋ค.
์ฌ๊ธฐ๊น์ง์ ๋ด์ฉ์ ๋ฐ์ํด, ๊ฐ๊ฐ์ ๋ชจ๋์์ ์ํ ๊ฐ๋ฅํ ๋ช ๋ น์ด ์ ํ๋์ด ์๋ Limited Direct Execution์ ์คํ ํ๋ฆ์ ๋ค์๊ณผ ๊ฐ๋ค.
์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ User Mode์์ ์คํ๋๋ฉฐ, Restricted Operation์ ์คํํ๊ณ ์ ํ๋ ๊ฒฝ์ฐ ์์คํ ์ฝ์ ํธ์ถํ์ฌ ํ๋ก๊ทธ๋จ์ ์คํ์ ์ผ์ ์ค๋จ์ํค๊ณ ํธ๋ฉ์ ๋ฐ์์์ผ Kernel Mode์์ ์์ฒญํ ์์ ์ ์ํํ๋ค.
์ด๋ ๊ฒ ํ๋ก๊ทธ๋จ ์คํ ์์ฒด๋ CPU์์ ์ด๋ค์ง์ง๋ง, ์์คํ ์ฝ์ ํตํด ์ ํ์ ๋์ด์ ์คํํ๋ค๊ณ ํ์ฌ Limited Direct Execution์ด๋ผ๊ณ ํ๋ค.
ํ๋์จ์ด ์์์ ์ฌ์ฉํ๊ณ ์ถ์ผ๋ฉด ์์คํ ์ฝ์ ์ฌ์ฉํด ์ด์์ฒด์ ์ ๋ถํํ๋ ๋ฐฉ์์ ์ฌ์ฉํจ์ผ๋ก์จ, ์ด์์ฒด์ ๊ฐ ํ๋ก์ธ์ค๋ฅผ ์ ์ดํ ์ ์๋๋ก ์ค์ ํ์๋ค.
Problem 2 : Switching Between Processes
์ฌ๊ธฐ์ ๋ ๋ฒ์งธ ์ด์์๋ OS์ ์ ์ด๊ถ์ ๊ดํ ์ด์๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณธ๋ค.
๊ทธ๋ ๋ค๋ฉด ํ๋ก์ธ์ค ๊ฐ์ Context Switching์ด ์ผ์ด๋ ๋ OS๊ฐ ์ด๋ป๊ฒ ์ ์ด๊ถ์ ๋ค์ ์ป์๊น?
OS๊ฐ ํ ํ๋ก์ธ์ค๋ก๋ถํฐ CPU๋ฅผ ๋๋ ค๋ฐ์ ๋ค๋ฅธ ํ๋ก์ธ์ค์๊ฒ ๋๊ฒจ์ฃผ์ด์ผ ํ๋ค.
ํ์ง๋ง ์ด์์ฒด์ ๋ ํ๋ก๊ทธ๋จ์ ์ผ์ข ์ด๋ฏ๋ก, CPU๋ฅผ ์ ์ ํ์ง ๋ชปํ๋ฉด ์๋ฌด ์์ ๋ ํ ์ ์๋ค.
Direct Execution ๋ฐฉ์์ผ๋ก ํ๋ก๊ทธ๋จ์ ์คํํ๋ฉด, Restricted Operation์ ์คํ์ ์ํด ์ ์ ์คํ ๊ถํ์ ๋ฐ์์ค๋ ๊ฒ์ ๊ฐ๋ฅํ๋ค. ํ์ง๋ง Context Switching์ ์ํด OS๊ฐ CPU ์ ์ ๊ถ์ ๋ค์ ๋ฐ์์ฌ ์ ์๋ค๋ ๊ฒ์ ๋ณด์ฅํ ์ ์๋ค!
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ 2๊ฐ์ง ๋ฐฉ๋ฒ์ด ์กด์ฌํ๋ค.
- ํ์กฐ์ ์ธ ๋ฐฉ๋ฒ : ํ๋ก์ธ์ค๊ฐ ์๋ฐ์ ์ผ๋ก ์์คํ ์ฝ์ ํตํด CPU๋ฅผ ๋ฐ๋ฉํ๋ ๊ฒ์ ๊ธฐ๋ค๋ฆฐ๋ค.
- ๋นํ์กฐ์ ์ธ ๋ฐฉ๋ฒ : ํ๋ก์ธ์ค์ ์๋ฐ์ ๋ฐ๋ฉ์ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ์ด์์ฒด์ ๊ฐ ๋ชจ๋ ์์ ์ ์ ์ดํ๋ค.
ํ์กฐ์ ์ธ ๋ฐฉ๋ฒ
ํ๋ก์ธ์ค๊ฐ CPU ์ ์ ๊ถ์ OS์๊ฒ ๋ฐ๋ฉํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
- ํ๋ก์ธ์ค์ CPU ์ ์ ๊ถ์ OS์๊ฒ ๋ฐ๋ฉํ๋
yield
๋ผ๋ ์์คํ ์ฝ์ ์ฌ์ฉํ๋ค. - ํ์ฉ๋์ง ์์ ์์
์ ์ํํ๋ค.
0
์ผ๋ก ๋๋์ ์ ์ํํ๋ค(Divide by zero).- ์ ๊ทผ์ด ๊ธ์ง๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์ ๊ทผ์ ์๋ํ๋ค.
์ด๊ธฐ ์ด์์ฒด์ ์์๋ ์ด๋ฐ ๋ฐฉ์์ ์ฌ์ฉํ์์ง๋ง, ์ฌ๊ธฐ์๋ ์น๋ช ์ ์ธ ๋จ์ ์ด ์๋ค.
์๋ํ๋ ์๋ํ์ง ์์๋ , ํ๋ก์ธ์ค๊ฐ ๋ฌดํ๋ฃจํ(Ininite loop)์ ๋น ์ง๊ฒ ๋๋ฉด ํ๋ก์ธ์ค๋ก๋ถํฐ CPU๋ฅผ ๋ค์ ๊ฐ์ ธ์ฌ ์ ์๋ ๋ฐฉ๋ฒ์ด ์ฌ๋ผ์ง๊ฒ ๋๋ค. ์์คํ ์ ์ฌ๊ฐ๋ํ๋ ๊ฒ๋ง์ด ์ ์ผํ ํด๊ฒฐ์ฑ ์ด ๋๋ค.
๋นํ์กฐ์ ์ธ ๋ฐฉ๋ฒ
Timer Interrupt๋ฅผ ์ด์ฉํ๋ ๋ฐฉ๋ฒ์ด๋ค.
- ๋ถํ ๊ณผ์ ์ค์ OS๋ ์ผ์ข ์ ํ์ด๋จธ๋ฅผ ์๋์ํจ๋ค.
- ์ด ํ์ด๋จธ๋ ์ผ์ ์ฃผ๊ธฐ๋ก ์ธํฐ๋ฝํธ(interrupt)๋ฅผ ๋ฐ์์ํจ๋ค.
- ์ธํฐ๋ฝํธ(interrupt)๋ ์ผ์ข ์ ํธ๋ฉ(trap)์ด๋ค.
- ์ธํฐ๋ฝํธ ํธ๋ค๋ฌ๊ฐ ํธ์ถ๋๋ค.
- ํ์ฌ ํ๋ก์ธ์ค์์ CPU์ ์ ์ด๊ถ์ ๋บ์ OS์๊ฒ ๋๋ ค ์ค๋ค.
๊ทธ๋ฆฌ๊ณ OS๋ ๋ค์ CPU์ ์ ์ด๊ถ์ ๋๋ ค ๋ฐ์ ๋ฐฉ๊ธ๊น์ง ์คํํ๊ณ ์๋ ํ๋ก๊ทธ๋จ์ ๋ค์ ์คํ์ํฌ์ง, ์๋ก์ด ํ๋ก๊ทธ๋จ์ ์คํํ ์ง๋ฅผ ๊ฒฐ์ ํ๋ค.
์๋ก์ด ํ๋ก๊ทธ๋จ์ ์คํํ๊ธฐ๋ก ๊ฒฐ์ ํ ๊ฒฝ์ฐ์ Context Switching์ด ์ผ์ด๋๋ค.
Context Switch๊ฐ ์ผ์ด๋๋ ๋์ ์ด๋ฌํ ์์ ๋ค์ด ์ํ๋๋ค.
- ํ์ฌ ํ๋ก์ธ์ค์ ์ํ๋ฅผ ๋ํ๋ด๋ ๋ค์ ๋ ์ง์คํฐ ๊ฐ๋ค์ ์ ์ฅํ๋ค.
- General Purpose Register์ ์ ์ฅ๋ ๊ฐ๋ค
- ํ๋ก๊ทธ๋จ ์นด์ดํฐ (ํ์ฌ ํ๋ก์ธ์ค๊ฐ ์คํ ์ค์ธ ์ฝ๋ ์์น๋ฅผ ๊ฐ๋ฆฌํด)
- ์ปค๋ ์คํ ํฌ์ธํฐ
- ๋ค์์ ์คํํ ํ๋ก์ธ์ค์ ์ปค๋ ์คํ์ผ๋ก๋ถํฐ ๋ ์ง์คํฐ ๊ฐ๋ค์ ๋ถ๋ฌ์จ๋ค.
- ์ฃผ์ : 1๋ฒ๊ณผ 2๋ฒ์ ์ปค๋ ์คํ์ ์๋ก ๋ค๋ฅธ ์ปค๋ ์คํ (๊ฐ ํ๋ก์ธ์ค๋ง๋ค ์ปค๋ ์คํ์ด ์กด์ฌํจ)
- ์ปค๋ ์คํ์ ๋ค์์ ์ํํ ํ๋ก์ธ์ค์ ์ปค๋ ์คํ์ผ๋ก ์ ํํ๋ค.
์ด ์์ ๋ค์ Assembly Code๋ก ์์ฑ๋์ด ๋งค์ฐ ๋น ๋ฅด๊ฒ ์ํ๋๋ค.
์ฌ๊ธฐ๊น์ง์ ๋ด์ฉ์ด ๋ฐ์๋ Limited Direct Execution์ ์คํ ํ๋ฆ์ ๋ค์๊ณผ ๊ฐ๋ค.
ํ๋ก์ธ์ค A๊ฐ CPU๋ฅผ OS์๊ฒ ์๋ฐ์ ์ผ๋ก ๋๋ ค์ฃผ์ง ์๋๋ผ๋ ์ ๊ธฐ์ ์ผ๋ก Timer Interrupt๊ฐ ๋ฐ์ํ์ฌ OS์๊ฒ CPU ์ ์ด๊ถ์ด ๋ฐํ๋๋ฉฐ, Context Switching์ด ์ผ์ด๋ ํ๋ก์ธ์ค ๊ฐ์ ์ ํ์ด ์ผ์ด๋๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
์ฌ๊ธฐ์ ์ฃผ์ํ ์ ์, ์ ์คํ ํ๋ฆ์ ์์ธํ ๋ณด๋ฉด Kernel Mode์ Hardware์์ ๋ชจ๋ Register ๊ฐ์ ์ ์ฅํ๊ณ ๋ณต๊ตฌํ๋ ๊ฒ์ ๋ณผ ์ ์๋ค. ์ด ๋ ๊ฐ์ ์๋ก ๋ค๋ฅธ Register์ ์ ์ฅ๋ ๊ฐ์ ์๋ฏธํ๋ค.
- Hardware์ Register ๊ฐ์ User Mode์ Register๋ฅผ ์๋ฏธํ๋ฉฐ, Kernel Stack์ ํตํด ์ ์ฅํ๊ณ ๋ณต๊ตฌํ๋ค.
- OS์ Register ๊ฐ์ Kernel Mode์ Register์ ์ ์ฅ๋ ๊ฐ์ ์๋ฏธํ๋ค. Process์ PCB์ ์ ์ฅํ๊ณ ๋ณต๊ตฌํ๋ค.
Concurrency Problem
์ถ๊ฐ๋ก, ๋์์ฑ ๋ฌธ์ ๋ ๋ฐ๋์ ๊ณ ๋ คํด์ผ ํ๋ค. ํธ๋ฉ ์คํ ์ค์ ๋ค๋ฅธ ํธ๋ฉ(ํน์ ์ธํฐ๋ฝํธ)๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ฌธ์ ๊ฐ ๋ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
OS๋ ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค.
- ์ธํฐ๋ฝํธ๊ฐ ์ฒ๋ฆฌ๋๋ ๋์ค์๋ ๋ค๋ฅธ ์ธํฐ๋ฝํธ๋ฅผ ๋ฌดํจํ(Disable Interrupt)ํ๋ค.
- ๋ค์ํ Locking Mechanism์ ํ์ฉํด ๋์ผํ ์๋ฃ๊ตฌ์กฐ์ ๋ํ ์ ๊ทผ์ ๋ฐฉ์งํ๋ค.
Locking Mechanism์ ๊ด๋ จ๋ ๋ด์ฉ์ Virtualization์ ๊ดํ ๋ด์ฉ์ ๋ชจ๋ ๋ค๋ฃฌ ํ, Concurrency ๊ด๋ จ ๋ด์ฉ์ ๋ค๋ฃจ๋ฉฐ ํ์ตํ๊ฒ ๋ ๊ฒ์ด๋ค.
์ ๋ฆฌ
Limited Direct Execution์ ํ์ฉํด Time Sharing์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ดํด๋ณด์๋ค. ํฌ๊ฒ 2๊ฐ์ง ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ฌ ๊ตฌํํ์๋ค.
- ์ฑ๋ฅ์ ๊ณ ๋ คํ์ฌ, User Mode์ Kernel Mode๋ฅผ ๋ถ๋ฆฌํ์ฌ Direct Execution์ ํ๋ค.
- Restricted Operation์ System Call์ ์ฌ์ฉํ์ฌ Kernel Mode์์ OS๊ฐ ์ํํ๋ค.
- OS์ CPU ์ ์ด๊ถ์ ๊ณ ๋ คํ์ฌ, ํ๋์จ์ด์ Timer Interrupt ๊ธฐ๋ฅ์ ์ด์ฉํด ์ฃผ๊ธฐ์ ์ผ๋ก Trap์ ๋ฐ์์ํจ๋ค.
- Direct Execution์ ์ํํ๋๋ผ๋ OS์๊ฒ ์ฃผ๊ธฐ์ ์ผ๋ก CPU ์ฌ์ฉ ๊ถํ์ด ๋์๊ฐ๋ค.
์ฌ๊ธฐ๊น์ง CPU ๊ฐ์ํ๋ฅผ ์ํ Virtualization Mechanism์ ๋ํด ์์๋ณด์๋ค.
๋ค์ ์๊ฐ๋ถํฐ๋ Virtualization Policies๋ก์, Context Switching์ด ์ผ์ด๋๋ ์๊ฐ์ ์ด๋ค ํ๋ก์ธ์ค๋ฅผ ์ํํ ์ง๋ฅผ ๊ฒฐ์ ํ๋ ์๊ณ ๋ฆฌ์ฆ์ธ Scheduling Algorithm์ ๋ํด ์์๋ณธ๋ค.