ํ”„๋ฅด์„ธ์Šค๋ฅผ ๋…ผ๋ฆฌ์  ๋‚ด์šฉ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‚˜๋ˆ„๋Š” ์„ธ๊ทธ๋ฉ˜ํ…Œ์ด์…˜(Segmentation)์— ๋Œ€ํ•ด ์•Œ์•„๋ณธ๋‹ค.

Segmentation

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

์„ธ๊ทธ๋จผํ…Œ์ด์…˜์€ ํ”„๋กœ์„ธ์Šค๋ฅผ ์„ธ๊ทธ๋จผํŠธ(segment)์˜ ์ง‘ํ•ฉ์œผ๋กœ ์ƒ๊ฐํ•œ๋‹ค. ์•ž์—์„œ๋„ ๋งํ–ˆ๋“ฏ, Process๋Š” Code, Data, Stack ๊ณผ ๊ฐ™์€ ๊ตฌ์กฐ๋กœ ๋‚˜๋‰œ๋‹ค. ๋ฌผ๋ก  code, data, stack ๊ฐ๊ฐ ๋‚ด๋ถ€์—์„œ ๋” ์ž‘์€ ์„ธ๊ทธ๋จผํŠธ๋กœ ๋‚˜๋ˆŒ ์ˆ˜๋„ ์žˆ๋‹ค.

1. Segment Table

์ด๋ฒˆ์—๋Š” page size๊ฐ€ ๋™์ผํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, frame ๋ฒˆํ˜ธ๋กœ ๋…ผ๋ฆฌ ์ฃผ์†Œ์™€ ๋ฌผ๋ฆฌ ์ฃผ์†Œ๋ฅผ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†๋‹ค. ์ด๋ฒˆ์—๋Š” table์ด bound๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์„ธ๊ทธ๋จผํŠธ ๋ฒˆํ˜ธ์™€ ์‹œ์ž‘ ์ฃผ์†Œ(base), ์„ธ๊ทธ๋จผํŠธ ํฌ๊ธฐ(limit)๋ฅผ ์—”ํŠธ๋ฆฌ๋กœ ๊ฐ–๋Š”๋‹ค. ํŽ˜์ด์ง•๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋…ผ๋ฆฌ ์ฃผ์†Œ์˜ ๊ทœ์•ฝ์„ ๊ฐ€์ง€๋ฉฐ, ์ด๋ฒˆ์—๋Š” p๊ฐ€ ์•„๋‹ˆ๊ณ  s๋กœ ํ‘œ๊ธฐํ•œ๋‹ค.

ํ•œ ๊ฐ€์ง€ ์ฃผ์˜ํ•  ์ ์€ ์„ธ๊ทธ๋จผํŠธ์˜ ํฌ๊ธฐ๋Š” ์ผ์ •ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, ํ…Œ์ด๋ธ”์— limit ์ •๋ณด๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ทธ๋ฆฌ๊ณ  CPU์—์„œ ํ•ด๋‹น ์„ธ๊ทธ๋จผํŠธ์˜ ํฌ๊ธฐ๋ฅผ ๋„˜์–ด์„œ๋Š” ์ฃผ์†Œ๊ฐ€ ๋“ค์–ด์˜ค๋ฉด ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒํ•ด์„œ ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ•์ œ๋กœ ์ข…๋ฃŒ์‹œํ‚จ๋‹ค.

์œ„ ๊ทธ๋ฆผ์€ ์„ธ๊ทธ๋จผํŠธ ํ…Œ์ด๋ธ”๊ณผ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ์˜ ๋ชจ์Šต์ด๋‹ค. ํŽ˜์ด์ง• ์ฃผ์†Œ๋ณ€ํ™˜๊ณผ ๋™์ผํ•˜๊ฒŒ d๋Š” ๋…ผ๋ฆฌ์ฃผ์†Œ์™€ ๋ฌผ๋ฆฌ์ฃผ์†Œ๊ฐ€ ๋™์ผํ•˜๋‹ค. ๋ฌผ๋ฆฌ์ฃผ์†Œ a๋Š” base[s] + d ๋กœ ๊ณ„์‚ฐ๋œ๋‹ค.

  • ๋…ผ๋ฆฌ์ฃผ์†Œ (2, 100)
    • 2(4300) + 100 = 4400 < 4700(base+limit)
  • ๋…ผ๋ฆฌ์ฃผ์†Œ (1, 500)
    • 1(6300) + 500 = 6800 > 6700(base+limit)
      • โ‡’ ์ธํ„ฐ๋ŸฝํŠธ๋กœ ์ธํ•ด ํ”„๋กœ์„ธ์Šค ๊ฐ•์ œ ์ข…๋ฃŒ(๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚จ)

2. ์„ธ๊ทธ๋จผํ…Œ์ด์…˜์—์„œ ๋ณดํ˜ธ์™€ ๊ณต์œ 

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

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

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

3. ์„ธ๊ทธ๋จผํ…Œ์ด์…˜๊ณผ ํŽ˜์ด์ง•

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

3.1 ์™ธ๋ถ€ ๋‹จํŽธํ™”

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

์„ธ๊ทธ๋จผํ…Œ์ด์…˜๋„ ๋˜‘๊ฐ™์€ ๋ฌธ์ œ์ ์ด ๋ฐœ์ƒํ•œ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์„ธ๊ทธ๋จผํ…Œ์ด์…˜์€ ๋…ผ๋ฆฌ์ ์ธ ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„๊ธฐ ๋•Œ๋ฌธ์— ์„ธ๊ทธ๋จผํŠธ์˜ ํฌ๊ธฐ๊ฐ€ ๋‹ค์–‘ํ•˜๋‹ค. ์ด๋กœ ์ธํ•ด ๋‹ค์–‘ํ•œ ํฌ๊ธฐ์˜ hole์ด ๋ฐœ์ƒํ•˜๋ฏ€๋กœ ์™ธ๋ถ€ ๋‹จํŽธํ™”์˜ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

3.2 Paged segmentation

๊ฒฐ๋ก ์ ์œผ๋กœ ์„ธ๊ทธ๋จผํ…Œ์ด์…˜์€ ๋ณดํ˜ธ์™€ ๊ณต์œ ์—์„œ ํšจ์œจ์ ์ด๊ณ , ํŽ˜์ด์ง•์€ ์™ธ๋ถ€ ๋‹จํŽธํ™” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๋‘ ๊ฐ€์ง€๋ฅผ ํ•ฉ์ณ์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋‚˜์™”๋‹ค. ๋‘ ์žฅ์ ์„ ํ•ฉ์น˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์„ธ๊ทธ๋จผํŠธ๋ฅผ ํŽ˜์ด์ง• ๊ธฐ๋ฒ•์œผ๋กœ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์ด๋‹ค.(Paged segmentation)

ํ•˜์ง€๋งŒ ์ด ์—ญ์‹œ ๋‹จ์ ์ด ์กด์žฌํ•œ๋‹ค. ์„ธ๊ทธ๋จผํŠธ์™€ ํŽ˜์ด์ง€๊ฐ€ ๋™์‹œ์— ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ฃผ์†Œ ๋ณ€ํ™˜๋„ ๋‘ ๋ฒˆํ•ด์•ผํ•œ๋‹ค. ์ฆ‰ CPU์—์„œ ์„ธ๊ทธ๋จผํŠธ ํ…Œ์ด๋ธ”์—์„œ ์ฃผ์†Œ ๋ณ€ํ™˜์„ ํ•˜๊ณ , ๊ทธ ๋‹ค์Œ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์—์„œ ๋˜ ์ฃผ์†Œ ๋ณ€ํ™˜์„ ํ•ด์•ผํ•œ๋‹ค.

Reference