๐Ÿ“Œ Memory Management 4

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

๐Ÿ“– 01. Segmetation

  • ํ”„๋กœ์„ธ์Šค์˜ ์ฃผ์†Œ๊ณต๊ฐ„์„ ๋™์ผํ•œ ํฌ๊ธฐ์˜ ํŽ˜์ด์ง€๊ฐ€ ์•„๋‹ˆ๋ผ ์˜๋ฏธ ๋‹จ์œ„์ธ ์„ธ๊ทธ๋จผํŠธ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„์–ด์„œ ๊ด€๋ฆฌํ•œ๋‹ค.
    -> ๋ฌผ๋ฆฌ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ์—๋Š” ์„ธ๊ทธ๋จผํŠธ ๋‹จ์œ„๋กœ ์˜ฌ๋ผ๊ฐˆ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ฃผ์†Œ ๋ณ€ํ™˜๋„ ์„ธ๊ทธ๋จผํŠธ ๋‹จ์œ„๋กœ ์ด๋ฃจ์–ด์ ธ์•ผ ํ•˜๋ฉฐ ํ…Œ์ด๋ธ”์„ ํ†ตํ•ด ๋ณ€ํ™˜์ด ๋œ๋‹ค.

  • CPU๊ฐ€ ์ด๋Ÿฌํ•œ ๋…ผ๋ฆฌ์ฃผ์†Œ๋ฅผ ์ฃผ๊ฒŒ ๋˜๋ฉด ๋ฌผ๋ฆฌ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ์˜ ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด ์„ธ๊ทธ๋จผํŠธ ํ…Œ์ด๋ธ”์„ ๊ฒ€์‚ฌํ•œ๋‹ค.
    -> ๋…ผ๋ฆฌ์ฃผ์†Œ๋Š” ๋‘ ๋ถ€๋ถ„์œผ๋กœ ๋‚˜๋ˆ„์–ด์ง€๊ณ  ์•ž๋ถ€๋ถ„์€ ์„ธ๊ทธ๋จผํŠธ ๋ฒˆํ˜ธ์— ํ•ด๋‹นํ•˜๋Š” ๋ถ€๋ถ„, ๋’ท ๋ถ€๋ถ„์€ ์„ธ๊ทธ๋จผํŠธ ์•ˆ์—์„œ ์–ผ๋งˆ๋‚˜ ๋–จ์–ด์ ธ ์žˆ๋Š”์ง€ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.
    -> ์„ธ๊ทธ๋จผํŠธ ํ…Œ์ด๋ธ”์—๋Š” ์—”ํŠธ๋ฆฌ๊ฐ€ ๋ช‡ ๊ฐœ ์žˆ๋Š๋ƒ, ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์ธ ๊ฒฝ์šฐ ์—”ํŠธ๋ฆฌ ์ˆ˜๊ฐ€ ๋ฏธ๋ฆฌ ์ •ํ•ด์ ธ ์žˆ๋‹ค. ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ์˜์—ญ๋งŒํผ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ์—”ํŠธ๋ฆฌ๊ฐ€ ๋งŒ๋“ค์–ด์ง„๋‹ค.
    -> ์„ธ๊ทธ๋จผํŠธ ํ…Œ์ด๋ธ” ์—”ํŠธ๋ฆฌ๋Š” ์ด ํ”„๋กœ๊ทธ๋žจ์ด ์‚ฌ์šฉํ•˜๋Š” ์„ธ๊ทธ๋จผํŠธ์˜ ๊ฐœ์ˆ˜๋กœ ์ •ํ•ด์ง„๋‹ค.
    -> ์ด ์„ธ๊ทธ๋จผํŠธ๊ฐ€ ๋ฌผ๋ฆฌ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ์–ด๋””์— ์˜ฌ๋ผ๊ฐ€ ์žˆ๋Š”๊ฐ€๊ฐ€ ์ฃผ์†Œ๋ณ€ํ™˜์„ ์ด์•ผ๊ธฐํ•œ๋‹ค. (base + d)

  • ํŽ˜์ด์ง• ๊ธฐ๋ฒ•๊ณผ ๋‹ค๋ฅด๊ฒŒ ์ƒ๊ฐํ•ด์•ผ ํ•  ๊ฒƒ์ด ์žˆ๋‹ค.
    -> ์„ธ๊ทธ๋จผํŠธ๋Š” ์˜๋ฏธ ๋‹จ์œ„๋กœ ์ž๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ํฌ๊ธฐ๊ฐ€ ๋‹ค๋ฅด๋‹ค.
    -> ํ…Œ์ด๋ธ”์— ์„ธ๊ทธ๋จผํŠธ์˜ ์‹œ์ž‘์œ„์น˜ ์ด์™ธ์—์„œ ๊ธธ์ด๋ฅผ ๋‹ด๊ณ  ์žˆ๋‹ค. (limit)

  • d๊ฐ€ limit๋ณด๋‹ค ํฌ๋‹ค๋ฉด ์ ์ ˆํ•˜์ง€ ์•Š์€ ๋ฉ”๋ชจ๋ฆฌ ์ฐธ์กฐ๊ฐ€ ๋œ๋‹ค.
    -> Trap!

  • Segment-table base register๊ณผ Segment-table length register์€ ํ…Œ์ด๋ธ” ์•ˆ์— ์žˆ๋Š” base, limit๊ณผ ๋‹ค๋ฅธ ์ด์•ผ๊ธฐ๋‹ค.
    -> ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์„ธ๊ทธ๋จผํŠธ ํ…Œ์ด๋ธ”์˜ ์œ„์น˜์™€ ํ”„๋กœ๊ทธ๋žจ์ด ์‚ฌ์šฉํ•˜๋Š” ์„ธ๊ทธ๋จผํŠธ ์ˆ˜๋ฅผ ์œ ์ง€ํ•ด์•ผ ํ•œ๋‹ค.

  • ์„ธ๊ทธ๋จผํŠธ ๋ฒˆํ˜ธ๋ฅผ 5๋ฒˆ ์š”์ฒญํ–ˆ๋Š”๋ฐ ํ”„๋กœ๊ทธ๋žจ์ด ์‹ค์ œ ์‚ฌ์šฉํ•˜๋Š”๊ฒƒ์€ 3๊ฐœ ๋ฟ์ผ ์ˆ˜ ์žˆ๋‹ค.
    -> ์ด๋ฅผ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ• ๊นŒ?
    -> ์„ธ๊ทธ๋จผํŠธ ๋ฒˆํ˜ธ์™€ Segment-table length register์˜ ๊ฐ’์„ ๋น„๊ตํ•ด๋ณด๋ฉด ๋œ๋‹ค.

  • ํŽ˜์ด์ง•๊ธฐ๋ฒ•๊ณผ ์„ธ๊ทธ๋จผํŠธ ๊ธฐ๋ฒ•์„ ๋น„๊ตํ•œ๋‹ค๋ฉด?

  • ํŽ˜์ด์ง• ๊ธฐ๋ฒ•์€ ํฌ๊ธฐ๊ฐ€ ๋ชจ๋‘ ๋˜‘๊ฐ™๊ธฐ ๋•Œ๋ฌธ์— ๋น„์–ด์žˆ๋Š” ํ”„๋ ˆ์ž„์ด๋ผ๋ฉด ์–ธ์ œ๋“  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
    -> ์„ธ๊ทธ๋จผํŠธ๋Š” ํฌ๊ธฐ๊ฐ€ ๋ชจ๋‘ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ํ™€์ด ์ƒ๊ธด๋‹ค. (Allocation๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด๋‹ค.)

  • ํŽ˜์ด์ง€๋Š” ๊ฐœ์ˆ˜๊ฐ€ ๊ต‰์žฅํžˆ ๋งŽ๊ณ  ์„ธ๊ทธ๋จผํŠธ๋Š” ๋ณ„๋กœ ์—†๋‹ค. ํŽ˜์ด์ง•์€ ํ…Œ์ด๋ธ”์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค.

  • ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์„œ๋กœ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ณต์œ ํ•˜๋Š” ์˜ˆ์ œ์ด๋‹ค.

  • 0๋ฒˆ์€ ์ฝ”๋“œ๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ์„ธ๊ทธ๋จผํŠธ์ด๋ฉฐ ๊ฐ™๊ธฐ ๋•Œ๋ฌธ์— sharingํ•œ๋‹ค.
    -> ๊ฐ™์€ ๋…ผ๋ฆฌ์ ์ธ ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค.

๐Ÿ“– 02. Segmentaion with Paging

  • ์„ธ๊ทธ๋จผํŠธ ํ•˜๋‚˜๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ์˜ ํŽ˜์ด์ง€๋กœ ๊ตฌ์„ฑ์ด ๋œ๋‹ค.
    -> ๋จผ์ € ์„ธ๊ทธ๋จผํŠธ์— ๋Œ€ํ•œ ์ฃผ์†Œ๋ณ€ํ™˜์ด ๋œ๋‹ค.
    -> ๋จผ์ € ์„ธ๊ทธ๋จผํŠธ ํ…Œ์ด๋ธ”์„ ์ฐพ์ž.
    -> ์„ธ๊ทธ๋จผํŠธ ํ…Œ์ด๋ธ”์ด ๋ฉ”๋ชจ๋ฆฌ ์–ด๋””์— ์žˆ๋ƒ?
    -> STBRํ™•์ธํ•˜์ž.
    -> S๋ฒˆ์งธ ์„ธ๊ทธ๋จผํŠธ์— ๊ฐ€๋ฉด ์ฃผ์†Œ๋ณ€ํ™˜ ์ •๋ณด๊ฐ€ ์žˆ๋‹ค.
    -> ์„ธ๊ทธ๋จผํŠธ๋‹น ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์ด ์กด์žฌํ•œ๋‹ค.
    -> ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์˜ ์‹œ์ž‘ ์œ„์น˜๋ฅผ ์•Œ๋ ค์คŒ
    -> Segment length์˜ ๊ธธ์ด์™€ d(offset)๋น„๊ตํ•ด์„œ d๊ฐ€ ๋” ํฌ๋‹ค๋ฉด Trap!

  • d๋ฅผ 2๊ฐœ๋กœ ์ชผ๊ฐ ๋‹ค. ์•ž ๋ถ€๋ถ„์€ ํŽ˜์ด์ง€์˜ ๋ฒˆํ˜ธ, ๋’ท ๋ถ€๋ถ„์€ offset.
    -> ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์˜ ์‹œ์ž‘ ์ฃผ์†Œ๋ถ€ํ„ฐ p(ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ)์— ํ•ด๋‹นํ•˜๋Š” ์—”ํŠธ๋ฆฌ์—๊ฐ€์„œ ๋ฌผ๋ฆฌ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ์˜ ๋ช‡๋ฒˆ์งธ ํ”„๋ ˆ์ž„์ธ์ง€ ๋‚˜์˜จ๋‹ค.

  • ๋ฉ”๋ชจ๋ฆฌ์—๋Š” ํŽ˜์ด์ง€ ๋‹จ์œ„๋กœ ์˜ฌ๋ผ๊ฐ€๊ธฐ ๋•Œ๋ฌธ์— allocation๋ฌธ์ œ๋Š” ์—†๋‹ค.

  • ๋ณด์•ˆ๊ณผ ๋ณดํ˜ธ๋Š” ์„ธ๊ทธ๋จผํŠธ ๋‹จ์œ„์—์„œ ํ•œ๋‹ค.

  • ์ด ์ฑ•ํ…Œ์—์„œ ์ค‘์š”ํ•œ ๋‚ด์šฉ์€ ์ฃผ์†Œ๋ณ€ํ™˜์ด์—ˆ๋‹ค.
    -> ์šด์˜์ฒด์ œ์˜ ์—ญํ• ์€ ๋ฌด์—‡์ธ๊ฐ€?
    -> ์ฃผ์†Œ๋ณ€ํ™˜์„ ์œ„ํ•œ ์šด์˜์ฒด์ œ์˜ ์—ญํ• ์€ ์—†๋‹ค.
    -> ๋ชจ๋‘ ํ•˜๋“œ์›จ์–ด๊ฐ€ ํ•ด์•ผํ•œ๋‹ค.

  • ์šด์˜์ฒด์ œ๊ฐ€ ์—ญํ• ์„ ๋งก๋Š”๋‹ค๋ฉด CPU๋Š” ์ปค๋„์— ๊ฐ”๋‹ค ์œ ์ € ํ”„๋กœ์„ธ์Šค์— ์™”๋‹ค๊ฐ”๋‹ค ํ•ด์•ผ๋˜๋Š” ๋ง๋„ ์•ˆ๋˜๋Š” ์ƒํ™ฉ์ด ๋งŒ๋“ค์–ด์ง„๋‹ค.
    -> ํ•˜๋“œ์›จ์–ด์— ์˜ํ•œ ์ฃผ์†Œ๋ณ€ํ™˜์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ•œ๋‹ค.

  • CPU๋Š” ๋งค ํด๋Ÿญ ์‚ฌ์ดํด๋งˆ๋‹ค ๋ฉ”๋ชจ๋ฆฌ์˜ ์ธ์ŠคํŠธ๋Ÿญ์…˜์„ ์ฝ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

  • I/O์žฅ์น˜๋ฅผ ์ ‘๊ทผ ํ•  ๋•Œ ์šด์˜์ฒด์ œ๊ฐ€ ๊ด€๋ จํ•œ๋‹ค. -> ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ง์ ‘ I/O์— ์ ‘๊ทผํ•˜์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.





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

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

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