Previous chapter
์ธ๊ทธ๋ฉํ
์ด์
์ ํ๋ง๋๋ก ์์ฝํ๋ฉด โ๊ฐ์๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ฐ๋ณ ํฌ๊ธฐ์ ์กฐ๊ฐ์ผ๋ก ๋ถํ ํ๋ ๊ฒโ์ด๋ค.
๋ถํํ๊ฒ๋, ํ์์ ์ธ ๋ฌธ์ ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
โข
๊ณต๊ฐ์ ๋ค์ํ ํฌ๊ธฐ์ ์ฒญํฌ๋ก ๋ถํ ํ ๋ ๊ณต๊ฐ ์์ฒด๊ฐ ๋จํธํ(fragmented)๋ ์ ์๊ณ , ํ ๋น์ ์ ์ ๋ ์ด๋ ค์์ง๋ค.
๋ง์ฝ ๊ณต๊ฐ์ ๋์ผ ํฌ๊ธฐ์ ์กฐ๊ฐ์ผ๋ก ๋ถํ ํ๋ค๋ฉด ์ด๋จ๊น?
ํ๋ก์ธ์ค์ ์ฃผ์๊ณต๊ฐ์ ๋ช๊ฐ์ ๊ฐ๋ณ ํฌ๊ธฐ์ ๋
ผ๋ฆฌ ์ธ๊ทธ๋จผํธ๋ก ๋๋๋๊ฒ ์๋๋ผ ๊ณ ์ ํฌ๊ธฐ์ ๋จ์๋ก ๋๋๋ ๊ฒ์ด๋ค!
์ฐ๋ฆฌ๋ ์ด ๊ฐ๊ฐ์ ๊ณ ์ ํฌ๊ธฐ ๋จ์๋ฅผ ํ์ด์ง(page)๋ผ๊ณ ๋ถ๋ฅธ๋ค.
์ด์ ๋ถ์ํ๋ฏ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๋ ํ์ด์ง ํ๋ ์(page frame)์ด๋ผ๋ ๊ณ ์ ํฌ๊ธฐ์ ์ฌ๋กฏ ๋ฐฐ์ด์ด๋ผ๊ณ ์๊ฐํ ์ ์๋ค. ๋ง์น B&B๋ฅผ ๋ณด๋ ๊ฒ ๊ฐ๋ค. ๊ทธ๋ ์ง ์๋?
Main QUEST : Virtualizing with Page
์ธ๊ทธ๋ฉํ
์ด์
์ ๋จํธํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ํ์ด์ง๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ป๊ฒ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ฐ์ํํ ์ ์์๊น?
๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋ฒ์ ๋ฌด์์ด๋ฉฐ, ์๊ณต๊ฐ ์ค๋ฒํค๋๋ฅผ ์ต์๋ก ํ๋ ๋ฐฉ๋ฒ์?
Simple Example and Outline
์ผ์ชฝ์ ์ด ํฌ๊ธฐ๊ฐ 64byte์ด๋ฉฐ, 4๊ฐ์ 16byte ํ์ด์ง๋ก ๊ตฌ์ฑ๋ Address Space๋ค.
๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๋ 18.2์ ๋ํ๋ธ ๋ฐ์ ๊ฐ์ด, ๊ณ ์ ํฌ๊ธฐ์ ์ฌ๋กฏ๋ค๋ก ๊ตฌ์ฑ๋๋ค.
8๊ฐ์ ํ์ด์ง ํ๋ ์, 128๋ฐ์ดํธ์ ๋ฌผ๋ฆฌ๋ฉ๋ชจ๋ฆฌ๋ผ๊ณ ๊ฐ์ ํ์.
FEATURES
โข
๊ฐ์ ์ฃผ์ ๊ณต๊ฐ์ ํ์ด์ง๋ค์ด ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ์ ์ฒด์ ๋ถ์ฐ ๋ฐฐ์น๋์ด์๋ค.
โข
์ด์์ฒด์ ๊ฐ ์๊ธฐ์์ ์ ์ํด ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ์ผ๋ถ๋ฅผ ์ฌ์ฉํ๋ค.
ํ์ด์ง์ด ๊ฐ์ง๋ ์ฅ์ ์ ์ธ๊ทธ๋ฉํ
์ด์
์ ๋นํด ๋งค์ฐ ๋ง๋ค.
1.
์ ์ฐ์ฑ ๊ฐ์
ํ๋ก์ธ์ค๊ฐ ์ฃผ์๊ณต๊ฐ์ ์ด๋ป๊ฒ ์ฌ์ฉํ๋์ง์๋ ์๊ด์์ด ํจ์จ์ ์ธ ์ฃผ์๊ณต๊ฐ ์ง์์ด ๊ฐ๋ฅํ๋ค.
ํ๊ณผ ์คํ์ด ์ปค์ง๋ ๋ฐฉํฅ์ ๊ณ ๋ คํ์ง ์์๋ ๋๋ ๊ฒ์ด๋ค.
2.
๋จ์ํจ
64๋ฐ์ดํธ ์ฃผ์ ๊ณต๊ฐ์ 8ํ์ด์ง ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ๋ฐฐ์นํ๊ธฐ๋ฅผ ์ํ๋ค๊ณ ํ ๋, OS๋ ๋น์ด์๋ ๋ค๊ฐ์ ํ์ด์ง๋ง ์ฐพ์ผ๋ฉด ๋์ด๋ค.
๋ฌผ๋ก OS๋ ์ด๋ฅผ ์ํด ์ด๋ ๊ณต๊ฐ์ด ๋น์ด์๋์ง ๋ฆฌ์คํธ์
์ ํด์ผํ ๊ฒ.
Address space์ ๊ฐ ๊ฐ์ ํ์ด์ง์ ๋ํด ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ด๋์ ๋งคํ๋์ด์๋์ง๋ฅผ ๊ธฐ๋กํ๊ธฐ ์ํด OS๋ ํ์ด์ง ํ
์ด๋ธ(Page table)์ด๋ผ๋ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ ์งํ๋ค.
ํ์ด์ง ํ
์ด๋ธ์ ๊ฐ์ฅ ํฐ ์กด์ฌ์์๋ VP โ PF๋ก ์ฃผ์ ๋ณํ์ ํ๋ ์ฉ๋์ด๋ค.
ํ์ด์ง ํ
์ด๋ธ์ (VP0โPF3),(VP1โPF7),(VP2โPF5),(VP3โPF2)๋ผ๋ ํญ๋ชฉ์ ๊ฐ์ง๋ค.
ํ์ด์ง ํ
์ด๋ธ์ ํ๋ก์ธ์ค๋ง๋ค ์กด์ฌํ๋ค๋ ์ฌ์ค์ ๊ธฐ์ตํ์.
๋ค๋ฅธ ํ๋ก์ธ์ค๋ฅผ ์คํํด์ผํ๋ค๋ฉด, ๊ทธ ํ๋ก์ธ์ค๋ฅผ ์ํ ๋ค๋ฅธ ํ์ด์ง ํ
์ด๋ธ์ด ํ์ํ๋ค.
ํ์ด์ง ํ๋ ์๊ณผ ํ์ด์ง ํ
์ด๋ธ์ ๋ํด ์ดํด๋ฅผ ๋ง์ณค์ผ๋, ์ด์ ์ฃผ์ ๋ณํ์ ์ด๋ป๊ฒ ํ๋์ง ์์๋ดฆ.
Address Translation
์ฃผ์๋ณํ์ ์ํด ๊ฐ์ฅ ๋จผ์ ํ์ํ ๊ฒ์ Virtual Address๋ฅผ ๊ฐ์ ํ์ด์ง ๋๋ฒ (Virtual Page Number, VPN)์ ์คํ์
์ผ๋ก ๋ถํ ํด์ผํ๋ค.
์ ์์์์ ์ฃผ์๊ณต๊ฐ์ ์ ์ฒดํฌ๊ธฐ๋ 64๋ฐ์ดํธ์ด๋ค.
์ฃผ์๋ฅผ ์ํ ๋นํธ์ฌ์ด์ฆ๋ 6๋นํธ๊ฐ ํ์ํ๋ค.()
Va5๋ ์ต์์ ๋นํธ, Va0๋ ์ตํ์ ๋นํธ๋ฅผ ๋ํ๋ธ๋ค. ์ฐ๋ฆฌ๋ ํ์ด์ง ํฌ๊ธฐ๊ฐ 16byte์์ ์๊ณ ์์ผ๋ฏ๋ก, ์คํ์
์ด 4๋นํธ, VPN์ด 2๋นํธ๋ก ๋๋์ด์ผํจ์ ๋ฐ๋ก ์ ์ถํ ์ ์๋ค.
ํ๋ก์ธ์ค๊ฐ ๊ฐ์์ฃผ์๋ฅผ ์์ฑํ๋ฉด OS์ ํ๋์จ์ด๊ฐ ๋ฌผ๋ฆฌ์ฃผ์๋ก ์ด๋ฅผ ๋ณํํด์ค๋ค.
Example
๊ฐ์์ฃผ์๊ฐ 21์ด๋ผ๊ณ ํ์.
movl 21, %eax
Assembly
๋ณต์ฌ
โ21โ์ ๋ฐ์ด๋๋ฆฌ ๋๋ฒ๋ก ๋ฐ๊พธ๋ฉด 010101์ด ๋๋ค.
VPN์ ์คํ์
์ผ๋ก ๋ถํดํ๋ฉด [01 / 0101] ์ด ๋ ๊ฒ์ด๋ค.
๋ฐ๋ผ์ ๊ฐ์์ฃผ์ 21์ VP 1ํ์ด์ง์ 5๋ฒ์งธ ๋ฐ์ดํธ์ด๋ค.
VP = 1์ผ๋ ํ์ด์ง ํ
์ด๋ธ์์ ๋งคํํ ๋ฌผ๋ฆฌ ํ๋ ์ ๋๋ฒ(Physical Frame Number, PFN)์ 7(111)์ด๋ค.
VPN์ PFN์ผ๋ก ๊ต์ฒดํ์ฌ ๊ฐ์ ์ฃผ์๋ฅผ ๋ณํํ ์ ์๋ค. ๊ทธ๋ฐ ํ์ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ํ์ฌ ๋ช
๋ น์ด๋ฅผ ์คํํ๋ค.
์คํ์
์ ๋ณํ๋์ง ์๋๋ค๋ ์ ์ ์ฃผ์ํ์.
์คํ์
์ ํ์ด์ง ๋ด์์์ ์ฐ๋ฆฌ๊ฐ ์ํ๋ ์์น๋ฅผ ์๋ ค์ฃผ๊ธฐ ๋๋ฌธ์ด๋ค.
์ฆ, ์ต์ข
๋ฌผ๋ฆฌ ์ฃผ์๋ 1110101(117)์ด ๋๋ค.
Questions You may have
์ด ๊ฐ์๋ฅผ ์ผ๋์ ๋๊ณ ์ด์ ํ์ด์ง์ ๊ดํด ๋ช๊ฐ์ง ์ง๋ฌธ์ ํด๋ณด์.
โข
ํ์ด์ง ํ
์ด๋ธ์ ์ด๋์ ์ ์ฅ๋ ๊น?
โฆ
ํ์ด์ง ํ
์ด๋ธ์ ๋ด์ฉ์ ๋ฌด์์ด๋ฉฐ, ํฌ๊ธฐ๋ ์ผ๋ง์ผ๊น?
โข
ํ์ด์ง์ ์์คํ
์ ๋๋ฆฌ๊ฒ ๋ง๋ค์ง ์์๊น?
Where Are Page Tables Stored?
ํ์ด์ง ํ
์ด๋ธ์ ํฌ๊ธฐ๋ ์ธ๊ทธ๋จผํธ ํ
์ด๋ธ์ด๋ B&B ๋ ์ง์คํฐ์ ๋นํด ํฌ๊ธฐ๊ฐ ๋งค์ฐ ์ปค์ง ์ ์๋ค.
Example
4KBํฌ๊ธฐ์ ํ์ด์ง๋ฅผ ๊ฐ์ง๋ 32bit์ง๋ฆฌ Address Space๋ฅผ ์๊ฐํด๋ณด์.
1.
ํ์ด์ง๋น ํฌ๊ธฐ๊ฐ 4KB์ด๋ฏ๋ก, ์คํ์
์ ํฌ๊ธฐ๋ , ์ฆ 12๋นํธ์ด๋ค.
2.
Address Space๊ฐ 32bit ๊ท๊ฒฉ์ด๋ฏ๋ก, VPN์ 20๋นํธ๊ฐ ๋ ๊ฒ์ด๋ค.
์ด๋ ํ ํ๋ก์ธ์ค๊ฐ ๊ด๋ฆฌํด์ผํ๋ ํ์ด์ง์ ์๊ฐ ๊ฐ๊ฐ ๋๋ค๋ ๋ป์ด๋ค(!)
๋ฌผ๋ฆฌ์ฃผ์๋ก์ ๋ณํ์ ๋ณด(๋งคํ ๋ฑ๋ฑ..)์ ๋ค๋ฅธ ํ์ํ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ธฐ ์ํด ํ์ด์ง ํ
์ด๋ธ ํญ๋ชฉ(Page Table Entry, PTE) ๋ง๋ค ๋์ถฉ 4๋ฐ์ดํธ๊ฐ ํ์ํ๋ค๊ณ ๊ฐ์ ํ์.
๊ทธ๋ผ ๊ฐ ํ์ด์ง ํ
์ด๋ธ๋น 4MB์ ๋๊ฐ ํ์ํ ๊ฒ์ด๋ฉฐ, ์ด๋ ํฐ ํฌํค๋ค. ํ๋ก์ธ์ค 100๊ฐ๊ฐ ์คํํ๋ฉด ๋ฌด๋ ค 400๋ฉ๊ฐ!
32๋นํธ ๊ท๊ฒฉ์ด๋ผ์ ์ด์ ๋์ง, 64๋นํธ๋ค? ์์๋ ํ๊ธฐ ์ซ๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก, ํ์ด์งํ
์ด๋ธ์ ํฌ๊ธฐ๊ฐ ๋ฉ์ฐ ํฌ๊ธฐ ๋๋ฌธ์ ์คํ์ค์ธ ํ์ด์ง ํ
์ด๋ธ์ ์ ์ฅํ ์ ์๋ ํ๋ก๋ฅผ MMU์์ ์ ์งํ๋ ๊ฑด ๋ฏธ์น ์ง์ผ ๊ฒ์ด๋ค.
๋์ ๊ฐ ํ๋ก์ธ์ค์ ํ์ด์ง ํ
์ด๋ธ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ๋ค.
๋น๋ถ๊ฐ ํ์ด์ง ํ
์ด๋ธ์ OS๊ฐ ๊ด๋ฆฌํ๋ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ์์ฃผ(VP0)ํ๋ค๊ณ ๊ฐ์ ํ์.
Whatโs Actually in the Page Table?
ํ์ด์ง ํ
์ด๋ธ์ ๊ตฌํํ๊ธฐ์ ๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ ์๋ง ์ ํ ํ์ด์ง ํ
์ด๋ธ(Linear Page Table)์ด ๋ ๊ฒ์ด๋ค.
์ ํ ํ์ด์ง ํ
์ด๋ธ์ ๋จ์ํ ๋ฐฐ์ด์ ํํ์ด๋ค.
OS๋ ์ํ๋ PFN์ ์ฐพ๊ธฐ ์ํด VPN์ผ๋ก ์ธ๋ฑ์ฑ(!)์ ํ๊ณ ๊ทธ ํญ๋ชฉ์ ํ์ด์ง ํ
์ด๋ธ ์ํธ๋ฆฌ๋ฅผ ๊ฒ์ํ๋ค.
The Content of Page Table Entry
โข
valid bit
โฆ
์ด ๊ฐ์ด ์ ํจํ์ง ์๋์ง๋ฅผ ์ ์ฅํ ๋นํธ๋ค.
์๋ฅผ ๋ค์ด ํ๊ณผ ์คํ ์ฌ์ด์ ๋ชจ๋ ๊ณต๊ฐ์ invalidํ๊ฒ ์ค์ ํ์ฌ ํด๋น ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ ์, OS๊ฐ ํธ๋ฉ์ ๊ฑธ์ด๋ฒ๋ฆฌ๋ ๊ตฌ์กฐ๋ก ํ์ฉ์ด ๊ฐ๋ฅํ ๊ฒ์ด๋ค.
์ฃผ์๊ณต๊ฐ์ ๋ฏธ์ฌ์ฉ ํ์ด์ง๋ฅผ ๋ชจ๋ ํ์ํจ์ผ๋ก์จ ์ด๋ฐ ํ์ด์ง๋ค์๊ฒ ๋ฌผ๋ฆฌ ํ๋ ์์ ํ ๋นํ ํ์๋ฅผ ์์ค๋ค.
โข
Protection bits
โฆ
ํ์ด์ง๊ฐ rwx๊ฐ๋ฅํ์ง ๋ํ๋ธ๋ค.(1~3๋นํธ?)
Protection bit๊ฐ ํ์ฉํ์ง ์๋ ๋ฐฉ์์ผ๋ก ์ ๊ทผํ ์ OS์ ํธ๋ฉ์ ๊ฑด๋ค.
โข
Present bit
โฆ
ํ์ฌ ์ด ํ์ด์ง๊ฐ ์ด๋์ ์๋์ง๋ฅผ ๋ํ๋ธ๋ค.(๋์คํฌ๋ ํผ์ง์ปฌ RAM โ swapped out์ด๋ผ๊ณ ํ๋ค)
โข
Dirty bit
โฆ
ํด๋น ๋ฉ๋ชจ๋ฆฌ์ ์ฐ๊ธฐ ์์
์ด ์ด๋ฃจ์ด์ก๋์ง ๋ํ๋ด๋ ๋นํธ
โข
Reference bit
โฆ
rwx๋ ๊ฐ์ ์ฐธ์กฐ๊ฐ ๋์๋์ง ๋ํ๋ด๋ ๋นํธ
๋ณดํต valid์ present๋ก OS๊ฐ ๋งคํ์ ํ๋จํ๋ค.
Isnโt It Too Slow?
ํ์ด์ง ํ
์ด๋ธ์ ํฌ๊ธฐ๊ฐ ๋ฉ๋ชจ๋ฆฌ ์์์ ๋งค์ฐ ํฌ๊ฒ ์ฆ๊ฐํ ์ ์๋ค.
movl 21 %eax
Assembly
๋ณต์ฌ
๋ช๊ฐ์ง ๊ฐ์ ์ ํ ๊ฒ์ด๋ค.
โข
์ด ์์์์ ํ๋์จ์ด๊ฐ ์ฃผ์ ๋ณํ์ ๋ด๋นํ๋ค๊ณ ๊ฐ์ ํ๋ค.
โข
์ฃผ์21์ ๋ํ ์ฐธ์กฐ๋ง ๊ณ ๋ คํ๋ค.
๋จผ์ ์์คํ
์ Virtual ์ฃผ์ 21์ ์ ํํ ๋ฌผ๋ฆฌ ์ฃผ์ 117๋ก ๋ณํํด์ผํ๋ค. ๋ค์๊ณผ ๊ฐ์ ํ๋ก์ธ์ค๊ฐ ์๊ฒ ์ง?
โข
VPN21์ PTE์ ์ธ๋ฑ์ฑ
โข
PTE๋ก๋ถํฐ PFN์ ์ถ์ถ
โข
VA์ offset + PFN ์กฐํฉํด์ ์ ํํ ๋ฌผ๋ฆฌ ์ฃผ์ ๋ณํ
์ด๋ ๊ฒ ํ๊ธฐ ์ํด์๋ ํด๋น ํ๋ก์ธ์ค์ ํ์ด์ง ํ
์ด๋ธ์ด ์ด๋์ ์๋์ง๋ฅผ ๋ฐ๋์ ์์์ผ ํ๋ค.
๋น๋ถ๊ฐ ํ๋์ ํ์ด์ง ํ
์ด๋ธ ๋ฒ ์ด์ค ๋ ์ง์คํฐ(page table base register)๊ฐ PT์ ์์ ์ฃผ์๋ฅผ ์ ์ฅํ๋ค๊ณ ๊ฐ์ ํ์.
์ฆ, context Switch๊ฐ ์ผ์ด๋ ๋๋ง๋ค ์ด ์ด์์ฒด์ ๋ PTBR์ ์ฐธ์กฐํด ๋ค์ ํ
์ด๋ธ์ด ์ด๋์๋์ง๋ฅผ ํ์ธํ๋ ๋ฐฉ์์ด๋ค.
์ํ๋ PTE์ ์์น๋ฅผ ์ฐพ๊ธฐ ์ํด ํ๋์จ์ด๋ ๋ค์๊ณผ ๊ฐ์ ์ฐ์ฐ์ ํ๋ค.
VPN = (VirtualAddress & VPN_MASK) >> SHIFT
PTEAddr = PTBR + (VPN * sizeof(PTE))
C
๋ณต์ฌ
Virtual Address๋ XX YYYY์ ๊ฐ์ ํ์์ผ๋ก ๊ตฌ์ฑ๋๋ค.
VPN์ XX์ ๊ฐ๋ง ์๋ฏธ์์ผ๋ฏ๋ก, VPN_MASK(11 0000)๋ฅผ ํตํด XX๋ง ๋ง์คํน์ ํ๋ค.
์ดํ SHIFT(4)๋ก VPN์ LSB์ชฝ์ผ๋ก ์ ๋ ฌํ์ฌ ์ ์์ ์ธ ๊ฐ์ ๋ฝ์๋ธ๋ค.
์ด ๊ฐ์ ์ด์ PTE์ ์ธ๋ฑ์ค๋ก ์ฌ์ฉํ๋ค.
offset = VirtualAddress & OFFSET_MASK
PhysAddr = (PFN << SHIFT) | offset
Assembly
๋ณต์ฌ
offset์ Virtual Address์ YYYY์ ํด๋นํ๋ ํํธ์ด๋ฏ๋ก, OFFSET_MASK(00 1111)์ ์ฐ์ฐํ์.
์ดํ ์ต์ข
PhysAddr์์ FPN์ offset์ ์กฐํฉํ์ฌ ๋ฌผ๋ฆฌ์ฃผ์๊ฐ์ ์ป์ผ๋ฉด ๋๋ค!
์ด ๊ณผ์ ์์ ์ฑ๋ฅ์ด ๋๋ ค์ง๋ ํํธ๋ฅผ ์ฐธ์กฐํ์.
๋ชจ๋ ๋ฉ๋ชจ๋ฆฌ ์ฐธ์กฐ์ ๋ํด ๋จผ์ ํ์ด์ง ํ
์ด๋ธ์์ ๋ณํ์ ๋ณด๋ฅผ ๋ฐ์
ํด์ผํ๊ธฐ ๋๋ฌธ์ ๋ฐ๋์ ํ๋ฒ์ ์ถ๊ฐ์ ์ธ ๋ฉ๋ชจ๋ฆฌ ์ฐธ์กฐ๊ฐ ํ์ํ๋ค. ๋ฉ๋ชจ๋ฆฌ ์ฐธ์กฐ๋ ๋น์ฉ์ด ๋น์ธ๊ณ ํ๋ก์ธ์ค๊ฐ 2๋ฐฐ ์ด์ ๋๋ ค์ง๋ ์์ธ์ด ๋๋ค.
PTE = AccessMemory(PTEAddr) //๋๋ฆฐ ๋ถ๋ถ : ํ์ด์งํ
์ด๋ธ์ด ์๋ ์ปค์ ์บ์์ ๋ด๊ธฐ๋ ํ๋ฆ
if (PTE.Valid == False)
RaiseException(SEGMENTATION_FAULT)
else if (CanAccess(PTE.ProtectBits) == False)
RaiseException(PROTECTION_FAULT)
else
offset = VirtualAddress & OFFSET_MASK
PhysAddr = (PTE.PFN << SHIFT) | offset
Register = AccessMemory(PhysAddr)
C
๋ณต์ฌ
Understanding How Things Work Together
์ปดํ์ผ ํ์์ ์ ํด์ง ๋ฐ์ดํฐ์ ์ฝ๋, ์ปดํ์ผ๋ ํ์ผ์ ์คํ ๋ฆฌ์ง์ ๋ค์ด๊ฐ ์์
์คํ์ด ๋ ๋ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์์ผํ๋ค.
ํ์ํ ๋๋ค์ ํํด์ ๋งคํํ ๊ฒ
์คํ์ด๋ ํ ๋ ์กด์ฌํ ๊ฒ์ด๊ณ
๋งคํ ํ
์ด๋ธ โ ๋ฉ๋ชจ๋ฆฌ ์์ ์กด์ฌ(PM)
์คํ๋๋ ์์ฉํ๋ก๊ทธ๋จ ์
์ฅ์์๋ VM์์ ๋๊ณ ์๋ค๊ณ ์๊ฐํ ๊ฒ์.
Fetch Load Store ์ ํญ์ ์ฃผ์๊ฐ ํ์ํจ. โ ์ผ๋จ ๋ค VA์ด๋ค.
ํ์ด์งํ
์ด๋ธ ๋ฒ ์ด์ค ๋ ์ง์คํฐ์ ์๋ ๋งคํ ํ
์ด๋ธ์ ๊ธฐ๋ฐ์ผ๋ก VAโPA๋ก ๋ณํ๋๋ค.
Next chapter