Search
๐Ÿ’พ

09 : Paging

course
last review
2023/04/13
mastery
rookie
progress
not started
date
2023/03/28
4 more properties
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๋น„ํŠธ๊ฐ€ ํ•„์š”ํ•˜๋‹ค.(26=642^6 = 64)
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์ด๋ฏ€๋กœ, ์˜คํ”„์…‹์˜ ํฌ๊ธฐ๋Š” 2122^{12}, ์ฆ‰ 12๋น„ํŠธ์ด๋‹ค.
2.
Address Space๊ฐ€ 32bit ๊ทœ๊ฒฉ์ด๋ฏ€๋กœ, VPN์€ 20๋น„ํŠธ๊ฐ€ ๋  ๊ฒƒ์ด๋‹ค.
์ด๋Š” ํ•œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ด€๋ฆฌํ•ด์•ผํ•˜๋Š” ํŽ˜์ด์ง€์˜ ์ˆ˜๊ฐ€ 2202^{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