๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โญ Group_Study/Operating System

[5์ฃผ์ฐจ] Memory Management: Backgrounds

by ํฌ์ŠคํŠธ์‰์ดํฌ 2023. 1. 2.

Memory Management: Backgrounds

๋ฉ”๋ชจ๋ฆฌ(๊ธฐ์–ต์žฅ์น˜)์˜ ์ข…๋ฅ˜

โœ” ๊ณ„์ธต์  ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค!!

๋ฉ”๋ชจ๋ฆฌ(๊ธฐ์–ต์žฅ์น˜) ๊ณ„์ธต๊ตฌ์กฐ

Address Binding

โœ” ํ”„๋กœ๊ทธ๋žจ์˜๋…ผ๋ฆฌ ์ฃผ์†Œ๋ฅผ ์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ์˜ ๋ฌผ๋ฆฌ ์ฃผ์†Œ๋กœ ๋งคํ•‘(mapping)ํ•˜๋Š” ์ž‘์—…

โœ” Binding ์‹œ์ ์— ๋”ฐ๋ฅธ ๊ตฌ๋ถ„

  • Compile time binding
  • Load time binding
  • Run time binding

โœ” User Program Processing Steps

Compile time binding

โœ” ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ๋  ์œ„์น˜๋ฅผ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์•Œ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ

  • ์œ„์น˜๊ฐ€ ๋ณ€ํ•˜์ง€ ์•Š์Œ

โœ” ํ”„๋กœ๊ทธ๋žจ ์ „์ฒด๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ€์•ผ ํ•œ๋‹ค

Load time binding

โœ” ๋ฉ”๋ชจ๋ฆฌ ์ ์žฌ ์œ„์น˜๋ฅผ ์ปดํŒŒ์ผ ์‹œ์ ์—์„œ ๋ชจ๋ฅด๋ฉด, ๋Œ€์ฒด ๊ฐ€๋Šฅํ•œ ์ƒ๋Œ€ ์ฃผ์†Œ๋ฅผ ์ƒ์„ฑ

โœ” ์ ์žฌ ์‹œ์ (load time)์— ์‹œ์ž‘ ์ฃผ์†Œ๋ฅผ ๋ฐ˜์˜ํ•˜์—ฌ ์‚ฌ์šฉ์ž ์ฝ”๋“œ ์ƒ์˜ ์ฃผ์†Œ๋ฅผ ์žฌ์„ค์ •

  • ํ”„๋กœ๊ทธ๋žจ ์ „์ฒด๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ€์•ผํ•จ

Run time binding

โœ” Address binding์„ ์ˆ˜ํ–‰์‹œ๊ฐ„๊นŒ์ง€ ์—ฐ๊ธฐ

  • ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ˆ˜ํ–‰ ๋„์ค‘ ๋‹ค๋ฅธ ๋ฉ”๋ชจ๋ฆฌ ์œ„์น˜๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ์Œ

โœ” HW์˜ ๋„์›€์ด ํ•„์š”

  • MMU: Memory Management Unit

โœ” ๋Œ€๋ถ€๋ถ„์˜ OS๊ฐ€ ์‚ฌ์šฉ

Dynamic Loading

โœ” ๋ชจ๋“  ๋ฃจํ‹ด์„ ๊ต์ฒด ๊ฐ€๋Šฅํ•œ ํ˜•ํƒœ๋กœ ๋””์Šคํฌ์— ์ €์žฅ
โœ” ์‹ค์ œ ํ˜ธ์ถœ ์ „๊นŒ์ง€๋Š” ๋ฃจํ‹ด์„ ์ ์žฌํ•˜์ง€ ์•Š์Œ

  • ๋ฉ”์ธ ํ”„๋กœ๊ทธ๋žจ๋งŒ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌํ•˜์—ฌ ์ˆ˜ํ–‰
  • ๋ฃจํ‹ด์˜ ํ˜ธ์ถœ ์‹œ์ ์— address binding ์ˆ˜ํ–‰

โœ” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์˜ ํšจ์œจ์  ์‚ฌ์šฉ

Swapping

โœ” ํ”„๋กœ์„ธ์„œ ํ• ๋‹น์ด ๋๋‚˜๊ณ  ์ˆ˜ํ–‰ ์™„๋ฃŒ ๋œ ํ”„๋กœ์„ธ์Šค๋Š” swap device๋กœ ๋ณด๋‚ด๊ณ (Swap-out)
โœ” ์ƒˆ๋กญ๊ฒŒ ์‹œ์ž‘ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ (Swap-in)

๋Œ“๊ธ€