์šด์˜์ฒด์ œ4

๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ์ „๋žต

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

swapping: ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ๋ฒ•. CPU ํ• ๋‹น ์‹œ๊ฐ„์ด ๋๋‚œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋ณด์กฐ ๊ธฐ์–ต์žฅ์น˜(ํ•˜๋“œ๋””์Šคํฌ)๋กœ ๋‚ด๋ณด๋‚ด๊ณ  ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋ถˆ๋Ÿฌ ๋“ค์ผ ์ˆ˜ ์žˆ๋‹ค.

โญ๋‹จํŽธํ™” (Fragementation)

: ํ”„๋กœ์„ธ์Šค๋“ค์ด ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ๋˜๊ณ  ์ œ๊ฑฐ๋˜๋Š” ์ผ์ด ๋ฐ˜๋ณต๋˜๋‹ค๋ณด๋ฉด ํ”„๋กœ์„ธ์Šค ์‚ฌ์ด์— ๋„ˆ๋ฌด ์ž‘์•„์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๊ณต๊ฐ„๋“ค์ด ๋Š˜์–ด๋‚˜๊ฒŒ ๋˜๋Š”๋ฐ ์ด๋ฅผ ๋‹จํŽธํ™”๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

  • ์™ธ๋ถ€ ๋‹จํŽธํ™”

    : ์ด ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์€ ์š”๊ตฌํ•˜๋Š” ๊ณต๊ฐ„์„ ๋งŒ์กฑํ•˜์ง€๋งŒ ์—ฐ์†๋˜์ง€ ์•Š๋Š”๋‹ค.

  • ๋‚ด๋ถ€ ๋‹จํŽธํ™”

    : ์š”์ฒญ์˜ ํฌ๊ธฐ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์˜ ์ตœ์†Œ ํ• ๋‹น ํฌ๊ธฐ๋ณด๋‹ค ์ž‘์€ ๊ฒฝ์šฐ์— ๋ฐœ์ƒ

์™ธ๋ถ€ ๋‹จํŽธํ™” ๋ฌธ์ œ์˜ ํ•ด๊ฒฐ

  • ๋ฉ”๋ชจ๋ฆฌ ์••์ถ• (ํ•˜๋“œ๋””์Šคํฌ ์กฐ๊ฐ ๋ชจ์Œ๊ณผ ์œ ์‚ฌ)

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

  • ํŽ˜์ด์ง•๊ณผ ์„ธ๊ทธ๋ฉ˜ํ…Œ์ด์…˜

    : ํ•œ ํ”„๋กœ์„ธ์Šค์˜ ๋…ผ๋ฆฌ ์ฃผ์†Œ ๊ณต๊ฐ„์„ ์—ฌ๋Ÿฌ ๊ฐœ๋กœ ๋ถ„ํ• ํ•˜์—ฌ ๋น„์—ฐ์†์ ์ธ ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ํ• ๋‹นํ•œ๋‹ค.

ํŽ˜์ด์ง•

๋…ผ๋ฆฌ ์ฃผ์†Œ ๊ณต๊ฐ„์ด ํ•˜๋‚˜์˜ ์—ฐ์†์ ์ธ ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ๋“ค์–ด๊ฐ€์•ผ ํ•˜๋Š” ์ œ์•ฝ์„ ํ•ด๊ฒฐํ•œ๋‹ค. ์Šค์™€ํ•‘ ํ•˜๋Š” ๊ฒฝ์šฐ์—๋„ ๋””์Šคํฌ์— ์—ฐ์†์ ์œผ๋กœ ์ €์žฅ๋  ํ•„์š”๊ฐ€ ์—†๋‹ค.

  • ํ•„์š”์กฐ๊ฑด

    1. ๋…ผ๋ฆฌ ์ฃผ์†Œ ๊ณต๊ฐ„๊ณผ ๋ฌผ๋ฆฌ ์ฃผ์†Œ ๊ณต๊ฐ„์„ ๋ถ„๋ฆฌํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ฃผ์†Œ์˜ ๋™์  ์žฌ๋ฐฐ์น˜๋ฅผ ํ—ˆ์šฉํ•ด์•ผ ํ•œ๋‹ค.
    2. ์ „์šฉ ํ•˜๋“œ์›จ์–ด (MMU)

    ๋…ผ๋ฆฌ ์ฃผ์†Œ์™€ ๋ฌผ๋ฆฌ ์ฃผ์†Œ์˜ ๋ณ€ํ™˜์„ ์œ„ํ•ด ํ•„์š”ํ•˜๋‹ค.

ํ”„๋ ˆ์ž„

: ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ์˜ ๊ณ ์ • ํฌ๊ธฐ ๋ธ”๋ก

ํŽ˜์ด์ง€

: ๋…ผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ์˜ ๊ณ ์ • ํฌ๊ธฐ ๋ธ”๋ก (ํ”„๋ ˆ์ž„๊ณผ ๊ฐ™์€ ํฌ๊ธฐ)

image-20191014200146075

ํŽ˜์ด์ง• ํ•˜๋“œ์›จ์–ด - MMU

image-20191014200305051

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

ํ”„๋ ˆ์ž„ ํ…Œ์ด๋ธ”

์šด์˜์ฒด์ œ๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ํ”„๋ ˆ์ž„์˜ ์‚ฌ์šฉ ์ •๋ณด๋ฅผ ์ €์žฅ.

ํŽ˜์ด์ง•๊ณผ ๋ฌธ๋งฅ ๊ตํ™˜

ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ์žฌ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•ด ๋ฌธ๋งฅ ๊ตํ™˜ ์‹œ๊ฐ„์ด ์ฆ๊ฐ€ํ•˜๊ฒŒ ๋œ๋‹ค.

๊ณต์œ  ํŽ˜์ด์ง€

๋น„๊ต์  ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ฉ”๋ชจ๋ฆฌ ๊ณต์œ ๋ฅผ ์ง€์›ํ•œ๋‹ค.

ํŽ˜์ด์ง€ํ…Œ์ด๋ธ”์˜ ๊ตฌํ˜„

์œ ์˜ํ•ด์•ผํ•  ์ ์€ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”๋„ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

image-20191014203121245

TLB miss๊ฐ€ ๋‚˜๋ฉด TLB๊ฐ€ ์—†์„ ๋•Œ๋ณด๋‹ค ์„ฑ๋Šฅ์ด ์•ˆ ์ข‹๋‹ค. ๊ทธ๋ž˜์„œ ์ตœ๋Œ€ํ•œ TLB hit๊ฐ€ ๋งŽ์ด ๋‚˜๋„๋ก ์„ค๊ณ„๋˜์–ด์•ผ ํ•œ๋‹ค.

TLB (Translation Look-aside Buffer)

TLB miss๊ฐ€ ๋‚ฌ์„ ๋•Œ ๊ต์ฒด๋ฅผ ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ๋‚˜์ค‘์— hit๊ฐ€ ๋‚  ํ™•๋ฅ ์ด ๋†’์•„์งˆ๊นŒ?

Address-space Identifier (ASID)

Effective Memory-Accesss Time (EAT)

EAT=(m+ฯต)ฮฑ+(2m+ฯต)(1โˆ’ฮฑ),ฯต=TLBย successย time,m=Memoryย accessย time,ฮฑ=TLBย hitย ratioEAT = (m+\epsilon)\alpha +(2m+\epsilon)(1-\alpha), \epsilon=\text{TLB success time}, m=\text{Memory access time}, \alpha=\text{TLB hit ratio}

TLB hit ๋ฉด ๋ฌผ๋ฆฌ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ์‹œ๊ฐ„๊ณผ TLB ์ ‘๊ทผ ์‹œ๊ฐ„์ด, ์‹คํŒจ๋ฉด ๋‘ ๋ฒˆ์˜ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ๊ณผ TLB ์ ‘๊ทผ ์‹œ๊ฐ„์ด ์†Œ์š”๋œ๋‹ค.

ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์˜ ๊ตฌ์กฐ

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

๊ทธ๋ž˜์„œ ํฌ๊ธฐ๊ฐ€ ํฐ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์ด ์กด์žฌํ•œ๋‹ค.

  1. ๊ณ„์ธต์  ํŽ˜์ด์ง•

    ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ์ž์ฒด๋ฅผ ๋‹ค์‹œ ํŽ˜์ด์ง• = ์™ธ๋ถ€ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”

    ๏ฟผ image-20191014212153616

    ์œ„ ๊ทธ๋ฆผ์€ 2๋‹จ๊ณ„ ํŽ˜์ด์ง•์„ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ์ด๋‹ค.

    ํ•˜์ง€๋งŒ ๊ณ„์ธต์  ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์˜ ํ•œ๊ณ„๊ฐ€ ์กด์žฌํ•œ๋‹ค. ํŽ˜์ด์ง€ ๋‹จ๊ณ„๊ฐ€ ๋Š˜์–ด๋‚  ์ˆ˜๋ก ๋น„ํšจ์œจ์ ์ด๋‹ค. ์ด๋ฏธ 64๋น„ํŠธ ์ฒด์ œ์—์„œ ์“ฐ๊ธฐ ํž˜๋“ค๋‹ค. ๊ทธ๋ž˜์„œ ์œ ํšจํ•œ ํŽ˜์ด์ง€๋“ค๋งŒ ํ…Œ์ด๋ธ”์— ํฌํ•จํ•˜๋Š” ํ•ด์‹ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ํšจ์œจ์„ฑ์„ ๋†’์ธ๋‹ค.

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

    ๋…ผ๋ฆฌ ์ฃผ์†Œ์˜ ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ๋ฅผ ํ•ด์‹œ ๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

    image-20191014213117805

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

    ๋ฌผ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๋…ผ๋ฆฌ ์ฃผ์†Œ๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ํ…Œ์ด๋ธ”. RAM์˜ ํ”„๋ ˆ์ž„ ๋ฒˆํ˜ธ๋ฅผ ์ธ๋ฑ์Šค๋กœ ํ•˜์—ฌ ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค. ํ•œ ์‹œ์Šคํ…œ์— ํ•œ ๊ฐœ์˜ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”๋งŒ ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ฃผ์†Œ ๊ณต๊ฐ„์„ ์ด์šฉํ•˜์—ฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ตฌ๋ถ„์‹œ์ผœ์•ผ ํ•œ๋‹ค.

    ๐Ÿ˜„ ์žฅ์ 

    ์ž‘์€ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด ํ•„์š”ํ•˜๋‹ค

    ๐Ÿ˜ž ๋‹จ์ 

    ์ฃผ์†Œ ๋ณ€ํ™˜ ์‹œ๊ฐ„์ด ๊ธธ์–ด์ง (๊ฒ€์ƒ‰ ๋น„์šฉ ์ฆ๊ฐ€), ๋ฉ”๋ชจ๋ฆฌ ๊ณต์œ ๊ฐ€ ์–ด๋ ต๋‹ค.

    image-20191014213839347

์„ธ๊ทธ๋ฉ˜ํ…Œ์ด์…˜

์‚ฌ์šฉ์ž/ํ”„๋กœ๊ทธ๋ž˜๋จธ ๊ด€์ ์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๊ธฐ๋ฒ•์ด๋‹ค. ํŽ˜์ด์ง•๊ณผ ๋‹ค๋ฅธ ์ ์€ ๊ณ ์ •๋œ ํฌ๊ธฐ๋กœ ๋ถ„ํ• ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ๋…ผ๋ฆฌ์ ์œผ๋กœ โ€ฆ

์„ธ๊ทธ๋จผํŠธ์˜ ์˜ˆ์‹œ

  • ํ”„๋กœ๊ทธ๋žจ์˜ ๋…ผ๋ฆฌ์  ๋‹จ์œ„

    : method, procedure, function, object, โ€ฆ

  • C ์ปดํŒŒ์ผ๋Ÿฌ ๊ด€์ 

    : ์ฝ”๋“œ, ์ „์—ญ ๋ณ€์ˆ˜, ํž™, ์Šคํƒ, ํ‘œ์ค€ C ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

ํŽ˜์ด์ง•์˜ ๋ชฉ์ ๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ตฌ๋ถ„ํ•˜๋ ค๋Š” ๋А๋‚Œ? โ€ฆ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋„๋ก

์‹ค์ œ๋กœ๋Š” ํŽ˜์ด์ง•๊ณผ ์„ธ๊ทธ๋ฉ˜ํ…Œ์ด์…˜์„ ์„ž์–ด์„œ segmented paging์„ ์‚ฌ์šฉํ•œ๋‹ค.

์„ธ๊ทธ๋จผํŠธ ํ…Œ์ด๋ธ”

์„ธ๊ทธ๋จผํŠธ๊ฐ€ ์‚ฌ์ƒ๋˜๋Š” ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ์˜ ์ฃผ์†Œ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

image-20191014214331896

๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ

ํ”„๋กœ์„ธ์Šค ์ „์ฒด๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์˜ค์ง€ ์•Š๋”๋ผ๋„ ์‹คํ–‰์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•˜๋Š” ๊ธฐ๋ฒ•์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ์ด ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ๋ณด๋‹ค ์ปค๋„ ๋œ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ์™€ ์‚ฌ์šฉ์ž์˜ ๋…ผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋ถ„๋ฆฌํ•œ๋‹ค. ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์‹œ ๋ชจ๋“  ๋ถ€๋ถ„์ด ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ๋  ํ•„์š”๊ฐ€ ์—†๋‹ค๋Š” ์ ์— ๊ธฐ๋ฐ˜ํ•œ๋‹ค. ex. ์‹คํ–‰๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋‚ฎ์€ ์ฝ”๋“œ, ๊ณผ๋„ํ•˜๊ฒŒ ํฌ๊ฒŒ ์„ ์–ธ๋œ ๋ฐ์ดํ„ฐ ์˜์—ญ, ํ”„๋กœ๊ทธ๋žจ์˜ ์˜ต์…˜ ๋ถ€๋ถ„์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์ฝ”๋“œ

image-20191022183458668

๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ๋ณด๋‹ค ํฌ๊ธฐ๊ฐ€ ํฐ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ํŠน์ • ์˜์—ญ์€ ๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜์— ์ €์žฅํ•œ๋‹ค.

๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์˜ ์žฅ์  ๐Ÿ˜„

  1. ํ”„๋กœ๊ทธ๋žจ์€ ์‹ค์ œ ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ์˜ ํฌ๊ธฐ์— ์ œํ•œ์„ ๋ฐ›์ง€ ์•Š๋Š”๋‹ค.
  2. ๋” ๋งŽ์€ ํ”„๋กœ๊ทธ๋žจ์„ ๋™์‹œ์— ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.
  3. ํ”„๋กœ๊ทธ๋žจ์˜ ์Šค์™‘์— ํ•„์š”ํ•œ ์ž…์ถœ๋ ฅ์ด ๊ฐ์†Œํ•œ๋‹ค.

๊ฐ€์ƒ ์ฃผ์†Œ ๊ณต๊ฐ„ (Virtual Address Space)

์‚ฌ์šฉ์ž/ํ”„๋กœ์„ธ์Šค์˜ ๋…ผ๋ฆฌ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŠน์ง•์„ ๊ฐ–๋Š”๋‹ค.

  • 0๋ฒˆ์ง€ ๋ถ€ํ„ฐ ์‹œ์ž‘
  • MMU์— ์˜ํ•ด ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜
  • ํž™๊ณผ ์Šคํƒ์€ ๋™์ ์œผ๋กœ ํฌ๊ธฐ๊ฐ€ ๋ณ€ํ™”

    ์‹ค์ œ๋กœ ๋™์  ํ• ๋‹น๋˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ•„์š”๋กœ ํ•œ๋‹ค.

  • ๋นˆ ๊ณต๊ฐ„์„ ํฌํ•จํ•œ๋‹ค (sparse address space)

๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‘ ๊ฐ€์ง€ ํ•ต์‹ฌ ๊ธฐ์ˆ ์ด ํ•„์š”ํ•˜๋‹ค.

  1. ์š”๊ตฌ ํŽ˜์ด์ง•

    • ์Šค์™‘๋œ ํŽ˜์ด์ง€๋ฅผ ํ•„์š”ํ•  ๋•Œ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌํ•œ๋‹ค. ์ฆ‰, ์š”๊ตฌ ๋ ๋•Œ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌํ•œ๋‹ค.
    • ๊ธฐ๋ณธ์ ์ธ ํŽ˜์ด์ง€ ๊ธฐ๋ฒ•์— ๋”ฐ๋ผ ์ฃผ์†Œ ๋ณ€ํ™˜
  2. ํŽ˜์ด์ง€ ๊ต์ฒด

    • ๋ฉ”๋ชจ๋ฆฌ์˜ ๊ณต๊ฐ„์ด ๋ถ€์กฑํ•˜๋ฉด ํŠน์ • ํŽ˜์ด์ง€๋ฅผ ์Šค์™‘ํ•˜์—ฌ ๊ต์ฒดํ•œ๋‹ค.
    • ์–ด๋–ค ํŽ˜์ด์ง€๋ฅผ ๊ต์ฒดํ• ์ง€ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ์ด ์„ฑ๋Šฅ์— ๋งŽ์€ ์˜ํ–ฅ์„ ๋ฏธ์นœ๋‹ค.

Demand Paging

๋…ผ๋ฆฌ ์ฃผ์†Œ ๊ณต๊ฐ„์˜ ๊ฐ ํŽ˜์ด์ง€๊ฐ€ ์‹ค์ œ๋กœ ํ•„์š”ํ•ด ์งˆ ๋•Œ ์ ์žฌํ•œ๋‹ค. ์‚ฌ์šฉ๋˜์ง€ ์•Š์€ ํŽ˜์ด์ง€๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ด ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ์˜ ํ•„์š” ์šฉ๋Ÿ‰์„ ๊ฐ์†Œ์‹œํ‚ค๊ณ  ์Šค์™‘์— ํ•„์š”ํ•œ ์‹œ๊ฐ„์„ ๊ฐ์†Œ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

demand paging์€ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ์ค‘์š”ํ•œ ๊ธฐ์ˆ ๋กœ ์„ธ๊ทธ๋ฉ˜ํ…Œ์ด์…˜ ์‹œ์Šคํ…œ์—์„œ๋„ ํŽ˜์ด์ง•๊ณผ ๊ฒฐํ•ฉํ•˜์—ฌ ๊ตฌํ˜„ํ•œ๋‹ค.

์Šค์™€ํ•‘ ๊ธฐ๋ฒ•๊ณผ ์œ ์‚ฌํ•˜์ง€๋งŒ ์ฐจ์ด์ ์ด ์žˆ๋‹ค.

  • ์Šค์™€ํ•‘์€ ํ”„๋กœ์„ธ์Šค ์ „์ฒด๋ฅผ ์ €์žฅ/๋ณต๊ตฌํ•˜๋Š” ๋ฐ˜๋ฉด demand paging์€ ํ•„์š”ํ•œ ํŽ˜์ด์ง€๋งŒ ์ €์žฅ/๋ณต๊ตฌํ•œ๋‹ค.
  • ๊ทธ๋ž˜์„œ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์—์„œ๋Š” swapper๋ผ๋Š” ์šฉ์–ด๋ณด๋‹ค pager๋ผ๋Š” ์šฉ์–ด๊ฐ€ ์ ํ•ฉํ•˜๋‹ค.

์š”๊ตฌ ํŽ˜์ด์ง• vs. ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”

์š”๊ตฌ ํŽ˜์ด์ง•์€ ํŽ˜์ด์ง€์˜ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํ•˜๋“œ์›จ์–ด๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ์— ์กด์žฌํ•˜๋Š” ํŽ˜์ด์ง€๋„ ์žˆ๊ณ  ์•„๋‹Œ ํŽ˜์ด์ง€๋„ ์žˆ์œผ๋‹ˆ๊นŒ.

  • ์œ ํšจ/๋ฌดํšจ ๋น„ํŠธ (valid/invalid bit)
image-20191022185804799

๋ฌดํšจ๋กœ ์„ค์ •๋œ ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•˜๊ฒŒ ๋˜๋ฉด

  1. page fault trap ๋ฐœ์ƒ (page fault interrupt)
  2. ํ”„๋กœ์„ธ์Šค์˜ ์‹คํ–‰ ์ค‘๋‹จ & ํ•„์š”ํ•œ ํŽ˜์ด์ง€๋ฅผ ์ ์žฌํ•˜๋Š” ์ž…์ถœ๋ ฅ์ด ๋ฐœ์ƒ

    : ์ƒˆ๋กœ์šด ํ”„๋กœ์„ธ์Šค๊ฐ€ CPU๋ฅผ ํ• ๋‹น ๋ฐ›๊ณ , ํŽ˜์ด์ง€ ํดํŠธ๊ฐ€ ์ฒ˜๋ฆฌ๋˜๊ณ  ๋‚œ ํ›„ ์ธํ„ฐ๋ŸฝํŠธ์— ์˜ํ•ด ์ค‘๋‹จ๋œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์žฌ์‹œ์ž‘๋œ๋‹ค.

ํŽ˜์ด์ง€ ํดํŠธ ์ฒ˜๋ฆฌ

image-20191022190225001

  1. ์œ ํšจํ•˜์ง€ ์•Š์€ ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•œ๋‹ค.
  2. page fault trap์ด ๋ฐœ์ƒํ•œ๋‹ค.
  3. OS๋Š” ์š”๊ตฌ๋œ ํŽ˜์ด์ง€๋ฅผ ์ €์žฅ์žฅ์น˜์—์„œ ์ฐพ๋Š”๋‹ค.
  4. ์š”๊ตฌ๋œ ํŽ˜์ด์ง€๋ฅผ ์ €์žฅ์žฅ์น˜๋กœ ๋ถ€ํ„ฐ ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ๋กœ ์˜ฌ๋ฆฐ๋‹ค.
  5. ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•œ๋‹ค. (valid bit๋กœ ๋ณ€๊ฒฝ & ์ฃผ์†Œ๊ฐ’ ๋ณ€๊ฒฝ)
  6. waiting ์ƒํƒœ์— ์žˆ๋˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ์žฌ์‹œ์ž‘ํ•˜๋Š” interrupt๋ฅผ ๋ฐœ์ƒ์‹œํ‚จ๋‹ค.

ํŽ˜์ด์ง€ ํดํŠธ๋Š” TLB miss๋ž‘ ๋‹ค๋ฅด๊ฒŒ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ 2๋ฒˆ ์ฐธ์กฐํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํ•˜๋“œ ๋””์Šคํฌ๋ฅผ ์ ‘๊ทผ (I/O) ํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋งค์šฐ ์น˜๋ช…์ ์ด๋‹ค.

์š”๊ตฌ ํŽ˜์ด์ง•์˜ ์„ฑ๋Šฅ

ํŽ˜์ด์ง€ ํดํŠธ ๋น„์šฉ์„ ๊ณ ๋ คํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ์‹œ๊ฐ„์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

EAT=(1โˆ’p)ร—ma+pร—pageย faultย timeEAT = (1-p)\times ma + p\times \text{page fault time}

  • ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ์‹œ๊ฐ„: mama
  • ํŽ˜์ด์ง€ ๋ถ€์žฌ์œจ: p,ย 0(โ‰คpโ‰ค1)p,\ 0(\le p \le 1)

๊ธฐ๋ณธ์ ์œผ๋กœ ํŽ˜์ด์ง€ ํดํŠธ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„์—๋Š” ๋‹ค์Œ์ด ํฌํ•จ๋œ๋‹ค.

  • ํŽ˜์ด์ง€ ํดํŠธ์— ๋Œ€ํ•œ ์ธํ„ฐ๋ŸฝํŠธ ์ฒ˜๋ฆฌ
  • ํŽ˜์ด์ง€๋ฅผ ์ €์žฅ์žฅ์น˜๋กœ๋ถ€ํ„ฐ ๋‹ค์‹œ ์ฝ์–ด์„œ ์ ์žฌ
  • ํ”„๋กœ์„ธ์Šค๋ฅผ ์žฌ์‹œ์ž‘

์š”๊ตฌ ํŽ˜์ด์ง•์˜ ์„ฑ๋Šฅ ๊ณ ๋ ค ์‚ฌํ•ญ

  1. ์Šค์™‘ ๊ณต๊ฐ„์˜ ํšจ์œจ์„ฑ์„ ๋†’์ธ๋‹ค.
  2. ํŽ˜์ด์ง€ ํดํŠธ์œจ์„ ์ตœ์†Œํ™”ํ•œ๋‹ค.

    • ํŽ˜์ด์ง€ ๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ž˜ ์ง ๋‹ค.

ํŽ˜์ด์ง€ ๊ต์ฒด

  • ๋ฉ”๋ชจ๋ฆฌ ๊ณผํ• ๋‹น

    : ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด ๋ชจ๋‘ ํ• ๋‹น๋œ ์ƒํƒœ

  • ๋ฉ”๋ชจ๋ฆฌ ๊ณผํ• ๋‹น ์ƒํƒœ์˜ ํ•ด์†Œ ๋ฐฉ๋ฒ•

    1. ํ”„๋กœ์„ธ์Šค๋ฅผ ์ข…๋ฃŒ

    : ์‚ฌ์šฉ์ž์—๊ฒŒ ํˆฌ๋ช…ํ•ด์•ผ ํ•˜๋Š” ์š”๊ตฌ ํŽ˜์ด์ง•์˜ ํŠน์„ฑ ์œ„๋ฐฐ

    1. ํ”„๋กœ์„ธ์Šค๋ฅผ ์Šค์™€ํ•‘

    : ๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์‹ฑ ์ •๋„๋ฅผ ๋‚ฎ์ถค

    1. ์ผ๋ถ€ ํŽ˜์ด์ง€๋ฅผ ์Šค์™€ํ•‘

    : ํŽ˜์ด์ง€ ๊ต์ฒด (page replacement)

ํŽ˜์ด์ง€ ๊ต์ฒด์˜ ํ•„์š”์„ฑ

image-20191022200142061

user1์ด M์„ ์š”์ฒญํ•˜๋Š”๋ฐ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์— ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค. M์„ ์ €์žฅ์žฅ์น˜๋กœ ๋ถ€ํ„ฐ ๋ถˆ๋Ÿฌ์™€์•ผํ•˜๋Š”๋ฐ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๊ฐ€๋“์ฐผ๋‹ค. ์ด ๋•Œ ํŽ˜์ด์ง€ ๊ต์ฒด๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

ํŽ˜์ด์ง€ ๊ต์ฒด ๋น„์šฉ (overhead)

ํŽ˜์ด์ง€ ๊ต์ฒด ๋น„์šฉ์€ ์„ฑ๋Šฅ์— ๋งŽ์€ ์˜ํ–ฅ์„ ๋ฏธ์นœ๋‹ค. ํŽ˜์ด์ง€ ๊ต์ฒด๋ฅผ ํฌํ•จํ•œ ํŽ˜์ด์ง€ ํดํŠธ ์ฒ˜๋ฆฌ๋Š” ๋””์Šคํฌ ์ ‘๊ทผ ํšŸ์ˆ˜๊ฐ€ 2๋ฐฐ๊ฐ€ ๋œ๋‹ค.

  1. ํฌ์ƒ ํŽ˜์ด์ง€/ํ”„๋ ˆ์ž„์„ ์Šค์™‘ ๊ณต๊ฐ„์— ์ €์žฅ
  2. ์ƒˆ ํŽ˜์ด์ง€๋ฅผ ์ฝ์–ด์„œ ํ™•๋ณดํ•œ ํ”„๋ ˆ์ž„์— ์ ์žฌ

์ด์— ํŽ˜์ด์ง€ ๊ต์ฒด ๋น„์šฉ์„ ๊ฐœ์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์ž.

  • ๋ณ€๊ฒฝ ๋น„ํŠธ (modify bit, dirty bit) ์‚ฌ์šฉ (write๊ฐ€ ๋˜์—ˆ๋Š”์ง€)

    • ๊ฐ ํŽ˜์ด์ง€๋‚˜ ํ”„๋ ˆ์ž„์— ์ ์šฉ
    • ๋งŒ์•ฝ ๊ทธ ํŽ˜์ด์ง€๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š” ๋™์•ˆ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•˜๋‹ค๋ฉด ๊ทธ ํŽ˜์ด์ง€๋Š” ์˜ˆ์ „์— ์ฝ์–ด์˜ฌ ๋•Œ ์ €์žฅ๋˜์–ด ์žˆ๋˜ ๊ฒƒ๊ณผ ๊ฐ™๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฌํ•œ ํŽ˜์ด์ง€๊ฐ€ ํฌ์ƒ์ž๊ฐ€ ๋˜๋ฉด ๊ตณ์ด ๋‹ค์‹œ ์ €์žฅ์žฅ์น˜์— ์ €์žฅํ•  ํ•„์š”๊ฐ€ ์—†๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค. (dirty bit = clean)
    • ๋ณ€๊ฒฝ ๋น„ํŠธ๊ฐ€ ์„ค์ •๋œ ๊ฒฝ์šฐ์—๋งŒ ์Šค์™‘ ๊ณต๊ฐ„์— ์ €์žฅํ•œ๋‹ค.

ํŽ˜์ด์ง€ ๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜

๋ณ€๊ฒฝ ๋น„ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋”๋ผ๋„ ํŽ˜์ด์ง€ ๊ต์ฒด๋Š” ์„ฑ๋Šฅ์— ๋งŽ์€ ์˜ํ–ฅ์„ ๋ผ์น˜๊ธฐ ๋•Œ๋ฌธ์— ํŽ˜์ด์ง€ ํดํŠธ ๋ฐœ์ƒ ๋น„์œจ์„ ์ค„์ด๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.

ํŽ˜์ด์ง€ ๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๋ชฉํ‘œ๋Š” ๊ฒฐ๊ตญ page fault rate์˜ ์ตœ์†Œํ™”์ด๋‹ค.

FIFO

๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ๋œ ์‹œ๊ฐ„์ด ๊ฐ€์žฅ ์˜ค๋ž˜๋œ ํŽ˜์ด์ง€๋ฅผ ๊ต์ฒดํ•œ๋‹ค. ๊ตฌํ˜„์€ ๊ฐ„๋‹จํ•˜์ง€๋งŒ ์ตœ์ ์˜ ์„ฑ๋Šฅ์„ ๋ณด์žฅํ•  ์ˆ˜๋Š” ์—†๋‹ค.

๐Ÿ˜ž ๋ฒจ๋ผ๋””์˜ ๋ชจ์ˆœ

: ํ”„๋ ˆ์ž„์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋งŽ์•„์ง€๋”๋ผ๋„ ํŽ˜์ด์ง€ ๋ถ€์žฌ์œจ์ด ๋†’์•„์ง€๋Š” ํ˜„์ƒ

image-20191022203106770

์ด๋Ÿฌํ•œ ํ˜„์ƒ๋•Œ๋ฌธ์— ์‹ค์ œ๋กœ๋Š” ์ž˜ ์“ฐ์ด์ง€ ์•Š๋Š”๋‹ค.

์ตœ์  ํŽ˜์ด์ง€ ๊ต์ฒด (Optimal Page Replacement)

๋‹ค๋ฅธ ๋ชจ๋“  ์•Œ๊ณ ๋ฆฌ์ฆ˜๋ณด๋‹ค ํŽ˜์ด์ง€ ๋ถ€์žฌ์œจ์ด ๋‚ฎ์œผ๋ฉด์„œ Belady์˜ ๋ชจ์ˆœ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š” ํŽ˜์ด์ง€ ๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์•ž์œผ๋กœ ๊ฐ€์žฅ ์˜ค๋žœ ์‹œ๊ฐ„ ๋™์•ˆ ์‚ฌ์šฉ๋˜์ง€ ์•Š์„ ํŽ˜์ด์ง€๋ฅผ ๊ต์ฒด ํ•œ๋‹ค.

ํ•˜์ง€๋งŒ ์ž˜ ์ƒ๊ฐํ•ด๋ณด๋ฉด ๋ฏธ๋ž˜๋ฅผ ์–ด๋–ป๊ฒŒ ์•Œ๊นŒ? ์ด ๋ฐฉ๋ฒ•์€ ์‹ค์ œ๋กœ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๋ฐฉ๋ฒ•์ด๊ณ  ๋‹ค๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜๋“ค์˜ ์„ฑ๋Šฅ์„ ํ‰๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค.

LRU ํŽ˜์ด์ง€ ๊ต์ฒด (Least Rencently Used)

์ตœ์  ํŽ˜์ด์ง€ ๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๊ทผ์‚ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๊ฐ€์žฅ ์˜ค๋žœ๋™์•ˆ ์‚ฌ์šฉ๋˜์ง€ ์•Š์€ ํŽ˜์ด์ง€ ๋ฅผ ๊ต์ฒดํ•œ๋‹ค.

์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๊ฑฐ์˜ ์ตœ์ ์ด๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์ œ๋กœ ๋Œ€๋ถ€๋ถ„ LRU๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

๐Ÿ˜„ LRU ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ตฌํ˜„์˜ ๊ณ ๋ ค ์‚ฌํ•ญ

  • ํŽ˜์ด์ง€๋“ค์„ ์ตœ๊ทผ์— ์‚ฌ์šฉํ•œ ์‹œ๊ฐ„ ์ˆœ์„œ๋Œ€๋กœ ๋‚˜์—ดํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค. (Linked List)
  • ํ•˜๋“œ์›จ์–ด์˜ ์ง€์›์ด ํ•„์š”ํ•˜๋‹ค.

    ๋ชจ๋“  ๋ฉ”๋ชจ๋ฆฌ ์ฐธ์กฐ์— ๋Œ€ํ•ด ์ฐธ์กฐ ์‹œ๊ฐ„ ์ •๋ณด๋ฅผ ๊ฐฑ์‹ ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

LRU ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•
  1. ํŽ˜์ด์ง€ ์‚ฌ์šฉ ์‹œ๊ฐ„ ๊ธฐ๋ก

    • CPU์— ๋…ผ๋ฆฌ์  ์‹œ๊ณ„๋‚˜ ์นด์šดํ„ฐ ์ถ”๊ฐ€
    • ๊ต์ฒด ์‹œ์— ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ๊ฒ€์ƒ‰ํ•˜์—ฌ LRU ํŽ˜์ด์ง€ ์ฐพ์Œ
  2. LRU ์Šคํƒ ์œ ์ง€

    • ํŽ˜์ด์ง€์˜ ๋ฒˆํ˜ธ๋ฅผ ๋ฆฌ์ŠคํŠธ๋กœ ๊ตฌ์„ฑ
    • ์ƒˆ๋กœ ์ฐธ์กฐ๋œ ํŽ˜์ด์ง€๋Š” ์Šคํƒ์˜ top์œผ๋กœ ์ด๋™
    • LRUํŽ˜์ด์ง€๋Š” ์Šคํƒ์˜ bottom ํŽ˜์ด์ง€๋กœ ๊ฒฐ์ •
    • ์‹ค์ œ ๊ตฌํ˜„์— ์ ํ•ฉํ•˜๋‹ค.

์Šคํƒ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ผ๊ณ ๋„ ๋ถ€๋ฅธ๋‹ค. Belady์˜ ๋ชจ์ˆœ ํ˜„์ƒ์ด ๋‚˜ํƒ€๋‚˜์ง€ ์•Š๋Š” ํŽ˜์ด์ง€ ๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค.

LRU ๊ทผ์‚ฌ ํŽ˜์ด์ง€ ๊ต์ฒด (Approximation)

์‹ค์ œ๋กœ LRU ํŽ˜์ด์ง€ ๊ต์ฒด์˜ ์ •ํ™•ํ•œ ๊ตฌํ˜„์€ ์–ด๋ ต๋‹ค.

  • ์ถ”๊ฐ€ ํ•˜๋“œ์›จ์–ด๊ฐ€ ์ง€์›๋˜์ง€ ์•Š๋Š” ์‹œ์Šคํ…œ
  • ๋ฉ”๋ชจ๋ฆฌ ์ฐธ์กฐ ๋•Œ๋งˆ๋‹ค ์ฐธ์กฐ ์‹œ๊ฐ„ ์ •๋ณด/์Šคํƒ์„ ๋งค๋ฒˆ ๊ฐฑ์‹ ํ•ด์•ผํ•œ๋‹ค.

๐Ÿ˜„ ๊ธฐ๋ณธ์ ์ธ LRU ๊ทผ์‚ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜

  • ์‹œ๊ฐ„ ์ •๋ณด ๋Œ€์‹ ์— ์ฐธ์กฐ ์œ ๋ฌด๋งŒ ๊ธฐ๋ก

    • Not Recently Used ์•Œ๊ณ ๋ฆฌ์ฆ˜
    • ์ตœ๊ทผ์— ์ฐธ์กฐ๋˜์ง€ ์•Š์€ ํŽ˜์ด์ง€๋ฅผ ๊ต์ฒด
  • ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์— ์ฐธ์กฐ ๋น„ํŠธ(reference bit) ์ถ”๊ฐ€
  • ์ดˆ๊ธฐ์— ๋ชจ๋‘ 0์ด๋ฉฐ ํŽ˜์ด์ง€๊ฐ€ ์ฐธ์กฐ๋  ๋•Œ 1๋กœ ์„ค์ •๋œ๋‹ค.

    • ํŽ˜์ด์ง€ ๊ต์ฒด ์‹œ ์ฃผ๊ธฐ์ ์œผ๋กœ 0์œผ๋กœ ์žฌ์ดˆ๊ธฐํ™”

๐Ÿ˜„ ์ถ”๊ฐ€ ์ฐธ์กฐ ๋น„ํŠธ ์•Œ๊ณ ๋ฆฌ์ฆ˜

  • ์ฐธ๊ณ  ๋น„ํŠธ๋ฅผ ํ™•์žฅํ•˜์—ฌ ์ถ”๊ฐ€ ์ •๋ณด๋กœ ํ™œ์šฉ
  • LRU์— ๊ทผ์ ‘ํ•˜๋Š” ๊ณผ๊ฑฐ ์ฐธ์กฐ ์ •๋ณด ์ƒ์„ฑ

๐Ÿ˜„ 2์ฐจ ๊ธฐํšŒ(Second Chance) ์•Œ๊ณ ๋ฆฌ์ฆ˜

  • ํ•œ ๋ฒˆ ์ฐธ์กฐ๋œ ํŽ˜์ด์ง€์—๊ฒŒ ์ถ”๊ฐ€์˜ ๊ธฐํšŒ๋ฅผ ๋ถ€์—ฌ
  • ์ฐธ์กฐ ๋นˆ๋„๊ฐ€ ๋†’์€ ํŽ˜์ด์ง€๋Š” ๊ณ„์† ๋‚จ์•„ ์žˆ์„ ๊ธฐํšŒ๋ฅผ ๊ฐ€์ง

์นด์šดํŒ… ์•Œ๊ณ ๋ฆฌ์ฆ˜

๊ฐ ํŽ˜์ด์ง€์˜ ์ฐธ์กฐ ํšŸ์ˆ˜๋ฅผ ๊ธฐ๋กํ•˜์—ฌ ํ™œ์šฉํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์‹ค์ œ ๊ตฌํ˜„์ด ์‰ฝ์ง€ ์•Š๊ณ  ์ตœ์  ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ์ž˜ ๊ทผ์‚ฌํ•˜์ง€ ๋ชปํ•œ๋‹ค.

LFU (Least Frequently Used)
MFU (Most Frequently Used)

ํŽ˜์ด์ง€ ๋ฒ„ํผ๋ง

์š”๊ตฌ ํŽ˜์ด์ง•์˜ ๋””์Šคํฌ ์ž…์ถœ๋ ฅ ์‹œ๊ฐ„์„ ๊ฐœ์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•


[jungin]
Written by@[jungin]
์•ˆ๋…•ํ•˜์„ธ์š”

GitHub