๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
ComputerScience ๐Ÿ“š/์šด์˜์ฒด์ œ

[OS] ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ(4) - ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์˜ ๊ตฌ์กฐ(Structure of the Page Table)

by dkswnkk 2022. 4. 3.

 

์„œ๋ก 

์ด์ „ ๊ฒŒ์‹œ๊ธ€์—์„œ๋Š” TLB(translation look-aside buffer)๊ฐ€ ํฌํ•จ๋œ ํŽ˜์ด์ง• ์‹œ์Šคํ…œ์—์„œ ๋…ผ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๋ฌผ๋ฆฌ ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ •๋ฆฌํ–ˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ฒŒ์‹œ๊ธ€์—์„œ๋Š” ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ•์ธ ์•„๋ž˜ ์„ธ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ํ•œ๋ฒˆ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

  • ๊ณ„์ธต์  ํŽ˜์ด์ง€
  • ํ•ด์‹œ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”
  • ์—ญ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”
์ด ์žฅ์˜ ๋ชฉํ‘œ
1. ๋…ผ๋ฆฌ ์ฃผ์†Œ์™€ ๋ฌผ๋ฆฌ ์ฃผ์†Œ์˜ ์ฐจ์ด์ ๊ณผ ์ฃผ์†Œ๋ฅผ ๋ณ€ํ™˜ํ•  ๋•Œ MMU(๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ์žฅ์น˜)์˜ ์—ญํ• ์„ ์ •๋ฆฌํ•ด ๋ณธ๋‹ค.(์ด์ „ ๊ฒŒ์‹œ๊ธ€)
2. ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์—ฐ์†์ ์œผ๋กœ ํ• ๋‹นํ•˜๊ธฐ ์œ„ํ•ด ์ตœ์ดˆ, ์ตœ์ , ๋ฐ ์ตœ์•… ์ ‘ํ•ฉ ์ „๋žต์„ ์ ์šฉํ•ด ๋ณธ๋‹ค.(์ด์ „ ๊ฒŒ์‹œ๊ธ€)
3. ๋‹จํŽธํ™”์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ณ  ๋‹จํŽธํ™”์˜ ๋‘ ๊ฐ€์ง€ ์ข…๋ฅ˜ ๋‚ด๋ถ€ ๋ฐ ์™ธ๋ถ€ ๋‹จํŽธํ™”์˜ ์ฐจ์ด์ ์„ ์ •๋ฆฌํ•ด ๋ณธ๋‹ค. (์ด์ „ ๊ฒŒ์‹œ๊ธ€)
4. ์™ธ๋ถ€ ๋‹จํŽธํ™” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ํŽ˜์ด์ง• ๊ธฐ๋ฒ•์„ ์‚ดํŽด๋ณธ๋‹ค. (์ด์ „ ๊ฒŒ์‹œ๊ธ€)
5. TLB(translation look-aside buffer)๊ฐ€ ํฌํ•จ๋œ ํŽ˜์ด์ง• ์‹œ์Šคํ…œ์—์„œ ๋…ผ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๋ฌผ๋ฆฌ ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค. (์ด์ „ ๊ฒŒ์‹œ๊ธ€)
6. ๊ณ„์ธต์  ํŽ˜์ด์ง•, ํ•ด์‹œ ํŽ˜์ด์ง• ๋ฐ ์—ญ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ์„ค๋ช…ํ•œ๋‹ค. (ํ˜„์žฌ ๊ฒŒ์‹œ๊ธ€)

 

1. ๊ณ„์ธต์  ํŽ˜์ด์ง€(hierachical Paging)

์š”์ฆ˜ ๋งŽ์€ ํ˜„๋Œ€ ์ปดํ“จํ„ฐ๋Š” ๋งค์šฐ ํฐ ์ฃผ์†Œ ๊ณต๊ฐ„(2^32 ~ 2^64)์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ™˜๊ฒฝ์—์„œ๋Š” ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”๋„ ์ƒ๋‹นํžˆ ์ปค์ง‘๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 32๋น„ํŠธ ๋…ผ๋ฆฌ ์ฃผ์†Œ ๊ณต๊ฐ„์„ ๊ฐ€์ง„ ์‹œ์Šคํ…œ์„ ์ƒ๊ฐํ•ด ๋ด…์‹œ๋‹ค. ์ด ์‹œ์Šคํ…œ์—์„œ ํŽ˜์ด์ง€ ํฌ๊ธฐ๊ฐ€ 4KB(2^12)๋ผ๋ฉด ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์€ 100๋งŒ(2^20 = 2^32 / 2^12) ๊ฐœ ์ด์ƒ์˜ ํ•ญ๋ชฉ์œผ๋กœ ๊ตฌ์„ฑ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐ ํ•ญ๋ชฉ์€ ๋‹ค์‹œ 4B๋กœ ๊ตฌ์„ฑ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ ํ”„๋กœ์„ธ์Šค๋Š” ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”๋งŒ์„ ์œ„ํ•ด์„œ๋„ 4 MB์˜ ๊ณต๊ฐ„์ด ํ•„์š”ํ•˜๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ ๋ชจ๋“  ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์—ฐ์†์ ์œผ๋กœ ํ• ๋‹นํ•˜๊ธฐ์—๋Š” ์ƒ๋‹นํ•œ ๋ฌด๋ฆฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ํ•œ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์€ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ž‘์€ ์กฐ๊ฐ์œผ๋กœ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์ธ๋ฐ ์ด๊ฒƒ๋„ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

 ํ•œ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์€ 2๋‹จ๊ณ„ ํŽ˜์ด์ง• ๊ธฐ๋ฒ•(two-level paging scheme)์œผ๋กœ์„œ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ์ž์ฒด๊ฐ€ ๋‹ค์‹œ ํŽ˜์ด์ง• ๋˜๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.(์•„๋ž˜ ์ด๋ฏธ์ง€)

2๋‹จ๊ณ„ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ๊ธฐ๋ฒ•

์•ž์—์„œ 4 KB์˜ ํฌ๊ธฐ๋ฅผ ๊ฐ€์ง„ 32๋น„ํŠธ ๊ธฐ๊ณ„์˜ ์˜ˆ๋ฅผ ๋‹ค์‹œ ๋“ค์–ด๋ด…์‹œ๋‹ค. ์ด ๊ฒฝ์šฐ ๋…ผ๋ฆฌ ์ฃผ์†Œ๋Š” 20๋น„ํŠธ์งœ๋ฆฌ ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ์™€ 12๋น„ํŠธ์งœ๋ฆฌ ํŽ˜์ด์ง€ ์˜คํ”„์…‹์œผ๋กœ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ์ด์ œ๋Š” ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”๋„ ํŽ˜์ด์ง€๋กœ ๋‚˜๋ˆ„์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์—, ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ๋Š” ๋‹ค์‹œ 10๋น„ํŠธ์งœ๋ฆฌ ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ์™€ 10๋น„ํŠธ์งœ๋ฆฌ ํŽ˜์ด์ง€ ์˜คํ”„์…‹์œผ๋กœ ๋‚˜๋ˆ„์–ด์ง‘๋‹ˆ๋‹ค. ์ฆ‰, ๋…ผ๋ฆฌ ์ฃผ์†Œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฉ๋‹ˆ๋‹ค

์—ฌ๊ธฐ์„œ p1์€ ๋ฐ”๊นฅ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์˜ ์ธ๋ฑ์Šค์ด๊ณ , p2๋Š” ์•ˆ์ชฝ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์˜ ํŽ˜์ด์ง€ ๋‚ด์˜ ์˜คํ”„์…‹์ž…๋‹ˆ๋‹ค. ์•„๋ž˜ ์ด๋ฏธ์ง€๋Š” ์ด ๊ตฌ์กฐ์— ์˜ํ•œ ์ฃผ์†Œ ๋ณ€ํ™˜ ๊ธฐ๋ฒ•์„ ๋‚˜ํƒ€๋‚ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

2๋‹จ๊ณ„ 32๋น„ํŠธ ํŽ˜์ด์ง• ๊ตฌ์กฐ์—์„œ์˜ ์ฃผ์†Œ ๋ณ€ํ™˜

์ด ๋ฐฉ์‹์—์„œ๋Š” ์ฃผ์†Œ ๋ณ€ํ™˜์ด ๋ฐ”๊นฅ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์—์„œ ์‹œ์ž‘ํ•˜์—ฌ ์•ˆ์ชฝ์œผ๋กœ ๋“ค์–ด์˜ค๋ฏ€๋กœ ์ด ๋ฐฉ์‹์„ forward-mapped ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์ด๋ผ๊ณ ๋„ ๋ถ€๋ฆ…๋‹ˆ๋‹ค. 

 64๋น„ํŠธ ๋…ผ๋ฆฌ ์ฃผ์†Œ ๊ณต๊ฐ„์„ ๊ฐ€์ง„ ์‹œ์Šคํ…œ์—์„œ๋Š” 2๋‹จ๊ณ„ ํŽ˜์ด์ง• ๊ธฐ๋ฒ•๋„ ์ ์ ˆํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ์ด ์ ์„ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด์„œ ํŽ˜์ด์ง€ ํฌ๊ธฐ๊ฐ€ 4 KB(2^12)๋ผ๊ณ  ๊ฐ€์ •ํ•ด๋ด…์‹œ๋‹ค. ์ด ๊ฒฝ์šฐ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์€ 2^52 ํ•ญ๋ชฉ์œผ๋กœ ๊ตฌ์„ฑ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. 2๋‹จ๊ณ„ ํŽ˜์ด์ง• ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ์ชฝ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์€ 1ํŽ˜์ด์ง€๊ฐ€ ๋˜๊ฑฐ๋‚˜ 2^10๊ฐœ์˜ 4B์งœ๋ฆฌ ํ•ญ๋ชฉ์„ ๊ฐ€์ง€๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฃผ์†Œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚˜ํƒ€๋‚ด์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 ๋ฐ”๊นฅ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์€ 2^42 ํ•ญ๋ชฉ์„ ๊ฐ€์ง€๊ฒŒ ๋˜๊ณ  2^44 ๋ฐ”์ดํŠธ๋กœ ๊ตฌ์„ฑ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด์™€ ๊ฐ™์ด ํฐ ๋ฐ”๊นฅ ํ…Œ์ด๋ธ”์„ ํ”ผํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฐ”๊นฅ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ์ž‘๊ฒŒ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๋ฐฉ์‹์€ 32๋น„ํŠธ ํ”„๋กœ์„ธ์„œ์—์„œ ํšจ์œจ์„ฑ๊ณผ ์œ ์—ฐ์„ฑ์„ ํ–ฅ์ƒํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

 ์ด์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์—๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒซ์งธ๋กœ, ๋ฐ”๊นฅ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ํŽ˜์ด์ง€ ์‹œํ‚ด์œผ๋กœ์จ 3๋‹จ๊ณ„ ํŽ˜์ด์ง€ ๋ฐฉ๋ฒ•์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๊นฅ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์€ ํ‘œ์ค€ ํฌ๊ธฐ ํŽ˜์ด์ง€๋“ค๋กœ ๊ตฌ์„ฑ๋œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ด…์‹œ๋‹ค(2^10 ํ•ญ๋ชฉ, ๋˜๋Š” 2^12 ๋ฐ”์ดํŠธ). ์ด ๊ฒฝ์šฐ 64๋น„ํŠธ ์ฃผ์†Œ ๊ณต๊ฐ„์€ ์—ฌ์ „ํžˆ ๊ด€๋ฆฌํ•˜๊ธฐ๊ฐ€ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

๋ฐ”๊นฅ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์€ ์—ฌ์ „ํžˆ 2^34๋ฐ”์ดํŠธ(16 GB)์˜ ํฌ๊ธฐ๋ฅผ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค.

 ๋‹ค์Œ ๋‹จ๊ณ„๋Š” 2๋ฒˆ์งธ ๋ฐ”๊นฅ ํ…Œ์ด๋ธ” ์ž์ฒด๋ฅผ ํŽ˜์ด์ง• ํ•˜๋Š” ๋“ฑ์˜ 4๋‹จ๊ณ„ ํŽ˜์ด์ง• ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. 64๋น„ํŠธ ๊ตฌ์กฐ๋Š” 7๋‹จ๊ณ„๋ฅผ ํŽ˜์ด์ง• ํ•ด์•ผ ํ•˜๋ฉฐ ๊ฐ ๋…ผ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๋งคํ•‘ํ•˜๊ธฐ ์œ„ํ•ด ๋„ˆ๋ฌด ๋งŽ์€ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ์„ ํ•„์š”๋กœ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋น„ํ˜„์‹ค์ ์ž…๋‹ˆ๋‹ค. ์ด ์˜ˆ์—์„œ ์ผ๋ฐ˜์ ์œผ๋กœ ์šฐ๋ฆฌ๋Š” 64๋น„ํŠธ ๊ตฌ์กฐ์—์„œ๋Š” ๊ณ„์ธต์  ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์ด ๋ถ€์ ํ•ฉํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

2. ํ•ด์‹œ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”(Hashed Page Table)

์ฃผ์†Œ ๊ณต๊ฐ„์ด 32๋น„ํŠธ๋ณด๋‹ค ์ปค์ง€๋ฉด ๊ฐ€์ƒ ์ฃผ์†Œ๋ฅผ ํ•ด์‹œ๋กœ ์‚ฌ์šฉํ•˜๋Š” ํ•ด์‹œ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ๋งŽ์ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ•ด์‹œ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์˜ ๊ฐ ํ•ญ๋ชฉ์€ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ณณ์—๋Š” ์ถฉ๋Œ์„ ์ผ์œผ์ผœ์„œ ๋ชจ๋‘ ์ด๊ณณ์œผ๋กœ ํ•ด์‹œ๋˜๋Š” ์›์†Œ๋“ค์ด ๋งค๋‹ฌ๋ฆฌ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ฐ ์›์†Œ๋Š” ์„ธ ๊ฐœ์˜ ํ•„๋“œ๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

  1. ๊ฐ€์ƒ ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ
  2. ๋งคํ•‘๋˜๋Š” ํŽ˜์ด์ง€ ํ”„๋ ˆ์ž„ ๋ฒˆํ˜ธ
  3. ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์ƒ์˜ ๋‹ค์Œ ์›์†Œ ํฌ์ธํ„ฐ

์—ฌ๊ธฐ์„œ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

  1. ๊ฐ€์ƒ ์ฃผ์†Œ ๊ณต๊ฐ„์œผ๋กœ๋ถ€ํ„ฐ ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ๊ฐ€ ์˜ค๋ฉด ๊ทธ๊ฒƒ์„ ํ•ด์‹ฑํ•œ๋‹ค.
  2. ๊ทธ๊ฒƒ์œผ๋กœ ํ•ด์‹œ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์—์„œ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋”ฐ๋ผ๊ฐ€๋ฉฐ ์ฒซ ๋ฒˆ์งธ ์›์†Œ์™€ ๊ฐ€์ƒ ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ๋ฅผ ๋น„๊ตํ•ด ๋ณธ๋‹ค.
  3. ๋งŒ์•ฝ ์ผ์น˜ํ•˜๋ฉด ๊ทธ์— ๋Œ€์‘ํ•˜๋Š” ํŽ˜์ด์ง€ ํ”„๋ ˆ์ž„ ๋ฒˆํ˜ธ๋ฅผ ๊ฐ€์ ธ์™€ ๋ฌผ๋ฆฌ ์ฃผ์†Œ๋ฅผ ์–ป๋Š”๋‹ค.
  4. ์ผ์น˜ํ•˜์ง€ ์•Š๋‹ค๋ฉด ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์˜ ๊ทธ๋‹ค์Œ ์›์†Œ๋กœ ๋˜‘๊ฐ™์€ ์ผ์„ ๋ฐ˜๋ณตํ•œ๋‹ค.

์•„๋ž˜ ์ด๋ฏธ์ง€๋Š” ์œ„ ๊ณผ์ •์„ ์ž˜ ๋‚˜ํƒ€๋‚ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•ด์‹œ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”

64๋น„ํŠธ ์‹œ์Šคํ…œ์—์„œ ์œ ์šฉํ•˜๋„๋ก ๋ณ€ํ˜•๋œ ํ•ด์‹œ ํ…Œ์ด๋ธ” ๊ธฐ๋ฒ•์ด ์ œ์•ˆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ณ€ํ˜• ๊ธฐ๋ฒ•์€ ํ•ด์‹œ ํ…Œ์ด๋ธ”๊ณผ ๋น„์Šทํ•œ ํด๋ผ์Šคํ„ฐ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ•ด์‹œ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์˜ ๊ฐ ํ•ญ๋ชฉ์ด ํ•œ ๊ฐœ์˜ ํŽ˜์ด์ง€๋งŒ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฒƒ์— ๋ฐ˜ํ•ด ํด๋Ÿฌ์Šคํ„ฐ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์˜ ๊ฐ ํ•ญ๋ชฉ์€ ์—ฌ๋Ÿฌ(์˜ˆ๋ฅผ ๋“ค๋ฉด 16๊ฐœ) ํŽ˜์ด์ง€๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ•œ ๊ฐœ์˜ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ํ•ญ๋ชฉ์ด ์—ฌ๋Ÿฌ ํŽ˜์ด์ง€ ํ”„๋ ˆ์ž„์— ๋Œ€ํ•œ ๋ณ€ํ™˜ ์ •๋ณด๋ฅผ ์ง€๋‹ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์€ ์„ฑ๊ธด(sparse, ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์—์„œ stack์˜์—ญ๊ณผ heap์˜์—ญ ์‚ฌ์ด์— ๋น„์–ด์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ) ์ฃผ์†Œ ๊ณต๊ฐ„์— ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ฆ‰ ๋ฉ”๋ชจ๋ฆฌ ์•ก์„ธ์Šค๊ฐ€ ๋น„์—ฐ์†์ ์ด๋ฉด์„œ ์ „ ์ฃผ์†Œ ๊ณต๊ฐ„์œผ๋กœ ๋„“๊ฒŒ ํผ์ ธ ๋‚˜์˜ค๋Š” ๊ฒฝ์šฐ์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

3. ์—ญ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”(Inverted Page Table)

๋ณดํ†ต ํ”„๋กœ์„ธ์Šค๋Š” ๊ฐ์ž ํ•˜๋‚˜์”ฉ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ๊ฐ€์ง€๊ณ  ๋˜ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์€ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ํŽ˜์ด์ง€๋งˆ๋‹ค ํ•˜๋‚˜์˜ ํ•ญ๋ชฉ์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค๋Š” ํŽ˜์ด์ง€์˜ ๊ฐ€์ƒ ์ฃผ์†Œ๋ฅผ ํ†ตํ•˜์—ฌ ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋Š” ์ž์—ฐ์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค. ์šด์˜์ฒด์ œ๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ฐ€์ƒ ํŽ˜์ด์ง€ ์ฃผ์†Œ๋ฅผ ์ œ์‹œํ•  ๋•Œ๋งˆ๋‹ค ๊ทธ๊ฒƒ์„ ์‹ค์ œ ํŽ˜์ด์ง€ ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜์‹œ์ผœ ์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์€ ๊ฐ€์ƒ ์ฃผ์†Œ์— ๋Œ€ํ•ด ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ๋˜์–ด ์žˆ๊ณ  ์šด์˜์ฒด์ œ๋Š” ํ…Œ์ด๋ธ” ๋‚ด์˜ ์–ด๋Š ๊ณณ์— ์›ํ•˜๋Š” ๋ฌผ๋ฆฌ ํŽ˜์ด์ง€๊ฐ€ ์žˆ๋Š”์ง€๋ฅผ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๊ณ , ์ด ๊ฐ’์„ ํ†ตํ•ด์„œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์•ก์„ธ์Šค ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ๋ฒ•์˜ ๋‹จ์  ์ค‘ ํ•˜๋‚˜๋Š” ๊ฐ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ํ•ญ๋ชฉ์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ˆ˜๋ฐฑ๋งŒ ๊ฐœ๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ…Œ์ด๋ธ”์€ ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ์˜ ์‚ฌ์šฉ์„ ์ถ”์ ํ•˜๊ธฐ ์œ„ํ•ด ๋งŽ์€ ์–‘์˜ ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์†Œ๋น„ํ•ฉ๋‹ˆ๋‹ค.

 ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ํ•œ ๋ฐฉ๋ฒ•์ด ์—ญ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”(inverted page table)์ž…๋‹ˆ๋‹ค. ์—ญ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์—์„œ๋Š” ๋ฉ”๋ชจ๋ฆฌ ํ”„๋ ˆ์ž„๋งˆ๋‹ค ํ•œ ํ•ญ๋ชฉ์”ฉ์„ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ํ•ญ๋ชฉ์€ ๊ทธ ํ”„๋ ˆ์ž„์— ์˜ฌ๋ผ์™€ ์žˆ๋Š” ํŽ˜์ด์ง€ ์ฃผ์†Œ, ๊ทธ๋ฆฌ๊ณ  ๊ทธ ํŽ˜์ด์ง€๋ฅผ ์†Œ์œ ํ•˜๊ณ  ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค์˜ ID๋ฅผ ํ‘œ์‹œํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋˜๋ฉด ์‹œ์Šคํ…œ์—๋Š” ๋‹จ ํ•˜๋‚˜์˜ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”๋งŒ์ด ์กด์žฌํ•˜๊ฒŒ ๋˜๊ณ , ํ…Œ์ด๋ธ” ๋‚ด ๊ฐ ํ•ญ๋ชฉ์€ ๋ฉ”๋ชจ๋ฆฌ ํ•œ ํ”„๋ ˆ์ž„์”ฉ์„ ๊ฐ€๋ฆฌํ‚ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ์ด๋ฏธ์ง€๋Š” ์—ญ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์˜ ์šด์šฉ ๋ฐฉ์‹์„ ๋‚˜ํƒœ๋‚ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์—ญ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”

์—ญ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์€ ์ข…์ข… ๊ฐ๊ฐ์˜ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ์—”ํŠธ๋ฆฌ์— ์ €์žฅ๋˜๋Š” ์ฃผ์†Œ ๊ณต๊ฐ„ ID(address-space indentifier)๋ฅผ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ฃผ์†Œ ๊ณต๊ฐ„ ID๋ฅผ ์ €์žฅํ•จ์œผ๋กœ์จ ํŠน์ • ํ”„๋กœ์„ธ์Šค์˜ ๋…ผ๋ฆฌ ํŽ˜์ด์ง€๊ฐ€ ๊ทธ์— ์ƒ์‘ํ•˜๋Š” ๋ฌผ๋ฆฌ ํŽ˜์ด์ง€ ํ”„๋ ˆ์ž„๊ณผ ๋งคํ•‘๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ๋ณด์žฅํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์‹œ์Šคํ…œ์ƒ์—์„œ ๊ฐ€์ƒ ์ฃผ์†Œ๋Š” ์„ธ ๊ฐ€์ง€ ํ•ญ๋ชฉ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

<process-id, page-number, offset>

  • ๊ฐ๊ฐ์˜ ์—ญ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์˜ ์—”ํŠธ๋ฆฌ๋Š” <process-id, page-number>์˜ ์Œ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์œผ๋ฉฐ, process-id๋Š” ์ฃผ์†Œ ๊ณต๊ฐ„ ID์˜ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฉ”๋ชจ๋ฆฌ ์ฐธ์กฐ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด, <process-id, page-number>์˜ ์Œ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๊ฐ€์ƒ ์ฃผ์†Œ์˜ ์ผ๋ถ€๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ํ•˜๋ถ€ ์‹œ์Šคํ…œ์— ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.
  • ์—ญ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์—์„œ ์ผ์น˜ํ•˜๋Š” ๊ฒƒ์ด ์žˆ๋Š”์ง€ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.
  • ์ผ์น˜ํ•˜๋Š” ๊ฒƒ์ด i๋ฒˆ์งธ ์—”ํŠธ๋ฆฌ์—์„œ ๋ฐœ๊ฒฌ๋˜๋ฉด ๋ฌผ๋ฆฌ ์ฃผ์†Œ๋Š” <i, offset>์ด ๋˜๊ณ , ์ผ์น˜ํ•˜๋Š” ๊ฒƒ์ด ์—†์œผ๋ฉด ์ž˜๋ชป๋œ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ์œผ๋กœ ๊ฐ„์ฃผํ•ฉ๋‹ˆ๋‹ค. 

์ด ๋ฐฉ๋ฒ•์€ ๋…ผ๋ฆฌ ํŽ˜์ด์ง€๋งˆ๋‹ค ํ•ญ๋ชฉ์„ ๊ฐ€์ง€๋Š” ๋Œ€์‹  ๋ฌผ๋ฆฌ ํ”„๋ ˆ์ž„์— ๋Œ€์‘๋˜๋Š” ํ•ญ๋ชฉ๋งŒ ํ…Œ์ด๋ธ”์— ์ €์žฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ์—์„œ ํ›จ์”ฌ ์ž‘์€ ๊ณต๊ฐ„์„ ์ ์œ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‹ค๋ฅธ ํ•œํŽธ ์—ญ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์€ ์ฃผ์†Œ๋ณ€ํ™˜ ์‹œ๊ฐ„์ด ๋” ์˜ค๋ž˜ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ญ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์€ ๋ฌผ๋ฆฌ ์ฃผ์†Œ์— ๋”ฐ๋ผ ์ •๋ ฌ๋˜์–ด ์žˆ๊ณ  ํƒ์ƒ‰์€ ๊ฐ€์ƒ ์ฃผ์†Œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•˜๋ฏ€๋กœ ํŽ˜์ด์ง€ ์ „์ฒด๋ฅผ ํƒ์ƒ‰ํ•˜์—ฌ์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋•Œ๋ฌธ์— ์ด ํƒ์ƒ‰์€ ๋งค์šฐ ์˜ค๋ž˜ ๊ฑธ๋ฆด ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ ์œ„์—์„œ ์„ค๋ช…ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ํ•˜๋‚˜ ๋˜๋Š” ๊ธฐ๊ปํ•ด์•ผ ๋ช‡ ๋ฒˆ์˜ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ํƒ์ƒ‰ํ•˜๋„๋ก ํ•ด์‹œ ํ…Œ์ด๋ธ”์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์ ‘๊ทผ๋งˆ๋‹ค ํ•ด์‹œ ํ…Œ์ด๋ธ”์„ ์ฐธ์กฐํ•ด์•ผ ํ•˜๋ฏ€๋กœ ๋ฉ”๋ชจ๋ฆฌ ์ฐธ์กฐ ํšŸ์ˆ˜๋ฅผ ์ฆ๊ฐ€์‹œํ‚ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.(ํ•ด์‹œ ํ…Œ์ด๋ธ” ํ•œ๋ฒˆ, ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ํ•œ๋ฒˆ). ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ์œ„ํ•˜์—ฌ ํ•ด์‹œ ํ…Œ์ด๋ธ”์ด ์ฐธ์กฐ๋˜๊ธฐ ์ „์— ์ด์ „ ๊ฒŒ์‹œ๊ธ€์— ์„ค๋ช…ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ TLB๊ฐ€ ์ฐธ์กฐ๋œ๋‹ค๋Š” ๊ฒƒ์„ ๊ธฐ์–ตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

 

[OS] ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ(1) - ๋ฌผ๋ฆฌ, ๋…ผ๋ฆฌ์ฃผ์†Œ ๋ฐ ์—ฐ์† ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น

๋ฐฐ๊ฒฝ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ๋Š” ํ˜„๋Œ€ ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์˜ ์šด์˜์— ์ค‘์‹ฌ์ ์ธ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ๋Š” ๊ฐ๊ฐ ์ฃผ์†Œ๊ฐ€ ํ• ๋‹น๋œ ์ผ๋ จ์˜ ๋ฐ”์ดํŠธ๋“ค๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. CPU๋Š” PC(program counter)๊ฐ€ ์ง€์‹œํ•˜๋Š” ๋Œ€๋กœ ๋ฉ”๋ชจ๋ฆฌ๋กœ๋ถ€ํ„ฐ ๋‹ค

dkswnkk.tistory.com

 

[OS] ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ(2) - ํŽ˜์ด์ง• ๊ธฐ๋ฒ•

์„œ๋ก  ์ง€๊ธˆ๊นŒ์ง€ ๋…ผ์˜๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋Š” ํ”„๋กœ์„ธ์Šค์˜ ๋ฌผ๋ฆฌ ๊ณต๊ฐ„์ด ์—ฐ์†์ ์ด์–ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ํ”„๋กœ์„ธ์Šค์˜ ๋ฌผ๋ฆฌ ์ฃผ์†Œ ๊ณต๊ฐ„์ด ์—ฐ์†๋˜์ง€ ์•Š์•„๋„ ๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๊ธฐ๋ฒ•์ธ ํŽ˜์ด์ง•์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด ๋ณด๊ฒ 

dkswnkk.tistory.com

 

[OS] ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ(3) - TLB(translation look-aside buffers)

์„œ๋ก  ์ด์ „ ๊ฒŒ์‹œ๊ธ€์—์„œ ํŽ˜์ด์ง• ๊ธฐ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์— ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ์ €์žฅํ•˜๋ฉด ๋ฌธ๋งฅ ๊ตํ™˜ ์†๋„๊ฐ€ ๋นจ๋ผ์ง€์ง€๋งŒ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๋ฉ”๋ชจ๋ฆฌ ์•ก์„ธ์Šค๋ฅผ ํ•จ์œผ๋กœ์จ

dkswnkk.tistory.com

์ด๋ฒˆ ๊ฒŒ์‹œ๊ธ€๋กœ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์— ๋Œ€ํ•œ ์ •๋ฆฌ๋ฅผ ๋๋‚ด๊ณ  ๋‹ค์Œ ๊ฒŒ์‹œ๊ธ€๋ถ€ํ„ฐ๋Š” ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์— ๋Œ€ํ•ด ํ•œ๋ฒˆ ์ •๋ฆฌํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋Œ“๊ธ€