๐Ÿ“ฆ

๊ฐ€์ƒ๋ฉ”๋ชจ๋ฆฌ์™€ ํŽ˜์ด์ง€ํดํŠธ (๋ฏผ์žฌ)

 
๊ฐ€์ƒ๋ฉ”๋ชจ๋ฆฌ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ธฐ ์ „์— ๋ฉ”๋ชจ๋ฆฌ๋ž€

๋ฉ”๋ชจ๋ฆฌ

  • ๋ฉ”๋ชจ๋ฆฌ๋ž€ ํ”„๋กœ๊ทธ๋žจ๊ณผ ํ”„๋กœ๊ทธ๋žจ ์ˆ˜ํ–‰์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ ๋ฐ ์ฝ”๋“œ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ธฐ์–ต ์žฅ์น˜
  • ๋ฉ”๋ชจ๋ฆฌ๋Š” ํฌ๊ฒŒ ๋‚ด๋ถ€ ๊ธฐ์–ต์žฅ์น˜์ธ ์ฃผ๊ธฐ์–ต์žฅ์น˜์™€ ์™ธ๋ถ€ ๊ธฐ์–ต์žฅ์น˜์ธ ๋ณด์กฐ ๊ธฐ์–ต์žฅ์น˜๋กœ ๋ถ„๋ฅ˜๋จ.
    • ํ•˜๋“œ์›จ์–ด ๊ด€์ ์—์„œ ๋ฉ”๋ชจ๋ฆฌ์˜ ์ข…๋ฅ˜๋Š” ๋‹ค์Œ ์‚ฌ์ง„๊ณผ ๊ฐ™์ด 4๊ฐ€์ง€๊ฐ€ ์กด์žฌํ•˜๋ฉฐ DRAM(RAM, DDR4) ๋“ฑ์˜ ๋ฉ”๋ชจ๋ฆฌ์™€ CPU ์•ˆ์— ์žˆ๋Š” ๋ ˆ์ง€์Šคํ„ฐ์™€ ์บ์‹œ๋“ฑ์„ ์ฃผ๊ธฐ์–ต์žฅ์น˜๋ผ๊ณ  ํ•˜๋ฉฐ SSDHDD๋Š” ๋ณด์กฐ ๊ธฐ์–ต์žฅ์น˜๋กœ ๋ถ„๋ฅ˜๋œ๋‹ค.
CPU์˜ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ์— ๋Œ€ํ•œ ์„ฑ๋Šฅ, ์ฝ”์ŠคํŠธ ํ‘œ์‹œ
CPU์˜ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ์— ๋Œ€ํ•œ ์„ฑ๋Šฅ, ์ฝ”์ŠคํŠธ ํ‘œ์‹œ
  • CPU๋Š” ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์˜ ๊ฐ’๋งŒ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋‹ค(RAM).
  • ์ฆ‰ ์—ฐ์‚ฐ์„ ์œ„ํ•ด์„œ๋Š” ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์— ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ์˜ ์ •๋ณด๊ฐ€ ์˜ฌ๋ผ์™€์•ผํ•œ๋‹ค.
 
์ดํ›„์˜ ๋ฌธ์ œ๋กœ ๊ฐ€์ƒ๋ฉ”๋ชจ๋ฆฌ์˜ ๋“ฑ์žฅโ€ฆ
  • ์ดˆ์ฐฝ๊ธฐ ์ปดํ“จํ„ฐ์—์„œ๋Š” ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ RAM์˜ ์šฉ๋Ÿ‰์ด, ๊ฐ€์žฅ ํฐ ์‹คํ–‰ ํ”„๋กœ๊ทธ๋žจ์˜ ์ฃผ์†Œ ๊ณต๊ฐ„๋ณด๋‹ค ์ปค์•ผ ํ–ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์„ ๊ฒฝ์šฐ ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ ์˜ค๋ฅ˜์— ์˜ํ•ด ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์—ˆ์Œ.
  • ์ดํ›„ ์˜ค๋ฒ„๋ ˆ์ด ๊ธฐ๋ฒ•์ด ๋“ฑ์žฅํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์˜ ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์˜€๋‹ค.
 

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

  • ๋ณด์กฐ ๊ธฐ์–ต ์žฅ์น˜์˜ ์ผ๋ถ€๋ฅผ ์ฃผ ๊ธฐ์–ต ์žฅ์น˜๋กœ ํ™œ์šฉํ•˜์—ฌ ์‹ค์ œ ์ฃผ๊ธฐ์–ต์žฅ์น˜๋ณด๋‹ค ํฐ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ์ œ๊ณตํ•˜๋Š” ๋ฐฉ๋ฒ•
  • ์–ด๋–ค ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰๋  ๋•Œ ๋ฉ”๋ชจ๋ฆฌ์— ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค ์ „์ฒด๊ฐ€ ์˜ฌ๋ผ๊ฐ€์ง€ ์•Š๊ณ  ์‹คํ–‰์— ํ•„์š”ํ•œ ์ผ๋ถ€๋ถ„๋งŒ ๋ฉ”๋ชจ๋ฆฌ ์˜ฌ๋ผ๊ฐ
  • ํ”„๋กœ์„ธ์Šค๋“ค์˜ ๋‚ด์šฉ(ํŽ˜์ด์ง€) ์ค‘ ํ˜„์žฌ ์‹คํ–‰์—์„œ ๋œ ์ค‘์š”ํ•œ ๊ฒƒ๋“ค์„ ํ•˜๋“œ ๋””์Šคํฌ์˜ ๊ณต๊ฐ„์— ์˜ฎ๊ฒจ ๋†“์Œ์œผ๋กœ์จ ์ ์€ ์–‘์˜ ๋ฉ”๋ชจ๋ฆฌ๋กœ ํฐ ํšจ์œจ์„ ๋ƒ„
 
Q. ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๋Š” ๊ทธ๋Ÿผ ๊ฐœ๋‚˜์†Œ๋‚˜ ์“ธ ์ˆ˜ ์žˆ๋‚˜์š”?
A. ์•„๋‹ˆ์š” ํŠน์ˆ˜ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ํ•˜๋“œ์›จ์–ด์ธ MMU(Memory Management Unit)์„ ๊ฐ–์ถ”๊ณ  ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
 
ํ•˜๋“œ๋””์Šคํฌ์˜ ๋‚ด์šฉ(ํŽ˜์ด์ง€)๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•  ๋•Œ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฐธ์กฐํ•œ๋‹ค.
 
ํŽ˜์ด์ง€
  • ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ”„๋กœ์„ธ์Šค๋ฅผ ์ผ์ • ํฌ๊ธฐ๋กœ ๋‚˜๋ˆˆ ๋‹จ์œ„
 

์š”๊ตฌ ํŽ˜์ด์ง• (Demand Paging)

๋ฌผ๋ฆฌ ์ฃผ์†Œ์— ๋ชจ๋“  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์˜ฌ๋ฆฌ์ง€ ์•Š๊ณ  CPU๊ฐ€ ์š”์ฒญํ•  ๋•Œ ํ”„๋กœ์„ธ์Šค์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฌผ๋ฆฌ ์ฃผ์†Œ์— ์˜ฌ๋ฆผ
notion image
์ด๋กœ ์ธํ•œ ๊ธ์ •์  ํšจ๊ณผ
  • ํ˜„์žฌ ํ•„์š”ํ•œ ํŽ˜์ด์ง€๋งŒ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ด ๊ฐ์†Œํ•œ๋‹ค.
  • ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ ์šฉ๋Ÿ‰์˜ ์ œ์•ฝ์—์„œ ๋ฒ—์–ด๋‚  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค.
  • ํ”„๋กœ์„ธ์Šค ์ „์ฒด๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆฌ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ž…์ถœ๋ ฅ์˜ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์ค„์–ด๋“ ๋‹ค.
 

ํŽ˜์ด์ง€ ํดํŠธ (Page Fault)

์œ„์™€ ๊ฐ™์€ ์š”๊ตฌ ํŽ˜์ด์ง• ๋ฐฉ์‹์œผ๋กœ CPU๊ฐ€ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋ฉด ํ•„์š”ํ•œ ํŽ˜์ด์ง€๊ฐ€ ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ์— ์—†๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋˜๋Š”๋ฐ ์ด๋ฅผ ํŽ˜์ด์ง€ ํดํŠธ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
 
ํŽ˜์ด์ง€ ํดํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ๊ณผ์ •์ด ์ผ์–ด๋‚œ๋‹ค.
notion image
  1. invalid ํŽ˜์ด์ง€์— ์ ‘๊ทผํ•˜๋ฉด MMU๊ฐ€ trap์„ ๋ฐœ์ƒํ•˜์—ฌ ์šด์˜์ฒด์ œ์— ์•Œ๋ฆฐ๋‹ค.
  1. ์šด์˜์ฒด์ œ๋Š” CPU์˜ ๋™์ž‘์„ ์ž ์‹œ ๋ฉˆ์ถ˜๋‹ค.
  1. ์šด์˜์ฒด์ œ๋Š” ์š”๊ตฌ๋œ ํŽ˜์ด์ง€๋ฅผ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ฐพ๋Š”๋‹ค.
  1. ํ•ด๋‹น ํŽ˜์ด์ง€๋ฅผ ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์˜ ๋นˆ ํ”„๋ ˆ์ž„์— ๋กœ๋“œํ•œ๋‹ค.
  1. ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ์ตœ์‹ ํ™”ํ•œ๋‹ค.
  1. ์ค‘๋‹จ๋˜์—ˆ๋˜ CPU๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•œ๋‹ค.
 
3๋ฒˆ ๊ณผ์ •์„ ๊ฑฐ์ณค์ง€๋งŒ โ€˜ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์— ์˜ฌ๋ฆด ๋นˆ ํ”„๋ ˆ์ž„์ด ์—†์„ ๊ฒฝ์šฐโ€™ ? Page Replacement ์•Œ๊ณ ๋ฆฌ์ฆ˜
  1. FIFO: FIFO ๋ฐฉ์‹์€ ๊ฐ€์žฅ ๋จผ์ € ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ๋œ ํŽ˜์ด์ง€๋ฅผ ๋จผ์ € ๋‚ด๋ณด๋‚ธ๋‹ค.
  1. OPT(Optimal replacement, ์ตœ์  ๊ต์ฒด): ๋ฏธ๋ž˜๋ฅผ ๋ณด๊ณ  ์•ž์œผ๋กœ ๊ฐ€์žฅ ์‚ฌ์šฉ ์•ˆ๋  ํŽ˜์ด์ง€๋ฅผ ๊ต์ฒดํ•ด์ค€๋‹ค.
  1. LRU (Least Recently Used): ์ตœ๊ทผ์— ๊ฐ€์žฅ ์˜ค๋žซ๋™์•ˆ ์‚ฌ์šฉ๋˜์ง€ ์•Š์€ ํŽ˜์ด์ง€๋ฅผ ๊ต์ฒดํ•ด์ค€๋‹ค.
  1. LFU (Least Frequently Used): ์‚ฌ์šฉ ๋นˆ๋„๊ฐ€ ๊ฐ€์žฅ ์ ์€ ํŽ˜์ด์ง€๋ฅผ ๊ต์ฒดํ•ด์ค€๋‹ค.
 
์ฐธ๊ณ 
[์šด์˜์ฒด์ œ] ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ(Virtual Memory System)
๋“ค์–ด๊ฐ€๊ธฐ ์ „.. ๋ฉ”๋ชจ๋ฆฌ(memory)๋ž€? ๋ฉ”๋ชจ๋ฆฌ๋ž€ ํ”„๋กœ๊ทธ๋žจ๊ณผ ํ”„๋กœ๊ทธ๋žจ ์ˆ˜ํ–‰์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ ๋ฐ ์ฝ”๋“œ๋ฅผ ์ €์žฅํ•˜๋Š” ์žฅ์น˜์ž„. ๋ฉ”๋ชจ๋ฆฌ๋Š” ํฌ๊ฒŒ ๋‚ด๋ถ€ ๊ธฐ์–ต์žฅ์น˜์ธ ์ฃผ๊ธฐ์–ต์žฅ์น˜์™€ ์™ธ๋ถ€ ๊ธฐ์–ต์žฅ์น˜์ธ ๋ณด์กฐ ๊ธฐ์–ต์žฅ์น˜๋กœ ๋ถ„๋ฅ˜๋จ. DRAM, CPU ์•ˆ์— ์žˆ๋Š” ๋ ˆ์ง€์Šคํ„ฐ(register)์™€ ์บ์‰ฌ(cache memory) ๋“ฑ์ด ์ „์ž์— ํ•ด๋‹น๋จ. SSD, HDD ๋“ฑ์ด ํ›„์ž์— ํ•ด๋‹น๋จ. ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ๋“ฑ์žฅ ๋ฐฐ๊ฒฝ ์ดˆ์ฐฝ๊ธฐ ์ปดํ“จํ„ฐ์—์„œ๋Š” ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ RAM์˜ ์šฉ๋Ÿ‰์ด, ๊ฐ€์žฅ ํฐ ์‹คํ–‰ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ฃผ์†Œ ๊ณต๊ฐ„๋ณด๋‹ค ์ปค์•ผ ํ–ˆ์Œ. ๊ทธ๋ ‡์ง€ ์•Š์„ ๊ฒฝ์šฐ "๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ" ์˜ค๋ฅ˜์— ์˜ํ•ด ํ•ด๋‹น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์—ˆ์Œ. ์ดํ›„ ์ปดํ“จํ„ฐ์—์„œ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ผ๋ถ€๋ถ„๋งŒ ๊ธฐ์–ต์žฅ์น˜์— ์˜ฌ๋ ค ์‹คํ–‰ํ•˜๋„๋ก ์ง€์ •ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ์˜ค๋ฒ„๋ ˆ์ด ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ ๋ฌธ์ œ๋ฅผ ..
[์šด์˜์ฒด์ œ] ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ(Virtual Memory System)
[10๋ถ„ ํ…Œ์ฝ”ํ†ก] ๐Ÿงš๐Ÿป ๋ฐฐ๋Ÿด์˜ แ„€แ…กแ„‰แ…กแ†ผ แ„†แ…ฆแ„†แ…ฉแ„…แ…ต
๐Ÿ™‹โ€โ™€๏ธ ์šฐ์•„ํ•œํ…Œํฌ์ฝ”์Šค์˜ ํฌ๋ฃจ๋“ค์ด ์ง„ํ–‰ํ•˜๋Š” 10๋ถ„ ํ…Œํฌํ† ํฌ์ž…๋‹ˆ๋‹ค. ๐Ÿ™‹โ€โ™‚๏ธ '10๋ถ„ ํ…Œ์ฝ”ํ†ก'์ด๋ž€ ์šฐ์•„ํ•œํ…Œํฌ์ฝ”์Šค ๊ณผ์ •์„ ์ง„ํ–‰ํ•˜๋ฉฐ ํฌ๋ฃจ(์ˆ˜๊ฐ•์ƒ)๋“ค์ด ๋™๋ฃŒ๋“ค๊ณผ ํ•™์Šตํ•œ ๋‚ด์šฉ์„ ๊ณต์œ ํ•˜๊ณ  ์ด์•ผ๊ธฐํ•˜๋Š” ์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค. ์„œ๋กœ๊ฐ€ ์„ฑ์žฅํ•˜๊ธฐ ์œ„ํ•ด ์ง€์‹์„ ๋‚˜๋ˆ„๊ณ  ๋Œ€ํ™”ํ•˜๋ฉฐ ์ƒ๊ฐํ•ด๋ณด๋Š” ์‹œ๊ฐ„์œผ๋กœ ์ž๊ธฐ ์ฃผ๋„์ ์ธ ์„ฑ์žฅ์„ ์ง€ํ–ฅํ•˜๋Š” ์šฐ์•„ํ•œํ…Œํฌ์ฝ”์Šค์˜ ๋ฌธํ™” ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ๐ŸŒ•์šฐ์•„ํ•œํ…Œํฌ์ฝ”์Šค๋ž€ ๐ŸŒ• ์šฐ์•„ํ•œํ…Œํฌ์ฝ”์Šค๋Š” ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž์šฉ ์„œ๋น„์Šค๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ํšŒ์‚ฌ๊ฐ€ ํ•„์š”๋กœ ํ•˜๋Š” ์—ญ๋Ÿ‰์„ ๊ฐ€์ง„ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ฅผ ์–‘์„ฑํ•˜๊ธฐ ์œ„ํ•œ ๊ต์œก์ž…๋‹ˆ๋‹ค.
[10๋ถ„ ํ…Œ์ฝ”ํ†ก] ๐Ÿงš๐Ÿป ๋ฐฐ๋Ÿด์˜ แ„€แ…กแ„‰แ…กแ†ผ แ„†แ…ฆแ„†แ…ฉแ„…แ…ต