Virtual Memory(๊ฐ€์ƒ๊ธฐ์–ต์žฅ์น˜)

๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜์˜ ์ผ๋ถ€๋ฅผ ์ฃผ๊ธฐ์–ต์žฅ์น˜์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ. ์ฃผ๊ธฐ์–ต์žฅ์น˜๋ฅผ ๋งˆ์น˜ ํฐ ์šฉ๋Ÿ‰์„ ๊ฐ€์ง„ ๊ฒƒ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ํ”„๋กœ๊ทธ๋žจ์„ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ž‘์€ ๋ธ”๋ก ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„์–ด์„œ ๊ฐ€์ƒ๊ธฐ์–ต์žฅ์น˜์— ๋ณด๊ด€ํ•ด๋†“๊ณ , ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์‹œ ์š”๊ตฌ๋˜๋Š” ๋ธ”๋ก๋งŒ ์ฃผ๊ธฐ์–ต์žฅ์น˜์— ๋ถˆ์—ฐ์†์ ์œผ๋กœ ํ• ๋‹น
  • ์ฃผ๊ธฐ์–ต ์žฅ์น˜์˜ ์ด์šฉ๋ฅ  ↑ , ๋‹ค์ค‘ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํšจ์œจ ↑
  • ๋ธ”๋ก ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„์–ด ์‚ฌ์šฉ → ์—ฐ์† ํ• ๋‹น ๋ฐฉ์‹์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋‹จํŽธํ™”๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Œ

 

Paging(ํŽ˜์ด์ง•) ๊ธฐ๋ฒ•

๊ฐ€์ƒ๊ธฐ์–ต์žฅ์น˜ ๋‚ด์˜ ํ”„๋กœ๊ทธ๋žจ๊ณผ ์ฃผ๊ธฐ์–ต์žฅ์น˜ ์˜์—ญ์„ ๋™์ผํ•œ ํฌ๊ธฐ๋กœ ๋‚˜๋ˆˆ ํ›„, ๋ถ„ํ• ๋œ ํ”„๋กœ๊ทธ๋žจ์„ ๋ถ„ํ• ๋œ ์ฃผ๊ธฐ์–ต์žฅ์น˜์˜์—ญ์— ์ ์žฌ์‹œ์ผœ ์‹œํ–‰
  • Page (ํŽ˜์ด์ง€) : ํ”„๋กœ๊ทธ๋žจ์„ ์ผ์ •ํ•œ ํฌ๊ธฐ๋กœ ๋‚˜๋ˆˆ ๋‹จ์œ„
  • Page Frame : ํŽ˜์ด์ง€ ํฌ๊ธฐ๋กœ ์ผ์ •ํ•˜๊ฒŒ ๋‚˜๋ˆ„์–ด์ง„ ์ฃผ๊ธฐ์–ต์žฅ์น˜์˜ ๋‹จ์œ„
  • ์™ธ๋ถ€๋‹จํŽธํ™”๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์œผ๋‚˜ ๋‚ด๋ถ€ ๋‹จํŽธํ™”๋Š” ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ํŽ˜์ด์ง€-ํ”„๋ ˆ์ž„ ๋Œ€์‘์„ ์œ„ํ•ด page mapping ํ•„์š” → Page Map Table ์ƒ์„ฑ(Page์˜ ์œ„์น˜ ์ •๋ณด)
  • Page Map Table → ๋น„์šฉ ์ฆ๊ฐ€, ์ฒ˜๋ฆฌ์†๋„ ๊ฐ์†Œ

 

Segmentation(์„ธ๊ทธ๋จผํ…Œ์ด์…˜) ๊ธฐ๋ฒ•

๊ฐ€์ƒ๊ธฐ์–ต์žฅ์น˜ ๋‚ด์˜ ํ”„๋กœ๊ทธ๋žจ์„ ๋‹ค์–‘ํ•œ ํฌ๊ธฐ์˜ ๋…ผ๋ฆฌ์  ๋‹จ์œ„๋กœ ๋‚˜๋ˆˆ ํ›„ ์ฃผ๊ธฐ์–ต์žฅ์น˜์— ์ ์žฌ์‹œ์ผœ ์‹œํ–‰
  • Segment (์„ธ๊ทธ๋จผํŠธ) : ํ”„๋กœ๊ทธ๋žจ์„ ๋ฐฐ์—ด์ด๋‚˜ ํ•จ์ˆ˜ ๋“ฑ๊ณผ ๊ฐ™์€ ๋…ผ๋ฆฌ์  ํฌ๊ธฐ๋กœ ๋‚˜๋ˆˆ ๋‹จ์œ„
  • ๊ฐ ์„ธ๊ทธ๋จผํŠธ๋Š” ๊ณ ์œ ํ•œ ์ด๋ฆ„๊ณผ ํฌ๊ธฐ๋ฅผ ๊ฐ–๋А๋‹ค
  • ์‚ฌ์šฉํ•˜๋Š” ๊ถ๊ทน์ ์ธ ์ด์œ  : ๊ธฐ์–ต๊ณต๊ฐ„์„ ์ ˆ์•ฝํ•˜๊ธฐ ์œ„ํ•ด์„œ
  • ์„ธ๊ทธ๋จผํŠธ์™€ ํ”„๋ ˆ์ž„ ๋Œ€์‘์„ ์œ„ํ•ด mapping ํ•„์š” → Segment Map Table ์ƒ์„ฑ (์„ธ๊ทธ๋จผํŠธ์˜ ์œ„์น˜ ์ •๋ณด)
  • ๋‚ด๋ถ€๋‹จํŽธํ™”๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์œผ๋‚˜ ์™ธ๋ถ€ ๋‹จํŽธํ™”๋Š” ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

 

Fragmentation (๋‹จํŽธํ™”)

์ฆ‰, ์ฃผ๊ธฐ์–ต์žฅ์น˜ ์ƒ์—์„œ ๋นˆ๋ฒˆํ•œ ๊ธฐ์–ต์žฅ์†Œ ํ• ๋‹น/๋ฐ˜๋‚ฉ์— ๋”ฐ๋ผ ๊ธฐ์–ต์žฅ์†Œ๋“ค์ด ์กฐ๊ฐ์œผ๋กœ ๋‚˜๋‰˜๋Š” ํ˜„์ƒ → ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๋นˆ ์กฐ๊ฐ๋“ค ์ƒ์„ฑ

1. External Fragmentation(์™ธ๋ถ€ ๋‹จํŽธํ™”)

๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์‹œ ํ”„๋กœ์„ธ์Šค์˜ ํฌ๊ธฐ์— ๋น„ํ•ด ์ด ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์€ ์ถฉ๋ถ„ํ•˜์ง€๋งŒ ์ค‘๊ฐ„ ์ค‘๊ฐ„ ๋นˆ ๊ณต๊ฐ„์œผ๋กœ ์ธํ•ด ์‹ค์ œ๋กœ๋Š” ํ• ๋‹นํ•  ์ˆ˜ ์—†๋Š” ์ƒํ™ฉ ๋ฐœ์ƒ
  • ํ•ด๊ฒฐ์ฑ… 1 : Garbage Collection
    • compaction(์••์ถ•)์„ ํ†ตํ•ด ๋‹จํŽธํ™”๋œ free space๋ฅผ ํ•˜๋‚˜์˜ ํฐ free space๋กœ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•
    • ๋‹จ์  : ๋Œ€์ฒด์ ์œผ๋กœ ์‹œ๊ฐ„์ด๋‚˜ ๋‹ค๋ฅธ ์ž์›์ด ๋งŽ์ด ๋“ ๋‹ค
  • ํ•ด๊ฒฐ์ฑ… 2 : Paging

2. Internal Fragmentation (๋‚ด๋ถ€ ๋‹จํŽธํ™”)

๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ์‹œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ•„์š”ํ•œ ์–‘๋ณด๋‹ค ๋” ํฐ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด ํ• ๋‹น๋˜์–ด์„œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด ๋‚ญ๋น„๋˜๋Š” ์ƒํ™ฉ
  • ํ•ด๊ฒฐ์ฑ… : Segmentation

 

Page ํฌ๊ธฐ

ํŽ˜์ด์ง• ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ฉด ํ”„๋กœ๊ทธ๋žจ์„ ํŽ˜์ด์ง€ ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„๊ฒŒ ๋˜๋Š”๋ฐ, ํŽ˜์ด์ง€ ํฌ๊ธฐ์— ๋”ฐ๋ผ ์‹œ์Šคํ…œ์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์ด ๋‹ค๋ฅด๋‹ค

ํŽ˜์ด์ง€ ํฌ๊ธฐ๊ฐ€ ์ž‘์„ ๊ฒฝ์šฐ

  • ํŽ˜์ด์ง€ ๋‹จํŽธํ™”๊ฐ€ ๊ฐ์†Œ
  • ํ•œ ๊ฐœ์˜ ํŽ˜์ด์ง€๋ฅผ ์ฃผ๊ธฐ์–ต์žฅ์น˜๋กœ ์ด๋™์‹œํ‚ค๋Š” ์‹œ๊ฐ„ ๊ฐ์†Œ
  • ๋ถˆํ•„์š”ํ•œ ๋‚ด์šฉ์ด ์ฃผ๊ธฐ์–ต์žฅ์น˜์— ์ ์žฌ๋ 

ํŽ˜์ด์ง€ ํฌ๊ธฐ๊ฐ€ ํด ๊ฒฝ์šฐ

  • ํŽ˜์ด์ง€ ๋งต ํ…Œ์ด๋ธ”์˜ ํฌ๊ธฐ๊ฐ€ ์ž‘์•„์ง€๊ณ , ๋งคํ•‘ ์†๋„๊ฐ€ ๋นจ๋ผ์ง
  • ๋””์Šคํฌ ์ ‘๊ทผ ํšŸ์ˆ˜๊ฐ€ ์ค„์–ด๋“ค์–ด ์ „์ฒด์ ์ธ ์ž…, ์ถœ๋ ฅ์˜ ํšจ์œจ์„ฑ์ด ์ฆ๊ฐ€๋จ
  • ํŽ˜์ด์ง€ ๋‹จํŽธํ™”๊ฐ€ ์ฆ๊ฐ€
  • ํ•œ ํŽ˜์ด์ง€๋ฅผ ์ฃผ๊ธฐ์–ต์žฅ์น˜๋กœ ์ด๋™์‹œํ‚ค๋Š” ์‹œ๊ฐ„ ์ฆ๊ฐ€๋จ

 

Locality

ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰๋˜๋Š” ๋™์•ˆ ์ฃผ๊ธฐ์–ต์žฅ์น˜๋ฅผ ์ฐธ์กฐํ•  ๋•Œ, ์ผ๋ถ€ ํŽ˜์ด์ง€๋งŒ ์ง‘์ค‘์ ์œผ๋กœ ์ฐธ์กฐํ•˜๋Š” ์„ฑ์งˆ์ด ์žˆ๋‹ค๋Š” ์ด๋ก 
  • ์Šค๋ ˆ์‹ฑ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ์›Œํ‚น ์…‹ ์ด๋ก ์˜ ๊ธฐ๋ฐ˜์ด ๋จ
  • ๊ฐ€์ƒ๊ธฐ์–ต์žฅ์น˜ ๊ด€๋ฆฌ์™€ ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ ์‹œ์Šคํ…œ์˜ ์ด๋ก ์ ์ธ ๊ทผ๊ฑฐ
  • ๋ฐ๋‹(Denning)๊ต์ˆ˜์— ์˜ํ•ด ๊ฐœ๋…์ด ์ฆ๋ช…๋จ

์ข…๋ฅ˜

  • ์‹œ๊ฐ„ ๊ตฌ์—ญ์„ฑ(Temporal Locality) : ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰๋˜๋ฉด์„œ ํ•˜๋‚˜์˜ ํŽ˜์ด์ง€๋ฅผ ์ผ์ • ์‹œ๊ฐ„ ๋™์•ˆ ์ง‘์ค‘์ ์œผ๋กœ ์•ก์„ธ์Šคํ•˜๋Š” ํ˜„์ƒ
  • ๊ณต๊ฐ„ ๊ตฌ์—ญ์„ฑ(Spatial Locality) : ํ”„๋กœ์„ธ์Šค ์‹คํ–‰ ์‹œ ์ผ์ • ์œ„์น˜์˜ ํŽ˜์ด์ง€๋ฅผ ์ง‘์ค‘์ ์œผ๋กœ ์•ก์„ธ์Šคํ•˜๋Š” ํ˜„์ƒ

 

Working Set(์›Œํ‚น ์…‹)

ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ผ์ • ์‹œ๊ฐ„ ๋™์•ˆ ์ž์ฃผ ์ฐธ์กฐํ•˜๋Š” ํŽ˜์ด์ง€๋“ค์˜ ์ง‘ํ•ฉ
  • Denning์ด ์ œ์•ˆํ•œ ํ”„๋กœ๊ทธ๋žจ์˜ ์›€์ง์ž„์— ๋Œ€ํ•œ ๋ชจ๋ธ
  • ํ”„๋กœ๊ทธ๋žจ์˜ Locality ํŠน์ง• ์ด์šฉ
  • ์ž์ฃผ ์ฐธ์กฐ๋˜๋Š” ์›Œํ‚น ์…‹์„ ์ฃผ๊ธฐ์–ต์žฅ์น˜์— ์ƒ์ฃผ์‹œํ‚ด → ํŽ˜์ด์ง€ ๋ถ€์žฌ ๋ฐ ํŽ˜์ด์ง€ ๊ต์ฒด ํ˜„์ƒ์ด ์ค„์–ด๋“ค์–ด ํ”„๋กœ์„ธ์Šค์˜ ๊ธฐ์–ต์žฅ์น˜ ์‚ฌ์šฉ์ด ์•ˆ์ •๋œ๋‹ค.

 

Thrashing (์Šค๋ž˜์‹ฑ)

ํ”„๋กœ์„ธ์Šค์˜ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„๋ณด๋‹ค ํŽ˜์ด์ง€ ๊ต์ฒด์— ์†Œ์š”๋˜๋Š” ์‹œ๊ฐ„์ด ๋” ๋งŽ์•„์ง€๋Š” ํ˜„์ƒ
  • ๋‹ค์ค‘ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์‹œ์Šคํ…œ/๊ฐ€์ƒ๊ธฐ์–ต์žฅ์น˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‹œ์Šคํ…œ์—์„œ, ํ•œ ํ”„๋กœ์„ธ์Šค ์ˆ˜ํ–‰ ๊ณผ์ • ์ค‘ ์ž์ฃผ Page Fault(ํŽ˜์ด์ง€ ๋ถ€์žฌ)๊ฐ€ ๋ฐœ์ƒ ⇒ ์Šค๋ž˜์‹ฑ ๋ฐœ์ƒ
  • ⇒ ์ „์ฒด ์‹œ์Šคํ…œ์˜ ์„ฑ๋Šฅ ์ €ํ•˜
  • ๋‹ค์ค‘ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์ •๋„ ↑ ⇒ CPU์˜ ์ด์šฉ๋ฅ ์€ ์–ด๋А ํŠน์ • ์‹œ์ ๊นŒ์ง€๋Š” ๋†’์•„์ง€๋‹ค๊ฐ€ ๊ทธ ์ดํ›„์—๋Š” ์Šค๋ž˜์‹ฑ์ด ๋‚˜ํƒ€๋‚จ → CPU์˜ ์ด์šฉ๋ฅ  ๊ธ‰๊ฒฉํžˆ ๊ฐ์†Œ

BELATED ARTICLES

more