๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Computer Science/Operating System

11 Swapping (Feat. ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น)

by Dowon Kang 2024. 1. 7.

์Šค์™€ํ•‘(Swapping)

์Šค์™€ํ•‘(Swapping)์€ ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์—์„œ ์ฃผ๊ธฐ์–ต์žฅ์น˜(๋ฉ”๋ชจ๋ฆฌ)์™€ ๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜(์ผ๋ฐ˜์ ์œผ๋กœ ํ•˜๋“œ ๋””์Šคํฌ) ๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ฉ”๋ชจ๋ฆฌ์˜ ๋ถ€์กฑ์œผ๋กœ ๋ฐœ์ƒํ•˜๋Š” ์ƒํ™ฉ์—์„œ ์‚ฌ์šฉ๋˜๋ฉฐ, ์šด์˜์ฒด์ œ๊ฐ€ ์‹œ์Šคํ…œ ์„ฑ๋Šฅ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.


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

 

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

 

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

 


 

ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹น

ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹นํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ์„ธ ๊ฐ€์ง€ ์ฃผ์š” ๋ฐฉ๋ฒ•์€ ์ตœ์ดˆ ์ ํ•ฉ(First Fit), ์ตœ์  ์ ํ•ฉ(Best Fit), ์ตœ์•… ์ ํ•ฉ(Worst Fit)์ž…๋‹ˆ๋‹ค.

์ตœ์ดˆ ์ ํ•ฉ(First Fit): ์ด ๋ฐฉ๋ฒ•์€ ๊ฐ€์žฅ ๋จผ์ € ๋ฐœ๊ฒฌ๋œ ๋ฉ”๋ชจ๋ฆฌ ๋ธ”๋ก์— ํ”„๋กœ์„ธ์Šค๋ฅผ ํ• ๋‹นํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ๊ฒ€์ƒ‰ํ•˜๋ฉฐ, ์ฒ˜์Œ์œผ๋กœ ๋ฐœ๊ฒฌ๋˜๋Š” ์ถฉ๋ถ„ํ•œ ํฌ๊ธฐ์˜ ๊ณต๊ฐ„์— ํ”„๋กœ์„ธ์Šค๋ฅผ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์€ ๊ฐ„๋‹จํ•˜๊ณ  ๋น ๋ฅด๊ฒŒ ๋™์ž‘ํ•˜์ง€๋งŒ, ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ ๋ธ”๋ก์ด ํฌ๊ธฐ๊ฐ€ ํฌ๊ฑฐ๋‚˜ ์ž‘์„ ์ˆ˜ ์žˆ์–ด ํšจ์œจ์„ฑ์— ์ œํ•œ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ตœ์  ์ ํ•ฉ(Best Fit): ์ด ๋ฐฉ๋ฒ•์€ ๊ฐ€๋Šฅํ•œ ์ž‘์€ ๋ฉ”๋ชจ๋ฆฌ ๋ธ”๋ก ์ค‘์—์„œ ๊ฐ€์žฅ ์ ํ•ฉํ•œ ๋ธ”๋ก์„ ์ฐพ์•„ ํ• ๋‹นํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ฒ€์ƒ‰ํ•˜์—ฌ ๊ฐ€์žฅ ์ž‘์€ ์ถฉ๋ถ„ํ•œ ๊ณต๊ฐ„์„ ์ฐพ์•„ ํ”„๋กœ์„ธ์Šค๋ฅผ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์€ ๋‚จ์€ ๊ณต๊ฐ„์„ ์ตœ์†Œํ™”ํ•˜๋Š”๋ฐ ์ค‘์ ์„ ๋‘ฌ์„œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ฒ€์ƒ‰ ๊ณผ์ •์ด ๋” ๋ณต์žกํ•˜๊ณ  ์‹œ๊ฐ„์ด ๋” ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ตœ์•… ์ ํ•ฉ(Worst Fit): ์ด ๋ฐฉ๋ฒ•์€ ๊ฐ€๋Šฅํ•œ ํฐ ๋ฉ”๋ชจ๋ฆฌ ๋ธ”๋ก ์ค‘์—์„œ ๊ฐ€์žฅ ํฐ ๋ธ”๋ก์„ ์ฐพ์•„ ํ• ๋‹นํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์€ ํฐ ๊ณต๊ฐ„์„ ํ• ๋‹นํ•˜๋ฏ€๋กœ ๋‚จ์€ ์ž‘์€ ๊ณต๊ฐ„์ด ๋งŽ์•„์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒ€์ƒ‰์ด ๊ฐ„๋‹จํ•˜๊ธด ํ•˜์ง€๋งŒ ๋ฉ”๋ชจ๋ฆฌ์˜ ํšจ์œจ์„ฑ์€ ๋–จ์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

 


 

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

์™ธ๋ถ€ ๋‹จํŽธํ™”(External Fragmentation)๋Š” ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น๊ณผ ํ•ด์ œ๋กœ ์ธํ•ด ๋ฉ”๋ชจ๋ฆฌ์— ์กด์žฌํ•˜๋Š” ์—ฌ๋Ÿฌ ์ž‘์€ ์กฐ๊ฐ๋“ค์ด ๊ฒฐํ•ฉ๋˜์ง€ ๋ชปํ•˜์—ฌ ์ „์ฒด์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ์ƒํƒœ๊ฐ€ ๋˜๋Š” ํ˜„์ƒ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ด๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ์—์„œ ์ค‘์š”ํ•œ ์ด์Šˆ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ์™ธ๋ถ€ ๋‹จํŽธํ™”๋Š” ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€ ์œ ํ˜•์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


์ข…๋ฅ˜๋ณ„ ์™ธ๋ถ€ ๋‹จํŽธํ™” (Type of External Fragmentation)

  • ๊ฒ€์ƒ‰ ๊ฐ€๋Šฅํ•œ ์™ธ๋ถ€ ๋‹จํŽธํ™”(Searchable External Fragmentation): ์—ฌ์ „ํžˆ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ณต๊ฐ„๋“ค์ด ์ž‘์€ ์กฐ๊ฐ๋“ค๋กœ ๋‚˜๋‰˜์–ด์ ธ ์žˆ์ง€๋งŒ, ์ด๋“ค์€ ํŠน์ • ํฌ๊ธฐ์˜ ๊ณต๊ฐ„์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ํ•ฉ์ณ์งˆ ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์—ฌ๋Ÿฌ ์ž‘์€ ๊ณต๊ฐ„๋“ค ์‚ฌ์ด์— ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ ๊ฒ€์ƒ‰์ด ๊ฐ€๋Šฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ถˆ๊ฐ€๋Šฅํ•œ ์™ธ๋ถ€ ๋‹จํŽธํ™”(Unsearchable External Fragmentation): ์ž‘์€ ์กฐ๊ฐ๋“ค์ด ์žˆ์ง€๋งŒ, ์ด๋“ค์„ ํ•ฉ์ณ์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํฐ ๊ณต๊ฐ„์„ ๋งŒ๋“ค๊ธฐ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•œ ์ƒํƒœ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ๋ถˆ์—ฐ์†์ ์œผ๋กœ ํฉ์–ด์ ธ ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์œผ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์™ธ๋ถ€ ๋‹จํŽธํ™”์˜ ์›์ธ

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

์™ธ๋ถ€ ๋‹จํŽธํ™”๋Š” ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ ํšจ์œจ์„ฑ์„ ์ €ํ•ดํ•˜๋ฏ€๋กœ, ์ด๋ฅผ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์–‘ํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๊ธฐ์ˆ ๊ณผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฉ”๋ชจ๋ฆฌ ์••์ถ•(compaction)์ด๋‚˜ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ์‹œ์Šคํ…œ๊ณผ ๊ฐ™์€ ๊ธฐ์ˆ ๋“ค์€ ์™ธ๋ถ€ ๋‹จํŽธํ™”๋ฅผ ์™„ํ™”ํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

 

 


Swapping: Moving data between RAM and secondary storage to manage memory shortages and enhance system performance.

External Fragmentation: Memory fragmentation caused by scattered, non-contiguous blocks, hindering the allocation of large, contiguous memory space.

 

๋Œ“๊ธ€