ํŽ˜์ด์ง•์ด๋ž€?

2022. 11. 4. 15:35ใ†๐Ÿคฟ ์ˆจ์ฐธ๊ณ  Deep Dive

๐Ÿ“Œ ํŽ˜์ด์ง•์€ ํ”„๋กœ์„ธ์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์ผ์ •ํ•œ ํฌ๊ธฐ์˜ Page ๋กœ ๋‚˜๋ˆ„์–ด ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ, ์ด๋•Œ ์ ์žฌ ๋˜๋Š” ์œ„์น˜๋Š” ๊ผญ ์—ฐ์†์ ์ด์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค. ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ๋Š” ํŽ˜์ด์ง€์™€ ๊ฐ™์€ ํฌ๊ธฐ์˜ frame ์œผ๋กœ ๋ฏธ๋ฆฌ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ์–ด, ํ”„๋กœ์„ธ์Šค์˜ ๋…ผ๋ฆฌ์  ์ฃผ์†Œ๋ฅผ frame์— ๋ถ„์‚ฐ์‹œ์ผœ ์ ์žฌํ•œ๋‹ค. 

 

๐Ÿ™‹๐Ÿป‍โ™‚๏ธ ์™œ ์ž๋ฅด์ง€?

๋น„๊ต์  ํฌ๊ธฐ๊ฐ€ ํฐ A ํ”„๋กœ์„ธ์Šค๊ฐ€ ์กด์žฌํ•  ๋•Œ, ๋ฉ”๋ชจ๋ฆฌ ์ƒ์—์„œ B, C ๋ผ๋Š” ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋“ค์ด ์ž‘์—…์ค‘์ด๋ผ๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž. ํฌ๊ธฐ๊ฐ€ ํฐ A ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ ํ•  ์—ฌ๋ถ„์˜ ๊ณต๊ฐ„์ด ์•ˆ์ƒ๊ธด๋‹ค๋ฉด, A ํ”„๋กœ์„ธ์Šค๋Š” B, C ์˜ ์ž‘์—…์ด ๋๋‚  ๋•Œ๊นŒ์ง€ ๋Œ€๊ธฐ๋งŒ ํ•ด์•ผํ•œ๋‹ค. ํ•˜์ง€๋งŒ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ผ์ •ํ•œ ํฌ๊ธฐ๋กœ ๋‚˜๋ˆ„์–ด ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด, ํฌ๊ธฐ๊ฐ€ ํฐ A ํ”„๋กœ์„ธ์Šค๋„ ์ผ์ • ๋ถ€๋ถ„ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ๋  ์ˆ˜ ์žˆ๋‹ค.

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

 

๐Ÿ™‹๐Ÿป‍โ™‚๏ธ ์™œ ์ผ์ • ํฌ๊ธฐ๋กœ ์ž๋ฅด์ง€?

์™ธ๋ถ€ ๋‹จํŽธํ™” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ.

๋ถˆ๊ท ํ˜•ํ•œ ํฌ๊ธฐ๋กœ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋‚˜๋ˆ„์–ด ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌํ•˜๋ฉด, ๋ฉ”๋ชจ๋ฆฌ ์ƒ์—์„œ๋Š” ์ž‘์€ ํ‹ˆ(hole)์ด ์ƒ๊ธด๋‹ค. ์ด๋Ÿฌํ•œ hole ๋“ค๋กœ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์กฐ๊ฐ๋‚˜ ์žˆ์œผ๋ฉด, ์ถฉ๋ถ„ํ•œ ์—ฌ์œ ๊ณต๊ฐ„์ด ์žˆ์Œ์—๋„ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ ์žฌํ•˜์ง€ ๋ชปํ•˜๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•œ๋‹ค.

 

๐Ÿ™‹๐Ÿป‍โ™‚๏ธ ํŽ˜์ด์ง•์€ ์–ด๋–ค ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์ง€?

์™ธ๋ถ€ ๋‹จํŽธํ™” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. 

์™ธ๋ถ€ ๋‹จํŽธํ™”๋ž€, ๋ฉ”๋ชจ๋ฆฌ ์ƒ ์—ฌ์œ  ๊ณต๊ฐ„์ด ์กด์žฌํ•˜์ง€๋งŒ, ๊ทธ ํฌ๊ธฐ๊ฐ€ ์ž‘์•„ ํ™œ์šฉํ•  ์ˆ˜ ์—†๋Š” ์ƒํ™ฉ์„ ์˜๋ฏธํ•œ๋‹ค.

 

๐Ÿ™‹๐Ÿป‍โ™‚๏ธ ํŽ˜์ด์ง•์ด ์–ด๋–ป๊ฒŒ ์™ธ๋ถ€ ๋‹จํŽธํ™” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์ง€?

ํŽ˜์ด์ง•์€ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ผ์ •ํ•œ ํฌ๊ธฐ๋กœ ๋‚˜๋ˆ„์–ด ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌํ•œ๋‹ค. ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์€ ํŽ˜์ด์ง€ ํฌ๊ธฐ์™€ ๋™์ผํ•˜๊ฒŒ ๊ตฌ์—ญ(Frame)์„ ๋‚˜๋ˆ„์–ด ํŽ˜์ด์ง€๋ฅผ ์ ์žฌํ•œ๋‹ค. ๋ชจ๋‘ ์ผ์ •ํ•œ ํฌ๊ธฐ๋กœ ๊ท ๋“ฑํ•˜๊ฒŒ ์ ์žฌ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ ์—ฌ์œ  ๊ณต๊ฐ„์ธ hole ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค. 

 

๐Ÿ™‹๐Ÿป‍โ™‚๏ธ ๊ทธ๋Ÿผ ํŽ˜์ด์ง•์€ ๋ชจ๋“  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š”๊ฐ€?

ํŽ˜์ด์ง•์—์„œ๋Š” ๋ฐ˜๋Œ€๋กœ ๋‚ด๋ถ€ ๋‹จํŽธํ™” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๐Ÿ“Œ ๋‚ด๋ถ€ ๋‹จํŽธํ™”๋ž€?

๋‚ด๋ถ€ ๋‹จํŽธํ™”๋Š” ํ”„๋กœ์„ธ์Šค์—๊ฒŒ ํ•„์š”ํ•œ ์–‘๋ณด๋‹ค ๋” ํฐ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ• ๋‹น๋˜์–ด์„œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด ๋‚ญ๋น„๋˜๋Š” ์ƒํ™ฉ์„ ๋œปํ•œ๋‹ค.

ํŽ˜์ด์ง•์€ ์ผ์ •ํ•œ ํฌ๊ธฐ์˜ ํŽ˜์ด์ง€๋กœ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋‚˜๋ˆ„์–ด ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌํ•˜๋Š”๋ฐ, ์ด๋•Œ ํ”„๋กœ์„ธ์Šค์˜ ํฌ๊ธฐ๊ฐ€ ๊ผญ ํŽ˜์ด์ง€์˜ ๋ฐฐ์ˆ˜๊ฐ€ ์•„๋‹ ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰ ํ”„๋กœ์„ธ์Šค์˜ ๋งˆ์ง€๋ง‰ ํŽ˜์ด์ง€๋Š” ํ• ๋‹น๋ฐ›์€ ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ๋ณด๋‹ค ์ž‘๊ธฐ ๋•Œ๋ฌธ์—, ํ•ด๋‹น ํŽ˜์ด์ง€์—์„œ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ์—ฌ์œ  ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. 

 

C ์ž‘์—… ์ฒ˜๋Ÿผ ๋ฉ”๋ชจ๋ฆฌ ์ƒ์—์„œ ์—ฌ๋ถ„์˜ ์ž‘์€ ๊ณต๊ฐ„์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์„ ๋‚ด๋ถ€ ๋‹จํŽธํ™”๋ผ๊ณ  ํ•œ๋‹ค. 

 

๐Ÿ™‹๐Ÿป‍โ™‚๏ธ ํ•œ ํŽ˜์ด์ง€์˜ ํฌ๊ธฐ๋Š” ์–ด๋–ป๊ฒŒ ๋˜์ง€?

์ผ๋ฐ˜์ ์œผ๋กœ ํ•œ ํŽ˜์ด์ง€์˜ ํฌ๊ธฐ๋Š” 4kB ~ 4MB ๋กœ ์•Œ๋ ค์ ธ์žˆ๋‹ค.

ํŽ˜์ด์ง€์˜ ํฌ๊ธฐ๋Š” ํ•˜๋“œ์›จ์–ด์— ์˜ํ•ด ์ •์˜๋œ๋‹ค. ๋Œ€๊ฐœ ์ปดํ“จํ„ฐ ๊ตฌ์กฐ์— ๋”ฐ๋ผ 512 Byte์—์„œ 16MB ์‚ฌ์ด์ด๋ฉฐ 2์˜ ์ œ๊ณฑ์œผ๋กœ ์ฆ๊ฐ€ํ•œ๋‹ค. 

 

๐Ÿ™‹๐Ÿป‍โ™‚๏ธ ํŽ˜์ด์ง€์˜ ํฌ๊ธฐ๋Š” ์ž‘์€๊ฒŒ ์ข‹์„๊นŒ? ํฐ๊ฒŒ ์ข‹์„๊นŒ?

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

 

๐Ÿ™‹๐Ÿป‍โ™‚๏ธ ์–ด๋–ค ์žฅ์ ์ด ์žˆ์ง€?

์™ธ๋ถ€ ๋‹จํŽธํ™” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

๐Ÿ™‹๐Ÿป‍โ™‚๏ธ ์–ด๋–ค ๋‹จ์ ์ด ์žˆ์ง€?

๋‚ด๋ถ€ ๋‹จํŽธํ™” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ๋‚ด๋ถ€ ๋‹จํŽธํ™”๋ž€, ํ”„๋กœ์„ธ์Šค์˜ ๋‹จ์œ„ ํŽ˜์ด์ง€๊ฐ€ ํ•„์š”๋กœ ํ•˜๋Š” ๊ฒƒ ๋ณด๋‹ค ๋” ํฐ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ• ๋‹น๋˜์–ด ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋‚ญ๋น„๋˜๋Š” ์ƒํ™ฉ์„ ์˜๋ฏธํ•œ๋‹ค.

 

๐Ÿ™‹๐Ÿป‍โ™‚๏ธ Page fault ๊ฐ€ ๋ญ์ง€?

์‚ฌ์ „์  ์ •์˜ : CPU ๊ฐ€ ๋ฌดํšจ ๋น„ํŠธ(invalid bit)๋กœ ํ‘œ์‹œ๋œ Page ์— ์ ‘๊ทผํ•˜๋Š” ์ƒํ™ฉ.

CPU๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์ƒ์—์„œ ์ฐพ๊ณ ์ž ํ•˜๋Š” ๋ช…๋ น์–ด(ํŽ˜์ด์ง€ ์กฐ๊ฐ)๋ฅผ ์ฐพ์ง€ ๋ชปํ•œ ๊ฒฝ์šฐ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์ฆ‰ ์•„์ง ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ๋˜์ง€ ์•Š์€ ํŽ˜์ด์ง€๋ฅผ CPU ๊ฐ€ ์ฐพ์œผ๋ ค๊ณ  ํ•˜๋ฉด page fault ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. 

 

๐Ÿ™‹๐Ÿป‍โ™‚๏ธ Page fault ๋ฐœ์ƒ ๊ณผ์ •

1. Cpu ๊ฐ€ Page N ์„ ์ฐธ์กฐํ•˜๊ธฐ ์œ„ํ•ด ์ ‘๊ทผ

2. ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์—์„œ Page N ์ด ๋ฌดํšจ ์ƒํƒœ์ž„์„ ํ™•์ธ

3. MMU ์—์„œ Page Fault Trap ๋ฐœ์ƒ

4. ๋””์Šคํฌ์—์„œ Page N ์„ ๋นˆ ํ”„๋ ˆ์ž„์— ์ ์žฌํ•˜๊ณ  page Table ์„ ์—…๋ฐ์ดํŠธ ํ•œ๋‹ค. (invalid -> valid)

 

MMU(Memory Management Unit)๋ž€ ๊ฐ€์ƒ ์ฃผ์†Œ๋ฅผ ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ๋Š” ํ•˜๋“œ์›จ์–ด ์žฅ์น˜์ž…๋‹ˆ๋‹ค.

 

ref

https://jhnyang.tistory.com/290

https://100100e.tistory.com/282