Skip to content

Latest commit

ย 

History

History
41 lines (23 loc) ยท 3.28 KB

Segmentation.md

File metadata and controls

41 lines (23 loc) ยท 3.28 KB

์„ธ๊ทธ๋จผํ…Œ์ด์…˜

  1. ์„ธ๊ทธ๋จผํ…Œ์ด์…˜์ด๋ž€?
  2. ๋ณดํ˜ธ์™€ ๊ณต์œ 
  3. ๋ฉ”๋ชจ๋ฆฌ ๋‹จํŽธํ™”(Memory Fragmentation)
  4. ํŽ˜์ด์ง€ ์„ธ๊ทธ๋จผํ…Œ์ด์…˜(Page Segmentation)
  5. ์ฐธ๊ณ  ์ž๋ฃŒ

์„ธ๊ทธ๋จผํ…Œ์ด์…˜์ด๋ž€?

ํ”„๋กœ์„ธ์Šค๋ฅผ ๋…ผ๋ฆฌ์  ๋‚ด์šฉ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์˜ ์„œ๋กœ ๋‹ค๋ฅธ ์œ„์น˜์— ์ €์žฅํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๊ธฐ๋ฒ•.

์„ธ๊ทธ๋จผํ…Œ์ด์…˜(Segmentation) ๊ธฐ๋ฒ•์€ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋…ผ๋ฆฌ์  ์˜๋ฏธ ๋‹จ์œ„(Segment)๋กœ ๋‚˜๋ˆ„์–ด ๋ถˆ์—ฐ์†์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ํ• ๋‹นํ•˜๋Š” ๊ธฐ๋ฒ•์ด๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ํ”„๋กœ์„ธ์Šค ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ ์ค‘ Code, Data, Heap, Stack ๋“ฑ์˜ ๊ธฐ๋Šฅ ๋‹จ์œ„๋กœ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์ •์˜ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค.

Segment-01

ํŽ˜์ด์ง• ๊ธฐ๋ฒ•๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ ์„ธ๊ทธ๋จผํ…Œ์ด์…˜์—์„œ๋„ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ •์ƒ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๊ฐ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๋ฌผ๋ฆฌ ์ฃผ์†Œ๋กœ ๋ณ€๊ฒฝ(์ฃผ์†Œ ๋ฐ”์ธ๋”ฉ)ํ•ด์•ผ ํ•œ๋‹ค. ์ด๋ฅผ ์„ธ๊ทธ๋จผํŠธ ํ…Œ์ด๋ธ”(Segment Table)์ด๋ผ ํ•œ๋‹ค.

์„ธ๊ทธ๋จผํŠธ๋Š” ๊ทธ ํฌ๊ธฐ๊ฐ€ ์ผ์ •์น˜ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋…ผ๋ฆฌ์  ์ฃผ์†Œ๊ฐ€ (์„ธ๊ทธ๋จผํŠธ ๋ฒˆํ˜ธ, ์˜คํ”„์…‹)์œผ๋กœ ํ‘œํ˜„๋œ๋‹ค. ๋งŒ์•ฝ ์˜คํ”„์…‹ ๊ฐ’์ด ํ•ด๋‹น ์„ธ๊ทธ๋จผํŠธ์˜ ๋ฆฌ๋ฏธํŠธ ๊ฐ’๋ณด๋‹ค ํฌ๋ฉด ์„ธ๊ทธ๋จผํ…Œ์ด์…˜ ๋ถ€์žฌ(Segmentation Fault)๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

๋ณดํ˜ธ์™€ ๊ณต์œ 

์„ธ๊ทธ๋จผํ…Œ์ด์…˜์—์„œ์˜ ๋ณดํ˜ธ์™€ ๊ณต์œ ๋Š” ํŽ˜์ด์ง•๋ณด๋‹ค ํšจ์œจ์ ์ด๋‹ค.

๋ณดํ˜ธ์—์„œ๋Š” ์„ธ๊ทธ๋จผํ…Œ์ด์…˜์— r(์ฝ๊ธฐ), w(์“ฐ๊ธฐ), x(์‹คํ–‰) ๋น„ํŠธ๋ฅผ ํ…Œ์ด๋ธ”์— ์ถ”๊ฐ€ํ•˜๋Š”๋ฐ, ์„ธ๊ทธ๋จผํ…Œ์ด์…˜์€ ๋…ผ๋ฆฌ์ ์œผ๋กœ ๋‚˜๋‰˜๊ธฐ ๋•Œ๋ฌธ์— ํ•ด๋‹น ๋น„ํŠธ์˜ ์„ค์ •์ด ๋งค์šฐ ๊ฐ„๋‹จํ•˜๊ณ  ์•ˆ์ „ํ•˜๋‹ค. ํŽ˜์ด์ง•์€ code + data + stack ์˜์—ญ์ด ์žˆ์„ ๋•Œ, ์ด๋ฅผ ์ผ์ •ํ•œ ํฌ๊ธฐ๋กœ ๋‚˜๋ˆ„๋ฏ€๋กœ ๋‘ ๊ฐ€์ง€ ์ด์ƒ์˜ ์˜์—ญ์ด ์„ž์ผ ์ˆ˜ ์žˆ๋‹ค. ์ด ๊ฒฝ์šฐ ๋น„ํŠธ ์„ค์ •์ด ๋งค์šฐ ๊นŒ๋‹ค๋กญ๋‹ค.

๊ณต์œ ์—์„œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋‹ค. ํŽ˜์ด์ง•์—์„œ code ์˜์—ญ์„ ๋‚˜๋ˆˆ๋‹ค ํ•˜๋”๋ผ๋„ ํƒ€ ์˜์—ญ์ด ํฌํ•จ๋  ํ™•๋ฅ ์ด ๋งค์šฐ ๋†’์œผ๋‚˜, ์„ธ๊ทธ๋จผํ…Œ์ด์…˜์€ ์ •ํ™•ํžˆ code ์˜์—ญ๋งŒ ๋‚˜๋ˆ„๊ธฐ ๋–„๋ฌธ์— ํšจ์œจ์ ์œผ๋กœ ๊ณต์œ ๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ฉ”๋ชจ๋ฆฌ ๋‹จํŽธํ™”(Memory Fragmentation)

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

ํŽ˜์ด์ง€ ์„ธ๊ทธ๋จผํ…Œ์ด์…˜(Page Segmentation)

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

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

์ฐธ๊ณ  ์ž๋ฃŒ