๐Ÿ“Œ Memory Management 1

๋ชจ๊น…ยท2023๋…„ 6์›” 7์ผ
0

๐Ÿ“– 01. Logical vs Physical Address

  • ๋ฉ”๋ชจ๋ฆฌ๋ผ๋Š” ๊ฒƒ์€ ์ฃผ์†Œ๋ฅผ ํ†ตํ•ด ์ ‘๊ทผํ•˜๋Š” ๋งค์ฒด์ด๋‹ค.

  • ๋ฉ”๋ชจ๋ฆฌ์—๋Š” ์ฃผ์†Œ๊ฐ€ ๋งค๊ฒจ์ง€๋Š”๋ฐ ๋‘๊ฐ€์ง€๋กœ ๋‚˜๋‰œ๋‹ค.
    1. ๋…ผ๋ฆฌ์ ์ธ ์ฃผ์†Œ
    2. ๋ฌผ๋ฆฌ์ ์ธ ์ฃผ์†Œ

  • ํ”„๋กœ๊ทธ๋žจ์ด ํ˜•์„ฑ๋˜๋ฉด ๋…์ž์ ์ธ ์ฃผ์†Œ๊ณต๊ฐ„์ด ์ƒ์„ฑ๋œ๋‹ค.
    -> ํ”„๋กœ๊ทธ๋žจ๋งˆ๋‹ค ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ฃผ์†Œ๋ฅผ Logical address(=virtual address)๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.
    -> 0๋ฒˆ์ง€๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ๋…ผ๋ฆฌ์ฃผ์†Œ๋ฅผ ๊ฐ์ž ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

  • ๋ฌผ๋ฆฌ์ ์ธ ์ฃผ์†Œ๋ผ๋Š” ๊ฒƒ์€ ๋ฉ”๋ชจ๋ฆฌ์— ์‹ค์ œ ์˜ฌ๋ผ๊ฐ€๋Š” ์œ„์น˜๋ฅผ ์˜๋ฏธํ•จ.
    -> ์•„๋ž˜์ชฝ์—๋Š” ์ปค๋„์ด ์ƒ์ฃผํ•ด์žˆ๊ณ  ์œ„์—๋Š” ์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋žจ๋“ค์ด ์„ž์—ฌ์„œ ๋“ค์–ด๊ฐ€ ์žˆ๋‹ค.

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

  • ์ฃผ์†Œ ๋ฐ”์ธ๋”ฉ : ํ”„๋กœ๊ทธ๋žจ์ด ๋ฌผ๋ฆฌ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ์–ด๋””์— ์˜ฌ๋ผ๊ฐˆ ์ง€ ๊ทธ ์ฃผ์†Œ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ

  • ๊ทธ๋Ÿผ ์ฃผ์†Œ๋Š” ์–ธ์ œ ๊ฒฐ์ •๋˜๋Š๋ƒ?
    -> ๋…ผ๋ฆฌ์ ์ธ ์ฃผ์†Œ๊ฐ€ ๋ฌผ๋ฆฌ์ ์ธ ์ฃผ์†Œ๋กœ ์–ธ์ œ ๊ฒฐ์ •๋˜๋Š๋ƒ?
    -> 3๊ฐ€์ง€๊ฐ€ ์กด์žฌํ•œ๋‹ค.

  • Symbolic Address : ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•  ๋•Œ ์ˆซ์ž์ฃผ์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜์ง€ ์•Š๋Š”๋‹ค.
    -> ํŠน์ • ๋ฉ”๋ชจ๋ฆฌ ๋ณ€์ˆ˜์— ๊ฐ’์„ ์ €์žฅํ•˜์ง€๋งŒ ๋ฉ”๋ชจ๋ฆฌ ๋ช‡๋ฒˆ์ง€์— ์ €์žฅํ•˜๋ผ๊ณ  ํ•˜์ง€ ์•Š๊ณ  ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ณ  ๊ทธ ๋ณ€์ˆ˜์— ์–ผ๋งˆ๋ฅผ ์ €์žฅํ•˜๋ผ๋Š” ์‹์œผ๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ•œ๋‹ค.
    -> ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœ ํ•  ๋•Œ ๋ช‡๋ฒˆ์ง€๋กœ ์ ํ”„ํ•ด๋ผ๋ผ๊ณ  ํ•˜์ง€ ์•Š๊ณ  ํ•จ์ˆ˜์— ์ด๋ฆ„์„ ์ค˜์„œ ๊ทธ ์ด๋ฆ„์œผ๋กœ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค.

  • ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ์ˆซ์ž๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•˜์ง€ ์•Š๊ณ  Symbol๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•œ๋‹ค.
    -> ์ด๋ฅผ Symbolic address๋ผ๊ณ  ํ•œ๋‹ค.

  • ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” Symbolic Address๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๊ณ  ์ปดํŒŒ์ผ๋‹จ๊ณ„์—์„œ ์ˆซ์ž๋กœ ๋œ ์ฃผ์†Œ๋กœ ๋ฐ”๋€Œ๊ฒŒ ๋œ๋‹ค.
    -> 0๋ฒˆ์ง€๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ๋…์ž์ ์ธ ๊ณต๊ฐ„์œผ๋กœ ๋ฐ”๋€Œ๊ฒŒ ๋œ๋‹ค.

  • ์ด๊ฒŒ ์‹คํ–‰๋˜๊ฒŒ ํ•˜๋ ค๋ฉด ๋ฌผ๋ฆฌ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ์— ๋ณ€ํ™˜๋˜์–ด ์˜ฌ๋ผ๊ฐ€์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ฃผ์†Œ๋ฅผ ๊ฒฐ์ •ํ•ด์•ผ ํ•œ๋‹ค. (์ฃผ์†Œ ๋ฐ”์ธ๋”ฉ)

  • ๊ทธ๋Ÿผ ์ด ์ฃผ์†Œ๋ณ€ํ™˜์ด ์–ธ์ œ ์ด๋ฃจ์–ด์งˆ๊นŒ?

๐Ÿ“– 02. ์ฃผ์†Œ ๋ฐ”์ธ๋”ฉ (Address Binding)

  • ์ฃผ์†Œ๋ณ€ํ™˜์ด ์ปดํŒŒ์ผ ๋‹จ๊ณ„์—์„œ ์ด๋ฃจ์–ด์ง€๋Š” ๊ฒƒ์„ Compile time binding์ด๋ผ๊ณ  ํ•œ๋‹ค.

  • ์‹คํ–‰ ์‹œ์ž‘ ๋  ๋•Œ ์ฃผ์†Œ๋ณ€ํ™˜์ด ์ด๋ฃจ์–ด์ง€๋ฉด Load time binding์ด๋ผ๊ณ  ํ•œ๋‹ค.

  • ํ”„๋กœ๊ทธ๋žจ์ด ์‹œ์ž‘๋œ ์ดํ›„์—๋„ ์‹คํ–‰ํ•˜๋‹ค๊ฐ€ ์ค‘๊ฐ„์— ๋ฌผ๋ฆฌ์ ์ธ ์ฃผ์†Œ๊ฐ€ ๋ฐ”๋€” ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ Execution time binding (=Run time binding)์ด๋ผ๊ณ  ํ•œ๋‹ค.

  • ๋งจ ์™ผ์ชฝ์— ์†Œ์Šค์ฝ”๋“œ๊ฐ€ ์กด์žฌํ•œ๋‹ค.
    -> ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค์—ˆ๊ณ  ์ด ์•ˆ์—๋Š” Symbolic Address๋กœ ์ฃผ์†Œ๊ฐ€ ํ‘œํ˜„๋˜์–ด ์žˆ๋‹ค.

  • ์ปดํŒŒ์ผ์ด ๋˜์„œ ์‹คํ–‰ํŒŒ์ผ์ด ๋งŒ๋“ค์–ด์ง€๋ฉด Symbolic Add๊ฐ€ ์ˆซ์ž๋กœ ๋œ ์ฃผ์†Œ๋กœ ๋ฐ”๋€Œ๊ฒŒ ๋œ๋‹ค.
    -> ํ”„๋กœ๊ทธ๋žจ ๋งˆ๋‹ค ๊ฐ€์ง€๋Š” ์ฃผ์†Œ์ด๊ธฐ ๋•Œ๋ฌธ์— Logical add์ด๋‹ค.

  • ์†Œ์Šค์ฝ”๋“œ์— ์žˆ๋Š” ๊ฐ๊ฐ์˜ ๋ฌธ์ž๋“ค์ด 0, 10, 20,... ๋ฒˆ์ง€๋กœ ๋ฐ”๋€Œ๊ฒŒ ๋œ๋‹ค.

  • ์‹คํ–‰์ด ๋˜๋ ค๋ฉด ๋ฌผ๋ฆฌ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ€์•ผ ํ•˜๊ณ  ๋ฌผ๋ฆฌ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ์— ์ฃผ์†Œ๊ฐ€ ๊ฒฐ์ •๋˜๋Š” ๊ฒƒ์„ ์ฃผ์†Œ ๋ฐ”์ธ๋”ฉ์ด๋ผ๊ณ  ํ•œ๋‹ค.
    -> ๊ทธ ์‹œ์ ์€ 3๊ฐ€์ง€๊ฐ€ ์กด์žฌํ•œ๋‹ค.

  1. Compile time binding
    -> ์ปดํŒŒ์ผ ์‹œ์ ์— ์ด๋ฏธ ๋ฌผ๋ฆฌ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๊ฐ€ ๊ฒฐ์ •์ด ๋˜๋Š” ๊ฒƒ์ด๋‹ค.
    -> ๋”ฐ๋ผ์„œ ์ด๋ฏธ Logical์—์„œ ๊ฒฐ์ •๋‚œ ๋ฉ”๋ชจ๋ฆฌ๋กœ ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์— ๊ทธ๋Œ€๋กœ ์˜ฌ๋ ค์•ผ ํ•œ๋‹ค.
    -> ๋‹ค๋ฅธ ๋ถ€๋ถ„์ด ๋น„์–ด์žˆ๋‹ค๊ณ  ํ•˜๋”๋ผ๋„ ์ด๋ฏธ ๊ฒฐ์ •๋œ ์ฃผ์†Œ๋กœ ๋งตํ•‘์‹œ์ผœ์•ผ ํ•œ๋‹ค.
    -> ๋น„ํšจ์œจ์ ์ด๋‹ค.
    -> ํ˜„์žฌ๋Š” ์ž˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.
  2. Load time binding
    -> ํ”„๋กœ๊ทธ๋žจ์ด ์‹œ์ž‘๋˜์„œ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐˆ ๋•Œ ๋ฌผ๋ฆฌ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๊ฐ€ ๊ฒฐ์ •๋œ๋‹ค.
    -> ์ปดํŒŒ์ผ ๋‹จ๊ณ„์—์„œ๋Š” ๋…ผ๋ฆฌ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋งŒ ๊ฒฐ์ •์ด ๋œ ์ƒํƒœ์ด๋‹ค.
    -> ์‹คํ–‰์‹œํ‚ค๊ฒŒ ๋˜๋ฉด ๋ฌผ๋ฆฌ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ์— ๋น„์–ด์žˆ๋Š” ๊ณต๊ฐ„์—(500๋ถ€ํ„ฐ)์˜ฌ๋ฆฐ๋‹ค.
  3. Run time binding
    -> Load time binding์ฒ˜๋Ÿผ ์‹คํ–‰์‹œ์— ๋ฌผ๋ฆฌ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ€๋Š” ๊ฒƒ์€ ๋˜‘๊ฐ™๋‹ค.
    -> ์ด ์ฃผ์†Œ๊ฐ€ ์‹คํ–‰๋„์ค‘์— ๋ฐ”๋€” ์ˆ˜ ์žˆ๋‹ค.
    -> ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ซ“๊ฒจ ๋‚  ์ˆ˜ ์žˆ๊ณ  ๋‚˜์ค‘์— ๋‹ค์‹œ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆด ๋•Œ 300๋ฒˆ์— ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋‹ค๋ฉด ๋น„์–ด์žˆ๋Š” 700๋ฒˆ์— ์˜ฌ๋ฆด ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.
  • Compile time binding์— ์˜ํ•ด ๋งŒ๋“ค์–ด์ง„ ์ฝ”๋“œ๋ฅผ ์ ˆ๋Œ€ ์ฝ”๋“œ(absolute code)๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.
    -> ์ ˆ๋Œ€์ฝ”๋“œ์˜ ๋ฉ”๋ชจ๋ฆฌ ์œ„์น˜๋ฅผ ๋ฐ”๊พธ๊ณ  ์‹ถ๋‹ค๋ฉด ์ปดํŒŒ์ผ์„ ๋‹ค์‹œ ํ•ด์•ผํ•œ๋‹ค.

  • Load time binding์— ์˜ํ•ด ๋งŒ๋“ค์–ด์ง„ ์ฝ”๋“œ๋ฅผ ์žฌ๋ฐฐ์น˜๊ฐ€๋Šฅ์ฝ”๋“œ(relocatable code)๋ผ๊ณ  ํ•œ๋‹ค.
    -> ํ•ญ์ƒ ํŠน์ •์œ„์น˜์— ์˜ฌ๋ผ๊ฐ€์•ผ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋น„์–ด์žˆ๋Š” ์œ„์น˜๋ผ๋ฉด ์–ธ์ œ๋“ ์ง€ ์˜ฌ๋ผ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ์˜๋ฏธํ•จ.
    -> ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ์‹œ์ž‘๋˜๋ฉด ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ๋ฐ”๊ฟ€ ์ˆ˜ ์—†๋‹ค.

  • Run time binding
    -> ๋Ÿฐํƒ€์ž„ ๋„์ค‘ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค.
    -> CPU๊ฐ€ ์–ด๋–ค ๋ฉ”๋ชจ๋ฆฌ์ฃผ์†Œ๋ฅผ ์š”์ฒญํ•  ๋•Œ ๋งˆ๋‹ค binding์„ ์ฒดํฌํ•ด๋ด์•ผ ํ•œ๋‹ค.
    -> ํ•˜๋“œ์›จ์–ด์  ์ง€์› ํ•„์š” (MMU)

  • CPU๊ฐ€ ๋ฐ”๋ผ๋ณด๋Š” ์ฃผ์†Œ๋Š” ์–ด๋–ค ์ฃผ์†Œ์ผ๊นŒ?
    -> CPU๋Š” ํ•˜๋“œ์›จ์ด์ด๊ธฐ ๋•Œ๋ฌธ์— Pysical add๋ฅผ ๋ณผ ๊ฒƒ ๊ฐ™์ง€๋งŒ Logical Add๋ฅผ ๋ณธ๋‹ค.
    -> ์™œ ์ด๋ ‡๊ฒŒ ๋ ๊นŒ?
    -> ์šฐ๋ฆฌ๊ฐ€ ์†Œ์ŠคํŒŒ์ผ์„ ์ปดํŒŒ์ผํ•ด์„œ ์‹คํ–‰ํŒŒ์ผ์„ ๋งŒ๋“ค๊ฒŒ ๋˜๋ฉด ๊ฐ๊ฐ์ด instruction์ธ๋ฐ CPU๊ฐ€ ์ด๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋ฉด ๋ฉ”๋ชจ๋ฆฌ 20๋ฒˆ์ง€, 30๋ฒˆ์ง€์— ์žˆ๋Š” ๋‚ด์šฉ์„ ์ฝ์–ด ๋“œ๋ ค์„œ ๋”ํ•˜๋Š” ์—ฐ์‚ฐ์„ ํ•ด์•ผํ•œ๋‹ค.
    -> ๊ทธ๋Ÿฐ๋ฐ ์—ฌ๊ธฐ ํ‘œ์‹œ๋˜์–ด์žˆ๋Š” ๊ฒƒ์€ Logical Add์ด๋‹ค.
    -> ๋ฌผ๋ฆฌ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ€๋”๋ผ๋„ ์ปดํŒŒ์ผ๋œ ์ฝ”๋“œ์— ๋“ค์–ด๊ฐ€์žˆ๋Š” ์ฃผ์†Œ๋Š” ๋ฐ”๊ฟ€ ์ˆ˜ ์—†๋‹ค.
    -> ์ฆ‰, ๋ฌผ๋ฆฌ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ€๋”๋ผ๋„ ์ปดํŒŒ์ผ ๋œ ์ฝ”๋“œ๋Š” ๋ฐ”๊ฟ€ ์ˆ˜ ์—†๋‹ค.
    -> CPU๊ฐ€ Add ๋ฅผ ํ•˜๊ณ  ์‹ถ์€๋ฐ ๊ทธ ์•ˆ์— ์žˆ๋Š” ์ฃผ์†Œ๋Š” Logical Add์ด๋‹ค.

  • CPU๊ฐ€ ๋งค๋ฒˆ ๋ฉ”๋ชจ๋ฆฌ ๋ช‡๋ฒˆ์งธ์— ์žˆ๋Š” ๋‚ด์šฉ์„ ๋‹ฌ๋ผ๊ณ  ํ•˜๋ฉด ๊ทธ๋•Œ ์ฃผ์†Œ๋ณ€ํ™˜์„ ํ•ด์„œ ๋ฌผ๋ฆฌ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ๊ณต๊ฐ„์„ ์ฐพ์€ ํ›„ ๊ทธ ๋‚ด์šฉ์„ ์ฝ์–ด์„œ CPU์— ์ „๋‹ฌ์„ ํ•ด์•ผํ•œ๋‹ค.
    -> ๊ทธ๋ž˜์„œ CPU๋Š” Logical Add๋ฅผ ๋ณธ๋‹ค๊ณ  ์–˜๊ธฐํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

  • Run time binding์€ ๊ทธ๋•Œ๊ทธ๋•Œ ๋งˆ๋‹ค ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์ฃผ์†Œ๋ณ€ํ™˜์šฉ ํ•˜๋“œ์›จ์–ด ์ง€์›์ด ํ•„์š”ํ•˜๋‹ค.
    -> ์ด ํ•˜๋“œ์›จ์–ด๋ฅผ 'MMU'๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

๐Ÿ“– 03. Memory-Management Unit (MMU)

  • ์‹ค์ œ๋กœ๋Š” ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ„๋‹ค.
    -> ๊ฐ๊ฐ์˜ ์ฝ”๋“œ๊ฐ€ ์งค๋ ค์„œ ์‚ฐ๋ฐœ์ ์œผ๋กœ ์˜ฌ๋ผ๊ฐ„๋‹ค.

  • ๊ทธ๋Ÿฌ๋‚˜ ์ง€๊ธˆ ๊ณต๋ถ€ํ•˜๋Š” ๊ฒƒ์€ ํ†ต์งธ๋กœ ์˜ฌ๋ผ๊ฐ€๋Š” ๊ฒƒ์„ ๊ธฐ์ค€์œผ๋กœ ์„ค๋ช…ํ•œ๋‹ค.

  • ์ฃผ์†Œ๋ณ€ํ™˜์„ ํ•  ๋•Œ MMU๋Š” register ๋‘๊ฐœ๋ฅผ ํ†ตํ•ด ๋ณ€ํ™˜๋œ๋‹ค.

  • ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์€ logical add๋งŒ ๋‹ค๋ฃฌ๋‹ค.

  • ์‹ค์ œ ํ”ผ์ง€์ปฌ add๋Š” ๋ณผ ์ˆ˜ ์—†๊ณ  ์•Œ ํ•„์š”๋„ ์—†๋‹ค.

๐Ÿ“– 04. Dynamic Relocation

  • CPU๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ 346๋ฒˆ์ง€์— ์žˆ๋Š” ๋‚ด์šฉ์„ ๋‹ฌ๋ผ๊ณ  ํ•˜๋ฉด logical add์ด๋ฏ€๋กœ ์ฃผ์†Œ๋ณ€ํ™˜์ด ํ•„์š”ํ•˜๋‹ค.

  • ์ด ์ฃผ์†Œ๋ณ€ํ™˜์„ ํ•ด์ฃผ๋Š” ํ•˜๋“œ์›จ์–ด๊ฐ€ MMU์ด๋ฉฐ ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ์ฃผ์†Œ๋ณ€ํ™˜์€ ๋ ˆ์ง€์Šคํ„ฐ ๋‘๊ฐœ๋กœ ์ฃผ์†Œ๋ณ€ํ™˜์ด ์ด๋ฃจ์–ด์ง„๋‹ค.

  1. Relocation register(=base register)
  2. limit register
  • ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์—์„œ ํ•ด๋‹น instruction์„ ์ฐพ๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌผ๋ฆฌ์ ๋ฉ”๋ชจ๋ฆฌ ์‹œ์ž‘์ฃผ์†Œ + vitual ๋ฉ”๋ชจ๋ฆฌ์—์„œ์˜ ์ฃผ์†Œ
    -> ๊ทธ ์œ„์น˜์— ์žˆ๋Š” ๋‚ด์šฉ์„ CPU์—๊ฒŒ ์ „๋‹ฌํ•˜๋ฉด ๋œ๋‹ค.

  • MMU์—์„œ base register์—๋Š” ๋ฉ”๋ชจ๋ฆฌ์˜ ์‹œ์ž‘์ฃผ์†Œ๋ฅผ ์ €์žฅํ•ด๋†“๋Š”๋‹ค.

  • limit register์€ ํ”„๋กœ์„ธ์Šค P1์˜ ํฌ๊ธฐ๋ฅผ ๋‹ด๊ณ ์žˆ๋‹ค.
    -> ํฌ๊ธฐ๋ฅผ ์ •ํ•ด๋†“๋Š” ์ด์œ ๋Š” ๋งŒ์•ฝ ์ด ํ”„๋กœ๊ทธ๋žจ์ด ์•…์˜์ ์ธ ํ”„๋กœ๊ทธ๋žจ์ด๋ผ์„œ ๋ณธ์ธ์˜ ํฌ๊ธฐ๊ฐ€ 3000์ธ๋ฐ๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋ณธ์ธ์˜ instruction์—์„œ 4000๋ฒˆ์งธ ๋‚ด์šฉ์„ CPU์—๊ฒŒ ๋‹ฌ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.
    -> ์ด ํ”„๋กœ๊ทธ๋žจ์€ 3000๋ฒˆ๊นŒ์ง€ ๋ฐ–์— ์—†๋Š”๋ฐ ์žˆ์ง€๋„ ์•Š์€ 4000๋ฒˆ์„ ๋‹ฌ๋ผ๊ณ  ํ•˜์—ฌ ์ฃผ์†Œ๋ณ€ํ™˜์„ ํ•˜๋ฉด ์ด ํ”„๋กœ๊ทธ๋žจ์— ํ•ด๋‹นํ•˜์ง€ ์•Š์€ ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ•˜๊ฒŒ ๋œ๋‹ค.
    -> ์ฃผ๋ฉด ์•ˆ๋œ๋‹ค.

๐Ÿ“– 05. Hardware Support for Address Translation

  • CPU๊ฐ€ ๋…ผ๋ฆฌ์ฃผ์†Œ๋ฅผ ๋‹ฌ๋ผ๊ณ  ์š”์ฒญํ•˜๋ฉด ์ด ๋…ผ๋ฆฌ์ฃผ์†Œ๊ฐ€ ํ”„๋กœ๊ทธ๋žจํฌ๊ธฐ๋ณด๋‹ค ๋” ํฐ ๋…ผ๋ฆฌ์ฃผ์†Œ๋ฅผ ์š”์ฒญํ•œ ๊ฒƒ์ด ์•„๋‹Œ๊ฐ€ ๋น„๊ตํ•œ๋‹ค.
    -> ๋ฒ—์–ด๋‚œ๋‹ค๋ฉด ํŠธ๋žฉ์ด ๊ฑธ๋ฆฌ๊ฒŒ ๋œ๋‹ค.
    -> ํŠธ๋žฉ์€ ์‹œ์Šคํ…œ interrupt์ด๊ธฐ ๋•Œ๋ฌธ์— ์ปค๋„์ด ํ™•์ธํ•˜๋ฉฐ ์ฒ˜๋ฆฌํ•œ๋‹ค.
    -> ๋…ผ๋ฆฌ์ฃผ์†Œ๊ฐ€ ํ”„๋กœ๊ทธ๋žจํฌ๊ธฐ๋ณด๋‹ค ์ž‘๋‹ค๋ฉด ์‹œ์ž‘์ฃผ์†Œ๋ฅผ ๋”ํ•ด์„œ ์ฃผ์†Œ๋ณ€ํ™˜์„ ํ•œ ํ›„ CPU์— ํ•ด๋‹น ๋‚ด์š”์„ ์ „๋‹ฌํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

๐Ÿ“– 06. Some Terminologies

๐Ÿ“– 06-1. Dynamic Loading

  • Dynamic : ๋™์ , Loading : ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆฌ๋Š” ๊ฒƒ

  • ํ”„๋กœ๊ทธ๋žจ์„ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ ค์•ผ ์‹คํ–‰์ด ๋˜๋Š”๋ฐ ๋™์ ์œผ๋กœ ์˜ฌ๋ฆฐ๋‹ค.
    -> ๋™์ ์œผ๋กœ ์˜ฌ๋ฆฐ๋‹ค๋Š” ๊ฒƒ์€ ํ•ด๋‹น ๋ฃจํ‹ด์ด ๋ถˆ๋ ค์งˆ ๋•Œ ๋งˆ๋‹ค ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆฌ๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค.

  • ํ”„๋กœ๊ทธ๋žจ์€ ๋ฐฉ์–ด์ ์ผ์ˆ˜๋ก ์ข‹์€๋ฐ ๊ทธ๋Ÿฌ๋ ค๋ฉด ๋งŽ์ด ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ฝ”๋“œ๋“ค์ด ์กด์žฌํ•œ๋‹ค.
    -> ์ด๋Ÿฐ ์ฝ”๋“œ๋“ค์€ ๋ฉ”๋ชจ๋ฆฌ์— ์ƒ์ฃผํ•ด ์žˆ์œผ๋ฉด ๋น„ํšจ์œจ์ ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋™์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ ค ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

  • ๋‹ค์ด๋‚˜๋ฏน ๋กœ๋”ฉ์˜ ๊ฐœ๋…์€ ์ •๊ตํ•˜๊ฒŒ ์•Œ์•„์•ผ ํ•˜๋Š” ๊ฒƒ์ด ์žˆ๋Š”๋ฐ ์ง€๊ธˆ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•œ๋‹ค๊ณ  ํ•˜๋ฉด ํ•„์š”ํ•  ๋•Œ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ€๊ณ  ํ•„์š”์—†์œผ๋ฉด ๋‚ด๋ ค๊ฐ€๋Š”๋ฐ ์ด๋Š” ๋‹ค์ด๋‚˜๋ฏน ๋กœ๋”ฉ์ด ์•„๋‹ˆ๋ผ ์šด์˜์ฒด์ œ์˜ ํŽ˜์ด์ง• ์‹œ์Šคํ…œ์— ์˜ํ•ด์„œ ์ด๋ฃจ์–ด์ง€๋Š” ๊ฒƒ์ด๋‹ค.
    -> ๋ณดํ†ต ๋‹ค์ด๋‚˜๋ฏน ๋กœ๋”ฉ์ด๋ผ ํ•˜๋ฉด ์šด์˜์ฒด์ œ๊ฐ€ ํ•ด์ฃผ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์ง์ ‘ํ•˜๋„๋ก ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.
    -> ๊ทธ๋Ÿผ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ๋ชจ๋‘ ๋‹ค์ด๋‚˜๋ฏนํ•˜๊ฒŒ ์ž‘์„ฑํ•˜๋ƒ?
    -> ๊ทธ๊ฑด ์•„๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์‰ฝ๊ฒŒ ํ•˜๋„๋ก OS๊ฐ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ง€์›ํ•œ๋‹ค.

  • ๋‹ค์ด๋‚˜๋ฏน ๋กœ๋”ฉ๊ณผ ๊ตฌ๋ณ„ํ•ด์„œ ์‚ฌ์šฉํ•ด์•ผํ•˜๋Š” ์šฉ์–ด Overlays

๐Ÿ“– 06-2. Overlays

  • Overlays๋Š” ์ดˆ์ฐฝ๊ธฐ ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์—์„œ ์›Œ๋‚™ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ž‘๊ธฐ ๋•Œ๋ฌธ์— ํ”„๋กœ๊ทธ๋žจ ํ•˜๋‚˜ํ•˜๋‚˜๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ ค๋‘๋Š” ๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅํ–ˆ๋‹ค.
    -> ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ํ”„๋กœ๊ทธ๋žจ์„ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ ค ์‹คํ–‰์‹œํ‚ฌ ๋•Œ๋Š” ํฐ ํ”„๋กœ๊ทธ๋žจ์„ ์ชผ๊ฐœ์„œ ์ด๋ฒˆ์—” ์ด์ชฝ๋ถ€๋ถ„์„ ์˜ฌ๋ ค๋‘๊ณ  ์‹คํ–‰ํ•˜๊ณ  ๋‹ค๋ฅธ ๋ถ€๋ถ„์ด ํ•„์š”ํ•˜๋ฉด ๊ทธ ๋ถ€๋ถ„์„ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ ค ์‹คํ–‰์‹œํ‚ค๋Š” ๋“ฑ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์ˆ˜์ž‘์—…์œผ๋กœ ์ฝ”๋”ฉ์„ ํ–ˆ๋‹ค.

  • Overlays๋ฅผ ๋‹ค๋ฅธ๋ง๋กœ Manual Overlay๋ผ๊ณ  ํ•˜๋Š”๋ฐ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์ˆ˜์ž‘์—…์œผ๋กœ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.
    -> ๊ต‰์žฅํžˆ ๋ถˆํŽธํ•˜๊ณ  ์–ด๋ ค์šด ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ๋  ๊ฒƒ์ด๋‹ค.

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

๐Ÿ“– 06-3. Swapping

  • Swapping์€ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ํ†ต์งธ๋กœ ์ซ“์•„๋‚ด๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•จ.(ํ•˜๋“œ๋””์Šคํฌ๋กœ)
    -> ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ซ“๊ฒจ๋‚˜๋Š” ๊ณณ์„ backing store(=swap area)๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

  • ์ซ“๊ฒจ๋‚˜์„œ backing store๋กœ ๋“ค์–ด๊ฐ€๋Š” ๊ฒƒ์„ swap out์ด๋ผ๊ณ  ํ•˜๊ณ  backing store๋กœ ์ซ“๊ฒจ๋‚ฌ๋˜๊ฒŒ ๋‚˜์˜ค๋Š” ๊ฒƒ์„ swap in ์ด๋ผ๊ณ  ํ•œ๋‹ค.

  • ์ค‘๊ธฐ ์Šค์ผ€์ค„๋Ÿฌ๊ฐ€ swap out์‹œํ‚ฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ์„ ์ •ํ•œ๋‹ค.
    -> ๊ทธ๋ž˜์„œ ์ค‘๊ธฐ ์Šค์ผ€์ค„๋Ÿฌ๋ฅผ swapper๋ผ๊ณ ๋„ ๋ถ€๋ฅธ๋‹ค.

  • ๊ทธ๋ ‡๋‹ค๋ฉด ์ค‘๊ธฐ ์Šค์ผ€์ค„๋Ÿฌ๋Š” ์–ด๋–ค ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ซ“์•„๋‚ด๋‚˜?
    -> CPU ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋‚ฎ์€ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ซ“์•„๋‚ด๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

  • swapping ์‹œ์Šคํ…œ์ด ์ง€์›์ด ๋˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฐ”์ธ๋”ฉ๊ณผ ํ•จ๊ป˜ ์ƒ๊ฐํ•ด์•ผํ•œ๋‹ค.
    -> ๋งŒ์•ฝ์— compile time binding์ด๋‚˜ Load time binding์ด ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋‹ค๋ฉด swapping์— ์˜ํ•ด์„œ ์ซ“๊ฒจ๋‚ฌ๋‹ค๊ณ  ๋‹ค์‹œ ๋Œ์•„์˜ฌ ๋•Œ ์›๋ž˜ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋กœ ๋Œ์•„์™€์•ผ ํ•œ๋‹ค.
    -> ๋‹ค๋ฅธ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋น„์–ด์žˆ๋”๋ผ๋„ ๋ฐ˜๋“œ์‹œ ์›๋ž˜ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋กœ ๋Œ์•„์™€์•ผ ํ•œ๋‹ค.

  • Swapping์„ ์ข€ ๋” ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Run time binding์ด ์‚ฌ์šฉ๋˜์–ด์•ผ ํ•œ๋‹ค.
    -> ์ซ“๊ฒจ๋‚ฌ๋‹ค๊ฐ€ ๋‹ค์‹œ ์˜ฌ๋ผ์˜ฌ ๋•Œ ์›๋ž˜ ์ฃผ์†Œ๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ์œ„์น˜๋กœ ๋Ž๊ธธ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

  • ๋ฉ”๋ชจ๋ฆฌ์—์„œ ํ”„๋กœ๊ทธ๋žจ์„ ํ†ต์งธ๋กœ ๋‚ด๋ ค๋†“๊ณ  ์˜ฌ๋ ค๋†“๋Š” ์ผ์€ ๋ฐฉ๋Œ€ํ•œ ์–‘์ด ์›€์ง์ด๋Š” ๊ฒƒ์ด๋‹ค.
    -> ํŒŒ์ผ ์ž…์ถœ๋ ค๊ณผ ๋‹ค๋ฅด๊ฒŒ ์–‘์ด ๊ต‰์žฅํžˆ ๋งŽ๋‹ค.
    -> ๋”ฐ๋ผ์„œ ๋””์Šคํฌ์— ์ ‘๊ทผํ•˜๋Š” ์‹œ๊ฐ„์ด transfer time(swap๋˜๋Š” ์–‘์— ๋น„๋ก€ํ•˜๋Š” ์‹œ๊ฐ„)์ด๋‹ค.

  • ํ”„๋กœ๊ทธ๋žจ์ด ๋ฉ”๋ชจ๋ฆฌ์—์„œ ํ†ต์งธ๋กœ ์ซ“๊ฒจ๋‚˜๋Š” ๊ฒƒ์„ swapping์ด๋ผ๊ณ  ํ•œ๋‹ค.
    -> ์ตœ๊ทผ์—๋Š” ํŽ˜์ด์ง• ์‹œ์Šคํ…œ์—์„œ ์กฐ๊ฐ๋“ค์ด ์ซ“๊ฒจ๋‚˜๊ณ  ์˜ฌ๋ผ์˜ค๋Š” ๊ฒƒ๋„ ๊ทธ ํŽ˜์ด์ง€๊ฐ€ swap out, in ๋๋‹ค๊ณ  ํ‘œํ˜„ํ•˜๊ธฐ๋„ ํ•œ๋‹ค.
    -> ์›์น™์ ์œผ๋กœ๋Š” ์ฃผ์†Œ๊ณต๊ฐ„์ด ์ „๋ถ€๋‹ค ์ซ“๊ฒจ๋‚˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

๐Ÿ“– 06-4. Dynamic Linking

  • Linking : ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•œ ๋‹ค์Œ์— ๋ณดํ†ต ์ปดํŒŒ์ผํ•˜๊ณ  ๋งํฌ์—์„œ ์‹คํ–‰ํŒŒ์ผ์„ ๋งŒ๋“ ๋‹ค.
    -> ๋งํฌ๋ผ๋Š” ๊ฒƒ์€ ์—ฌ๋Ÿฌ๊ตฐ๋ฐ ์กด์žฌํ•˜๋Š” ์ปดํŒŒ์ผ๋œ ํŒŒ์ผ๋“ค์„ ๋ฌถ์–ด์„œ ํ•˜๋‚˜์˜ ์‹คํ–‰ํŒŒ์ผ์„ ๋งŒ๋“œ๋Š” ๊ณผ์ •

  • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋‚ด ์‹คํ–‰ํŒŒ์ผ ์ฝ”๋“œ์— ํฌํ•จ๋˜๋Š” ๊ฒƒ์„ static linking์ด๋ผ๊ณ  ํ•œ๋‹ค.

  • ๋‹ค์ด๋‚˜๋ฏน ๋งํ‚น์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๋‹ค๊ฐ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ˜ธ์ถœํ•˜๋Š”๊ณณ์— ์ด๋ฅด๊ฒŒ ๋˜๋ฉด ๊ทธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์–ด๋””์— ์žˆ๋Š”์ง€๋ฅผ ์ฐพ๋Š”๋‹ค.
    -> ๋ณ„๋„์˜ ํŒŒ์ผ์˜ ํ˜•ํƒœ๋กœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์กด์žฌํ•œ๋Š”๋ฐ ๊ทธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆฌ๊ณ  ์ด๋ฏธ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ€ ์žˆ๋‹ค๋ฉด ๊ทธ ์ฃผ์†Œ๋กœ๊ฐ€์„œ ์‹คํ–‰ํ•œ๋‹ค.

์˜ˆ) Printfํ•จ์ˆ˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค์—ˆ๋‹ค.
-> Printf ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ฝ”๋“œ๊ฐ€ Static linking์ด ์ด๋ฃจ์–ด์ง€๊ฒŒ ๋˜๋ฉด ๋‚ด๊ฐ€๋งŒ๋“  ์‹คํ–‰ํŒŒ์ผ์•ˆ Printf๊ฐ€ ํฌํ•จ๋˜๊ณ  ์‹คํ–‰๋œ๋‹ค.
-> ์‹คํ–‰์‹œํ‚ค๊ฒŒ ๋˜๋ฉด ๋‚ด์ฝ”๋“œ์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ฝ”๋“œ์˜ ๊ตฌ๋ณ„์—†์ด ํ”„๋กœ๊ทธ๋žจ ์ฃผ์†Œ๊ณต๊ฐ„์•ˆ์—์„œ ์‹คํ–‰๋œ๋‹ค.
-> ๋งŒ์•ฝ 100๋ช…์ด Printf๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๊ณ  ์‹คํ–‰ํŒŒ์ผ๋กœ ๋งŒ๋“ ๋‹ค์Œ ํ”„๋กœ๊ทธ๋žจ 100๊ฐœ๋ฅผ ์‹คํ–‰์‹œํ‚ค๋ฉด ๋น„๋ก ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ํ•˜๋Š” ์ฝ”๋“œ๋ผ๋„ 100๊ฐœ์˜ ํ”„๋กœ๊ทธ๋žจ ๋ชจ๋‘ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐˆ ๊ฒƒ์ด๋‹ค.

  • ๋‹ค์ด๋‚˜๋ฏน ๋งํ‚น์€ Printf๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ–ˆ๋Š”๋ฐ Printfํ•จ์ˆ˜์˜ ์ฝ”๋“œ๊ฐ€ ๋‚ด ์‹คํ–‰ํŒŒ์ผ์— ๋“ค์–ด๊ฐ€์ง€ ์•Š๊ณ  ๊ทธ๋ƒฅ Printf๋ผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์–ด๋”ง๋Š”์ง€ ์œ„์น˜๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ๋งŒ ๋‚ด ํ”„๋กœ๊ทธ๋žจ์•ˆ์— ๋„ฃ๋Š”๊ฒƒ์ด๋‹ค.
    ๊ทธ๋ž˜์„œ ์‹คํ–‰์ด ๋˜๋ฉด 100๋ช…์˜ ์ฝ”๋“œ๊ฐ€ Printf๋ฅผ ์จ์„œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ–ˆ๋Š”๋ฐ ๋‹ค์ด๋‚˜๋ฏน ๋งํ‚น์„ ์‚ฌ์šฉํ•œ๋‹ค ๊ทธ๋Ÿผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ์‹œํ–‰๋  ๋•Œ Printf๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ์ง€์ ์— ์ด๋ฅด๋ฉด ์ฝ”๋“œ๊ฐ€ ์—†๋‹ค.
    -> ๊ทธ๋ž˜์„œ ์ฝ”๋“œ์— ํ•ด๋‹นํ•˜๋Š” ํŒŒ์ผ์„ ์ฐพ์•„์„œ ๊ทธ๊ฒƒ์„ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ ค์„œ ์‹คํ–‰ํ•œ๋‹ค.
    -> ๋งŒ์•ฝ 100์ด Printf๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์— ์˜ํ•ด์„œ Printf์˜ ๋‹ค์ด๋‚˜๋ฏน ๋งํ‚น๋˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์™€ ์žˆ๋‹ค๋ฉด ๊ทธ๊ฒƒ์„ ๊ณต์œ ํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ๋‹ค์ด๋‚˜๋ฏน ๋งํ‚น์„ ํ•ด์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ shared ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.
    -> ๋ฆฌ๋ˆ…์Šค์—์„œ๋Š” shared ์˜ค๋ธŒ์ ํŠธ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.
    -> ์œˆ๋„์šฐ์—์„œ๋Š” DLL์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

๐Ÿ“– 07. Allocation of Physical Memory

  • ๋ฌผ๋ฆฌ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์–ด๋–ป๊ฒŒ ๊ด€๋ฆฌํ•  ๊ฒƒ์ธ๊ฐ€?

  • ๋ฌผ๋ฆฌ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋‚ฎ์€ ์ฃผ์†Œ๋ถ€๋ถ„์— ์šด์˜์ฒด์ œ ์ปค๋„์ด ํ•ญ์ƒ ์ƒ์ฃผํ•˜๊ณ  ์žˆ๋‹ค.
    -> ๋†’์€ ์ฃผ์†Œ์˜์—ญ์—๋Š” ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์ด ์˜ฌ๋ผ๊ฐ€๊ฒŒ ๋œ๋‹ค.
    -> ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์ด ์˜ฌ๋ผ๊ฐ€๋Š” ๊ณณ์„ ํฌ๊ฒŒ ๋‘๊ฐ€์ง€๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค
    1. Contiguous allocation
    -> ํ”„๋กœ๊ทธ๋žจ์ด ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐˆ ๋•Œ ํ†ต์งธ๋กœ ์˜ฌ๋ผ๊ฐ€๋Š” ๊ฒƒ์„ ๋งํ•จ.
    2. Nonontiguous allocation
    -> ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌ์„ฑํ•˜๋Š” ์ฃผ์†Œ๊ณต๊ฐ„์„ ์ž˜๊ฒŒ ์ชผ๊ฐœ์„œ ์ผ๋ถ€๋Š” ์ €์ชฝ์— ์˜ฌ๋ผ๊ฐ€๊ณ  ์ผ๋ถ€๋Š” ๋‹ค๋ฅธ์ชฝ์— ์˜ฌ๋ผ๊ฐˆ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์„ ๋งํ•จ.
    -> ํ˜„๋Œ€๋Š” ๋ถˆ์—ฐ์† ํ• ๋‹น์„ ์‚ฌ์šฉํ•œ๊ณ  ์žˆ๋‹ค.
    -> ๊ทธ์ค‘์—์„œ๋„ ํ”„๋กœ๊ทธ๋žจ์˜ ์ฃผ์†Œ๊ณต๊ฐ„์„ ๊ฐ™์€ ํฌ๊ธฐ์˜ ํŽ˜์ด์ง€๋กœ ์ž˜๋ผ์„œ ํŽ˜์ด์ง€ ๋‹จ์œ„๋กœ ๋ฉ”๋ชจ๋ฆฌ ์—ฌ๊ธฐ์ €๊ธฐ๋กœ ์˜ฌ๋ฆฌ๊ณ  ๋‚ด๋ฆฐ๋‹ค.

๐Ÿ“– 07-1. Contiguous allocation

  • ์ด ์—ฐ์†ํ• ๋‹น๋„ ๋‘๊ฐ€์ง€๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.
  1. ๊ณ ์ •๋ถ„ํ• ๋ฐฉ์‹
    -> ํ”„๋กœ๊ทธ๋žจ์ด ๋“ค์–ด๊ฐˆ ์‚ฌ์šฉ์ž ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ๋ฏธ๋ฆฌ ํŒŒํ‹ฐ์…˜์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋†“๋Š” ๊ฒƒ์„ ๋งํ•จ.

  2. ๊ฐ€๋ณ€๋ถ„ํ• ๋ฐฉ์‹
    -> ํ”„๋กœ๊ทธ๋žจ์ด ๋“ค์–ด๊ฐˆ ์‚ฌ์šฉ์ž ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ๋ฏธ๋ฆฌ ๋‚˜๋ˆ„์ง€ ์•Š๋Š” ๊ฒƒ์„ ๋งํ•จ.

  • ๊ณ ์ • ๋ถ„ํ•  ๋ฐฉ์‹์—์„œ ๋ฏธ๋ฆฌ ๋ถ„ํ•  4๊ฐœ๋ฅผ ๋งŒ๋“ค์–ด ๋†“์•˜๋‹ค.
    -> ๊ฐ™์€ ํฌ๊ธฐ๋กœ ๋‚˜๋ˆŒ์ˆ˜๋„ ์žˆ๊ณ  ์•„๋‹ ์ˆ˜๋„ ์žˆ๋‹ค.
    -> ์ด๋Ÿฐ์ƒํ™ฉ์—์„œ ํ”„๋กœ๊ทธ๋žจA๊ฐ€ ์‹คํ–‰๋˜๋ฉด ๋ถ„ํ• 1์˜ ํฌ๊ธฐ์™€ ๊ฐ™๋‹ค๋ฉด ๋ถ„ํ•  1์— ์˜ฌ๋ ค๋†“์œผ๋ฉด ๋œ๋‹ค.
    -> ๊ทธ๋‹ค์Œ์— ํ”„๋กœ๊ทธ๋žจB๊ฐ€ ์‹คํ–‰๋˜์„œ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ€์•ผ ํ•˜๋Š”๋ฐ ๋ถ„ํ• 2๋ณด๋‹ค ์ปค์„œ ๋ถ„ํ•  2์— ๋“ค์–ด๊ฐˆ ์ˆ˜ ์—†๋‹ค.
    -> ํ”„๋กœ๊ทธ๋žจB๋Š” ๋ถ„ํ•  3๋ฒˆ์— ๋“ค์–ด๊ฐ€๊ฒŒ ๋œ๋‹ค.
    -> ๋‚ญ๋น„๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์กฐ๊ฐ์ด ์ƒ๊ธฐ๊ฒŒ ๋˜๋Š”๋ฐ ์™ธ๋ถ€์กฐ๊ฐ, ๋‚ด๋ถ€์กฐ๊ฐ์œผ๋กœ ๋‚˜๋ˆ ์„œ ์ด์•ผ๊ธฐํ•œ๋‹ค.

  • ๊ณ ์ • ๋ถ„ํ•  ๋ฐฉ์‹์€ ๋ถ„ํ• ๊ณผ ํ”„๋กœ๊ทธ๋žจํฌ๊ธฐ๊ฐ€ ๋‹ฌ๋ผ์„œ ์ƒ๊ธธ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๋ฅผ ์•ผ๊ธฐํ•จ.

  • ๊ฐ€๋ณ€ ๋ถ„ํ•  ๋ฐฉ์‹
    -> ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋  ๋•Œ๋งˆ๋‹ค ์ฐจ๊ณก์ฐจ๊ณก ์˜ฌ๋ ค๋†“๋Š” ๊ฒƒ์„ ๋งํ•จ.
    -> ์‹คํ–‰์ด ๋˜๋‹ค๊ฐ€ B๊ฐ€ ๋๋‚˜๋ฉด ๊ณต๊ฐ„์ด ๋นˆ๊ณต๊ฐ„์ด ๋  ๊ฒƒ์ด๋‹ค.
    -> ์ดํ›„ D๊ฐ€ ์‹คํ–‰์ด ๋˜๋Š”๋ฐ B๊ฐ€ ๋“ค์–ด๊ฐ”๋˜ ๊ณต๊ฐ„์— ๋“ค์–ด๊ฐˆ ์ˆ˜ ์—†๋‹ค
    -> D๋Š” ์•„๋ž˜์ชฝ์œผ๋กœ ๋“ค์–ด๊ฐ€๊ฒŒ ๋œ๋‹ค.
    -> ํ”„๋กœ๊ทธ๋žจํฌ๊ธฐ๋ณด๋‹ค ๋‚จ์€ ๊ณต๊ฐ„์ด ์ž‘๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•œ ๊ณต๊ฐ„์ด๋‹ค.
    -> ์™ธ๋ถ€ ์กฐ๊ฐ์„ ์˜๋ฏธํ•œ๋‹ค.

  • ์™ธ๋ถ€์กฐ๊ฐ : ํ”„๋กœ๊ทธ๋žจ์„ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆฌ๊ณ  ์‹ถ์€๋ฐ ์˜ฌ๋ฆด๋ ค๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ํฌ๊ธฐ๋ณด๋‹ค ๋ฉ”๋ชจ๋ฆฌ์˜ ํฌ๊ธฐ๊ฐ€ ์ž‘์•„์„œ ์‚ฌ์šฉ์ด ์•ˆ๋œ๋‹ค.
    -> ํ”„๋กœ๊ทธ๋žจ์ด ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„์ž„์—๋„ ๋„ˆ๋ฌด ์ž‘์•„์„œ ์‚ฌ์šฉ์ด ์•ˆ๋œ ๊ฒƒ์„ ์˜๋ฏธํ•จ.

  • ๋‚ด๋ถ€์กฐ๊ฐ : ํ”„๋กœ๊ทธ๋žจ์˜ ํฌ๊ธฐ๊ฐ€ ๋ถ„ํ•  3๋ฒˆ๋ณด๋‹ค ์ž‘์•„ ๋‚จ๋Š” ์กฐ๊ฐ์ด ์กด์žฌํ•œ๋‹ค.
    -> ํ”„๋กœ๊ทธ๋žจB์—๊ฒŒ ํ• ๋‹น์ด ๋œ ๊ณต๊ฐ„์ด์ง€๋งŒ ์‚ฌ์šฉ์€ ์•ˆ๋˜๋Š” ๊ณต๊ฐ„์ด๋‹ค.

  • ๊ฐ€์šฉ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„(Hole) ์–ด๋””์— ์ง‘์–ด๋„ฃ์–ด์•ผ ํ•  ๊ฒƒ์ธ๊ฐ€?
    -> ํฌ๊ฒŒ 3๊ฐ€์ง€ ์กด์žฌ

  • Best-fit : ํ™€์„ ๋ชจ๋‘ ์ฐพ์•„๋ณธ ๋‹ค์Œ์— ํ™€์˜ ํฌ๊ธฐ์™€ ๊ฐ€์žฅ ์ž˜ ๋งž๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์˜ฌ๋ ค๋†“๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•จ.
    -> ํ™€๋“ค์„ ํƒ์ƒ‰ํ•˜๋Š” ์‹œ๊ฐ„ ๋ถ€๋‹ด์ด ์žˆ๋‹ค.

  • ์ค‘๊ฐ„์ค‘๊ฐ„์— ์ž‘์€ ํ™€๋“ค์ด ์ƒ๊ธฐ๊ฒŒ ๋ ํ…๋ฐ ์ด๋Ÿฐ ํ™€๋“ค์„ ๋ฌถ์–ด์„œ ์ฆ‰, ์‚ฌ์šฉ์ค‘์ธ ๋ฉ”๋ชจ๋ฆฌ๊ณต๊ฐ„์„ ํ•œ๊ณณ์œผ๋กœ ๋ฐ€์–ด๋†“์„ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.
    -> ์ด๋ฅผ compaction์ด๋ผ๊ณ  ํ•œ๋‹ค.

  • ์‹คํ–‰์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์„ ํ•œ ๊ณณ์œผ๋กœ ๋ฏธ๋ฃจ๋Š” ์ž‘์—…์ด๊ธฐ ๋•Œ๋ฌธ์— ํ˜ธ๋ฝํ˜ธ๋ฝํ•œ ๋ฐฉ๋ฒ•์€ ์•„๋‹ˆ๋‹ค.
    -> ๋น„์šฉ์ด ๋งŽ์ด ๋“ฌ.
    -> ๋ฐ”์ธ๋”ฉ๊ณผ ๊ด€๋ จ๋œ ๋ฌธ์ œ์ด๋‹ค.
    -> ์•„๋ฌด๋•Œ๋‚˜ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๊ณ  ๋Ÿฐํƒ€์ž„ ๋ฐ”์ธ๋”ฉ์ด ์ง€์›๋˜์–ด์•ผ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ๋‹ค.
    -> ํ•œ ๊ณณ์œผ๋กœ ๋ฏธ๋ค„๋†“๋Š”๊ฒƒ๋„ ์ข‹๊ฒ ์ง€๋งŒ ์ตœ์†Œํ•œ์˜ ํ”„๋กœ๊ทธ๋žจ ์ด๋™์œผ๋กœ ํฐ ํ™€์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ๋” ํšจ์œจ์ ์ด๋‹ค.

๐Ÿ“– 07-2. Noncontiguous allocation

  • ๋ถˆ์—ฐ์† ํ• ๋‹น ๊ธฐ๋ฒ•์€ ํฌ๊ฒŒ ํŽ˜์ด์ง• ๊ธฐ๋ฒ•๊ณผ ์„ธ๊ทธ๋งจํ…Œ์ด์…˜ ๊ธฐ๋ฒ•์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.

  • ํŽ˜์ด์ง• ๊ธฐ๋ฒ• : ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌ์„ฑํ•˜๋Š” ์ฃผ์†Œ๊ณต๊ฐ„์„ ๊ฐ™์€ ํฌ๊ธฐ์˜ ํŽ˜์ด์ง€๋กœ ์ž๋ฅด๋Š” ๊ฒƒ์ด๋‹ค.
    -> ๊ฐ™์€ ํฌ๊ธฐ๋กœ ์ž˜๋ผ์„œ ํŽ˜์ด์ง€ ๋‹จ์œ„๋กœ ๋ฌผ๋ฆฌ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ ค๋†“๊ฑฐ๋‚˜ backing store์— ๋‚ด๋ ค๋†“๊ฑฐ๋‚˜.
    -> ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌ์„ฑํ•˜๋Š” ์ฃผ์†Œ๊ณต๊ฐ„์„ ๊ฐ™์€ ํฌ๊ธฐ์˜ ํŽ˜์ด์ง€๋กœ ์ž๋ฅธ ๊ฒƒ์ฒ˜๋Ÿผ ๋ฌผ๋ฆฌ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ์— ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์ด ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋Š” ํŽ˜์ด์ง€ ํฌ๊ธฐ๋กœ ๋ฏธ๋ฆฌ ์ž๋ฅด๋Š”๋ฐ ์ด๋ฅผ ํŽ˜์ด์ง•ํ”„๋ ˆ์ž„์ด๋ผ๊ณ  ํ•œ๋‹ค.
    -> ์ด๋Ÿฐ ํŽ˜์ด์ง• ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ฉด ํ™€๋“ค์˜ ํฌ๊ธฐ๊ฐ€ ๊ท ์ผํ•˜์ง€ ์•Š์•„์„œ ์–ด๋””๋‹ค๊ฐ€ ์ง‘์–ด๋„ฃ์•ผ ํ• ์ง€ ํ˜น์€ ํ•œ๊ณณ์œผ๋กœ ๋ฏธ๋ค„๋†“์•„์•ผ ํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ์—†์–ด์ง„๋‹ค.
    -> ๋น„์–ด์žˆ๋Š” ๊ณต๊ฐ„์ด๋ฉด ํŽ˜์ด์ง€ ํฌ๊ธฐ๊ณผ ๊ฐ™๊ธฐ ๋•Œ๋ฌธ์— ํŽ˜์ด์ง€ ํฌ๊ธฐ์˜ ํ”„๋กœ๊ทธ๋žจ์€ ์–ด๋””๋“  ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.
    -> ๋ถˆ์—ฐ์† ํ• ๋‹น์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด MMU์— ์˜ํ•ด์„œ ์ฃผ์†Œ๋ณ€ํ™˜์„ ํ•  ๋•Œ ๋‹จ์ง€ ์‹œ์ž‘์ฃผ์†Œ๋ฅผ ๋”ํ•ด์„œ ์ฃผ์†Œ๋ณ€ํ™˜์„ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๊ณ  ์ž˜๋ ค์ง„ ๊ฐ๊ฐ์˜ ํŽ˜์ด์ง€๊ฐ€ ๋ฌผ๋ฆฌ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ์–ด๋””์— ์˜ฌ๋ผ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•ด๋ด์•ผ๊ณ  ์ฆ‰, ์ฃผ์†Œ๋ณ€ํ™˜์„ ํŽ˜์ด์ง€๋งˆ๋‹ค ํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ข€ ๋” ๋ณต์žกํ•ด์ง„๋‹ค.

  • Segmentation ๊ธฐ๋ฒ• : ํ”„๋กœ๊ทธ๋žจ์˜ ์ฃผ์†Œ๊ณต๊ฐ„์„ ๊ฐ™์€ ํฌ๊ธฐ๋กœ ์ž๋ฅด๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์˜๋ฏธ์žˆ๋Š” ๋‹จ์œ„๋กœ ์ž๋ฅด๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•จ.
    -> ํ”„๋กœ๊ทธ๋žจ์˜ ์ฃผ์†Œ๊ณต๊ฐ„์ด๋ผ๋Š” ๊ฒƒ์€ ์ฝ”๋“œ, ๋ฐ์ดํ„ฐ, ์Šคํƒ ํฌ๊ฒŒ 3๊ฐ€์ง€ ์˜๋ฏธ์žˆ๋Š” ๊ณต๊ฐ„์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.
    -> Segmentation ๊ธฐ๋ฒ•์€ ์ฝ”๋“œ, ๋ฐ์ดํ„ฐ, ์ŠคํƒSegmentation๋กœ ์ž˜๋ผ์„œ ๊ฐ๊ฐ์˜ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ํ•„์š”์‹œ์— ๋ฌผ๋ฆฌ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ๋‹ค๋ฅธ์œ„์น˜์— ์˜ฌ๋ ค๋†“๋Š” ๊ธฐ๋ฒ•
    -> 3๊ฐ€์ง€ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋” ์ž˜๊ฒŒ ์ž๋ฅผ ์ˆ˜ ์žˆ๋‹ค.
    -> ํ•จ์ˆ˜๋ฅผ ์„ธ๊ทธ๋จผํŠธ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.
    -> ์ด ์—ญ์‹œ ์„ธ๊ทธ๋จผํŠธ ๋‹จ์œ„๋กœ ์ฃผ์†Œ ๋ณ€ํ™˜์„ ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.
    -> ์„ธ๊ทธ๋จผํŠธ๋Š” ์˜๋ฏธ ๋‹จ์œ„๋กœ ์ž๋ฅธ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ํฌ๊ธฐ๊ฐ€ ๊ท ์ผํ•˜์ง€๋Š” ์•Š๋Š”๋‹ค.
    -> ํ”„๋กœ๊ทธ๋žจ์„ ์˜ฌ๋ฆด ๋•Œ ๊ท ์ผํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— Dynamic Storage-Allocation Problem๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

  • contiguous, Noncontiguous ๋ฐฉ์‹์€ ํ†ต์งธ๋กœ ์˜ฌ๋ฆฌ์ง€ ์•Š๊ณ  ์ž˜๋ผ์„œ ์˜ฌ๋ฆฐ๋‹ค.
    -> Noncontiguous๋Š” ์‚ฐ๋ฐœ์ ์œผ๋กœ ์˜ฌ๋ฆด ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ“– 08. Paging





[์ถœ์ฒ˜] ๋ฐ˜ํšจ๊ฒฝ ๊ต์ˆ˜๋‹˜ ๊ฐ•์˜

profile
๋ฉˆ์ถ”์ง€ ์•Š๊ธฐ

0๊ฐœ์˜ ๋Œ“๊ธ€