Memory Allocation

๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์˜ ํ• ๋‹น

  • ๋ฉ”๋ชจ๋ฆฌ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋‘ ์˜์—ญ์œผ๋กœ ๋‚˜๋‰˜์–ด ์‚ฌ์šฉ๋œ๋‹ค.

    • OS ์ƒ์ฃผ ์˜์—ญ์—๋Š” ์•„์ฃผ ๋‚ฎ์€ ์ฃผ์†Œ ์˜์—ญ์— interrupt vector ์™€ ํ•จ๊ป˜ ์กด์žฌํ•œ๋‹ค.

    • ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค ์˜์—ญ์—๋Š” ๋†’์€ ์ฃผ์†Œ ์˜์—ญ์„ ์‚ฌ์šฉํ•œ๋‹ค.

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

    • continuous allocation์€ ๊ฐ๊ฐ์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์˜ ์—ฐ์†์ ์ธ ๊ณต๊ฐ„์— ์ ์žฌ๊ฐ€ ๋œ๋‹ค.

      • fixed partition allocation

      • variable partition allocation

    • noncontinuous allocation ์€ ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์˜ ์—ฌ๋Ÿฌ ์˜์—ญ์— ๋‚˜๋‰˜์–ด ์˜ฌ๋ผ๊ฐ„๋‹ค.

      • paging

      • segmentation

      • paged segmentation

1) continuous allocation

  • fixed partition allocation ๊ณ ์ •๋ถ„ํ• ๋ฐฉ์‹

    • fixed partition allocation ์„ ๋”ฐ๋ฅด๋ฉด ๋ฉ”๋ชจ๋ฆฌ์˜ ๊ณต๊ฐ„์ด ๋ช‡๊ฐœ์˜ ์˜๊ตฌ์  partition์œผ๋กœ ๋ถ„ํ• ๋œ๋‹ค.

    • ํŒŒํ‹ฐ์…˜์˜ ํฌ๊ธฐ๊ฐ€ ๋ชจ๋‘ ๋™์ผํ•œ ๋ฐฉ์‹๊ณผ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐฉ์‹์ด ์กด์žฌํ•˜๋ฉฐ

    • ํŒŒํ‹ฐ์…˜๋‹น ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ์ด ์ ์žฌ๋  ์ˆ˜ ์žˆ๋‹ค.

    • ์œตํ†ต์„ฑ์ด ์—†์–ด์„œ ๋™์‹œ์— ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ๋˜๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ์ˆ˜๊ฐ€ ์ œํ•œ์ ์ด๊ฒŒ ๋˜๋ฉฐ, ์ตœ๋Œ€ ์ˆ˜ํ–‰ ๊ฐ€๋Šฅํ•œ ํ”„๋กœ๊ทธ๋žจ์˜ ํฌ๊ธฐ๋„ ์ œํ•œ๋œ๋‹ค.

    • ํ”„๋กœ๊ทธ๋žจ์ด ํŒŒํ‹ฐ์…˜๊ณผ ๋งž์ง€ ์•Š๋‹ค๋ฉด, ์™ธ๋ถ€์กฐ๊ฐ external fragment ์ด๋‚˜ ๋‚ด๋ถ€ ์กฐ๊ฐ internal fragment์ด ์ƒ๊ธฐ๊ฒŒ ๋œ๋‹ค.

  • variable partition allocation ๊ฐ€๋ณ€๋ถ„ํ• ๋ฐฉ์‹

    • ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋  ๋•Œ๋งˆ๋‹ค ์ฐจ๊ณก์ฐจ๊ณก ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ ค๋‘๋Š” ๋ฐฉ์‹์œผ๋กœ

    • ํ”„๋กœ๊ทธ๋žจ์˜ ํฌ๊ธฐ๋ฅผ ๊ณ ๋ คํ•ด์„œ ํ• ๋‹น๋œ๋‹ค. ๋ถ„ํ• ์˜ ํฌ๊ธฐ์™€ ๊ฐœ์ˆ˜๊ฐ€ ๋™์ ์œผ๋กœ ๋ณ€ํ•œ๋‹ค.

    • ์ด ๋ฐฉ๋ฒ•์„ ์œ„ํ•ด์„œ๋Š” ๊ธฐ์ˆ ์ ์œผ๋กœ ๊ด€๋ฆฌ ๊ธฐ๋ฒ•์ด ๊ฐ–์ถ”์–ด์ ธ์•ผํ•œ๋‹ค.

    • ๊ฐ€๋ณ€๋ถ„ํ• ๋ฐฉ์‹๋„ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์— ๋”ฐ๋ผ์„œ ์™ธ๋ถ€์กฐ๊ฐ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ์˜ˆ๋ฅผ ๋“ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ์ƒํ™ฉ์ด๋‹ค.

      • ํ”„๋กœ๊ทธ๋žจ B์˜ ์ˆ˜ํ–‰์ด ๋๋‚˜๋„ ํ”„๋กœ๊ทธ๋žจD๊ฐ€ B๊ฐ€ ์žˆ๋˜ ๊ณต๊ฐ„์— ๋“ค์–ด๊ฐ€์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์—, C๋’ค์— ์œ„์น˜ํ•˜๊ฒŒ ๋œ๋‹ค. ์ด๋•Œ ์™ธ๋ถ€์กฐ๊ฐ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

hole

  • ๊ฐ€์šฉ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„

  • ๋‹ค์–‘ํ•œ ํฌ๊ธฐ์˜ hole ๋“ค์ด ์—ฌ๋Ÿฌ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ํฉ์–ด์ ธ ์žˆ๋‹ค.

  • ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋„์ฐฉํ•˜๋ฉด ์ˆ˜์šฉ ๊ฐ€๋Šฅํ•œ hole ์„ ํ• ๋‹นํ•œ๋‹ค.

  • ๋”ฐ๋ผ์„œ ์šด์˜์ฒด์ œ๋Š” ๋‹ค์Œ์˜ ์ •๋ณด๋ฅผ ํ•ญ์ƒ ์ˆ™์ง€ํ•˜๊ณ  ์žˆ๋‹ค. โ†’ 1) ํ• ๋‹น ๊ณต๊ฐ„ 2) ๊ฐ€์šฉ๊ณต๊ฐ„ hole

dynamic storage allocation problem

  • ๊ฐ€๋ณ€๋ถ„ํ•  ๋ฐฉ์‹์—์„œ size ๊ฐ€ n์ธ ์š”์ฒญ์„ ๋งŒ์กฑํ•˜๋Š” ๊ฐ€์žฅ ์ ์ ˆํ•œ hole์„ ์ฐพ๋Š” ๋ฌธ์ œ

  • ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์—๋Š” 3๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

    • first fit : size n์„ ๋งŒ์กฑํ•˜๋Š” hole ์ค‘ ๊ฐ€์žฅ ์ตœ์ดˆ๋กœ ์ฐพ์•„์ง€๋Š” ๊ฒƒ์— ํ• ๋‹นํ•˜๋Š” ๋ฐฉ๋ฒ•

    • best fit : size n์„ ๋งŒ์กฑํ•˜๋Š” hole ์ค‘ ๊ฐ€์žฅ ์ž‘์€ ๊ฒƒ์— ํ• ๋‹นํ•˜๋Š” ๋ฐฉ๋ฒ•

      • hole๋“ค์˜ ๋ฆฌ์ŠคํŠธ๊ฐ€ ํฌ๊ธฐ์ˆœ์œผ๋กœ ์ •๋ ฌ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ, ๋ชจ๋“  hole ๋“ค์„ ํƒ์ƒ‰ํ•ด์•ผํ•œ๋‹ค.

      • ๋งŽ์€ ์ˆ˜์˜ ์•„์ฃผ ์ž‘์€ hole ๋“ค์ด ์ƒ์„ฑ๋  ์ˆ˜ ์žˆ๋‹ค.

    • worst fit : size n์„ ๋งŒ์กฑํ•˜๋Š” ๊ฐ€์žฅ ํฐ hole์— ํ• ๋‹นํ•˜๋Š” ๋ฐฉ๋ฒ•

      • ๋ชจ๋“  ๋ฆฌ์ŠคํŠธ๋ฅผ ํƒ์ƒ‰ํ•ด์•ผํ•˜๋ฉฐ

      • ํฐ hole ๋“ค์ด ์ƒ์„ฑ๋œ๋‹ค.

  • ๋‹น์—ฐํ•˜๊ฒŒ๋„ first fit ์€ ์‹œ๊ฐ„์ ์œผ๋กœ, best fit ์€ ๊ณต๊ฐ„ ์ด์šฉ๋ฅ  ์ธก๋ฉด์—์„œ ๊ฐ๊ฐ ๊ฐ€์žฅ ์œ ๋ฆฌํ•˜๋ฉฐ, worst fit์€ ๊ฐ€์žฅ ๋น„ํšจ์œจ์ ์ธ ๊ฒƒ์ด ์‹คํ—˜ ๊ฒฐ๊ณผ ๋‚˜ํƒ€๋‚ฌ๋‹ค.

compaction

  • external fragmentation ์™ธ๋ถ€์กฐ๊ฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉ์ค‘์ธ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ํ•œ ๊ตฐ๋ฐ๋กœ ๋ชฐ๊ณ  hole ๋“ค์„ ๋‹ค๋ฅธ ํ•œ ๊ณณ์œผ๋กœ ๋ชจ์•„ ์•„์ฃผ ํฐ hole ์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

  • ๋น„์šฉ์ด ๋งค์šฐ ๋งŽ์ด ๋“ค๋ฉฐ, ์ตœ์†Œํ•œ์˜ ์ด๋™์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ compaction ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋งค์šฐ ๋ณต์žกํ•˜๋‹ค.

  • ๋‹น์—ฐํ•˜์ง€๋งŒ, compaction ๊ธฐ๋ฒ•์€ ํ”„๋กœ์„ธ์Šค์˜ ์ฃผ์†Œ๊ฐ€ ์‹คํ–‰๋˜๋Š” ์‹œ๊ฐ„์— ๋™์ ์œผ๋กœ ์žฌ๋ฐฐ์น˜๊ฐ€ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ์—๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.

2) noncontinuous allocation

  • paging

    • ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌ์„ฑํ•˜๋Š” ์ฃผ์†Œ ๊ณต๊ฐ„์„ ํŽ˜์ด์ง€ ๋‹จ์œ„๋กœ ์ž๋ฅธ๋‹ค. ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์˜ ๊ณต๊ฐ„๋„ ๊ฐ™์€ ๋‹จ์œ„๋กœ ์ž๋ฅธ๋‹ค.

    • ์ฃผ์†Œ ๋ณ€ํ™˜์ด ๋” ๋ณต์žกํ•ด์ง€๊ธฐ ๋•Œ๋ฌธ์— address binding ์ด ๋” ๋ณต์žกํ•ด์ง„๋‹ค.

  • segmentation

    • ์˜๋ฏธ์žˆ๋Š” ๋‹จ์œ„๋กœ ์ž๋ฅด๋Š” ๊ฒƒ

  • paged segmentation

paging

  • ํ”„๋กœ์„ธ์Šค์˜ virtual memory ๋ฅผ ๋™์ผํ•œ ์‚ฌ์ด์ฆˆ์˜ page ๋‹จ์œ„๋กœ ๋‚˜๋ˆˆ๋‹ค.

  • virtual memory ์˜ ๋‚ด์šฉ์ด page ๋‹จ์œ„๋กœ noncontinous ํ•˜๊ฒŒ ์ €์žฅ๋œ๋‹ค.

  • ์ผ๋ถ€๋Š” backing storage ์—, ์ผ๋ถ€๋Š” physical memory ์— ์ €์žฅ๋œ๋‹ค.

  • basic method

    • physical memory ๋ฅผ ๋™์ผํ•œ ํฌ๊ธฐ์˜ frame ์œผ๋กœ ๋‚˜๋ˆˆ๋‹ค.

    • local memory ๋ฅผ ๋™์ผํ•œ ํฌ๊ธฐ์˜ page ๋กœ ๋‚˜๋ˆˆ๋‹ค. โ†’ frame ๊ณผ ๊ฐ™์€ ํฌ๊ธฐ!

    • ๋ชจ๋“  ๊ฐ€์šฉ frame ๋“ค์„ ๊ด€๋ฆฌํ•œ๋‹ค.

    • page table ์„ ์‚ฌ์šฉํ•˜์—ฌ logical address๋ฅผ physical address ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.

      • page ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ๋”์ด์ƒ ๋‘ ๊ฐœ์˜ register ๋กœ๋Š” ๋ถˆ๊ฐ€ํ•˜๋‹ค.

    • external fragment ๋Š” ๋ฐœ์ƒํ•˜์ง€ ์•Š์ง€๋งŒ, ์—ฌ์ „ํžˆ internal fragmentation ์ด ๋ฐœ์ƒํ• ์ˆ˜๋Š” ์žˆ๋‹ค.

      • ํŽ˜์ด์ง€ ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„๊ฒŒ ๋˜๋ฉด, ํŽ˜์ด์ง€ ๋ฒ”์œ„๋ฅผ ๋‹ค ์ฑ„์šฐ์ง€ ๋ชปํ•ด ๋‚จ๋Š” ๊ณต๊ฐ„์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋œป.

  • page table ์€ physical memory ์— ์ƒ์ฃผํ•œ๋‹ค.

    • page table base register ๊ฐ€ page table ์„ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ๊ณ ,

    • page table length register ๋Š” ํ…Œ์ด๋ธ”์˜ ํฌ๊ธฐ๋ฅผ ๋ณด๊ด€ํ•œ๋‹ค.

    • ๋”ฐ๋ผ์„œ ๋ชจ๋“  ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ์—ฐ์‚ฐ์—๋Š” 2๋ฒˆ์˜ memory access ๊ฐ€ ํ•„์š”ํ•œ๋ฐ, ํ•œ๋ฒˆ์€ page table ์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด์„œ, 1๋ฒˆ์€ ์‹ค์ œ ๋ฐ์ดํ„ฐ์™€ ์ธ์ŠคํŠธ๋Ÿญ์…˜์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด์„œ ํ•„์š”ํ•˜๋‹ค.

  • ์†๋„ ํ–ฅ์ƒ์„ ์œ„ํ•ด์„œ associative register OR translation look-aside buffer ๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ๊ณ ์†์˜ lookup hardware cache ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

    • associative resiters (TLD) : parallel search ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. page table ํ…Œ์ด๋ธ” ์ค‘ ์ผ๋ถ€๋งŒ ์กด์žฌํ•œ๋‹ค. ์—†์œผ๋ฉด page table ๋กœ ์ด๋™ํ•จ

    • address translation ๊ณผ์ •

      • page table ์ค‘ ์ผ๋ถ€๊ฐ€ associative regieter ์— ๋ณด๊ด€๋˜์–ด์žˆ๋‹ค.

      • ๋งŒ์•ฝ ํ•ด๋‹น page ๋ฒˆํ˜ธ๊ฐ€ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ, ๊ณง๋ฐ”๋กœ frame ๋ฒˆํ˜ธ๋ฅผ ์–ป๊ฒŒ ๋œ๋‹ค.

      • ํ•˜์ง€๋งŒ ์กด์žฌํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ, main memory ์— ์žˆ๋Š” page table๋กœ๋ถ€ํ„ฐ frame ๋ฒˆํ˜ธ๋ฅผ ์–ป๋Š”๋‹ค.

      • TLB ๋Š” context switch ๋•Œ flush (remove old entiries) ๋œ๋‹ค. โ†’ ํ”„๋กœ์„ธ์Šค๋ณ„๋กœ ๋ณ„๋„๋กœ ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์—

  • ์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ•˜๋Š” ์‹œ๊ฐ„์€?

    • ์ƒ๋‹นํžˆ ๋น ๋ฅด๋‹ค!

2๋‹จ๊ณ„ ํŽ˜์ด์ง• ํ…Œ์ด๋ธ” - two level paging table

  • ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

    • ์ปดํ“จํ„ฐ์—์„œ ์–ด๋–ค ์‹œ์Šคํ…œ์ด ์กด์žฌํ•  ๋•Œ, ๊ทธ ์กด์žฌ์˜ ์ด์œ ๋Š” ๋ณดํ†ต ๋‘ ๊ฐ€์ง€์ด๋‹ค.

      • ์‹œ๊ฐ„์„ ๋น ๋ฅด๊ฒŒ ํ•˜๊ฑฐ๋‚˜

      • ๊ณต๊ฐ„์„ ํšจ์œจ์ ์œผ๋กœ ํ•˜๊ฑฐ๋‚˜

    • two level paging table ์˜ ๊ฒฝ์šฐ, ์†๋„๋Š” ์ค‘๊ฐ„ ๊ณผ์ •์ด ์ถ”๊ฐ€ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์˜คํžˆ๋ ค ๋” ๋Š˜์–ด๋‚  ๊ฒƒ์ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ ์•„๋งˆ ๊ณต๊ฐ„์„ ํšจ์œจ์ ์œผ๋กœ ํ•˜์ง€ ์•Š์„๊นŒ, ์ถ”์ธกํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ํ˜„๋Œ€์˜ ์ปดํ“จํ„ฐ๋Š” 32bit, 64bit ๋‹จ์œ„์ด๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด, ํ”„๋กœ๊ทธ๋žจ๋งˆ๋‹ค ๊ฐ€์ง€๊ณ  ์žˆ๋Š” Maximum ์ฃผ์†Œ์ฒด๊ณ„๋Š” ๋ช‡ ๊ฐœ๋‚˜ ๋˜๊ฒ ๋Š”๊ฐ€? โ†’ ์ปดํ“จํ„ฐ์˜ 32bit, 64bit ์— ๋”ฐ๋ผ์„œ ๋‚˜๋ˆ„์–ด์ง„๋‹ค.

    • 32bit ์ปดํ“จํ„ฐ์˜ ๊ฒฝ์šฐ, 0๋ฒˆ๋ถ€ํ„ฐ 2^32๋ฒˆ๊นŒ์ง€์˜ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.

    • ๊ทธ๋Ÿฐ๋ฐ 2^10 = K ์ด๊ณ , 2^20 = M์ด๊ณ , 2^30 = G์ด๋ฏ€๋กœ, 2^32 = 2^2 * G = 4GB ๋ฅผ ์˜๋ฏธํ•˜๊ฒŒ ๋œ๋‹ค.

    • ์ด๋•Œ, ํŽ˜์ด์ง€ ์‚ฌ์ด์ฆˆ๊ฐ€ 4K๋ผ๋ฉด, 1M๊ฐœ์˜ page table entry ๊ฐ€ ํ•„์š”ํ•˜๊ฒŒ ๋œ๋‹ค.

    • ๊ฐ page entry๊ฐ€ 4B์ผ ๋•Œ์—๋Š”, ํ”„๋กœ์„ธ์Šค ๋‹น 4M์˜ page table ์ด ํ•„์š”ํ•˜๋‹ค.

    • ๊ทธ๋Ÿฌ๋‚˜ ๋Œ€๋ถ€๋ถ„์˜ ํ”„๋กœ๊ทธ๋žจ์€ 4G์˜ ์ฃผ์†Œ๊ณต๊ฐ„ ์ค‘์—์„œ ์ง€๊ทนํžˆ ์ผ๋ถ€๋ถ„๋งŒ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ, page table ๊ณต๊ฐ„์ด ์‹ฌํ•˜๊ฒŒ ๋‚ญ๋น„๋œ๋‹ค.

  • page table ์ž์ฒด๋ฅผ page ๋กœ ๊ตฌ์„ฑํ•œ๋‹ค.

  • ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ์ฃผ์†Œ ๊ณต๊ฐ„์— ๋Œ€ํ•œ outer page table์˜ ์—”ํŠธ๋ฆฌ ๊ฐ’์€ null ์ด๋‹ค.

multi-level paging and performance

  • address space ๊ฐ€ ๋” ์ปค์ง€๋ฉด 2๋‹จ๊ณ„ ํŽ˜์ด์ง• ํ…Œ์ด๋ธ”๋งŒ์œผ๋กœ๋Š” ๋ถ€์กฑํ•˜๋‹ค. ๋‹ค๋‹จ๊ณ„ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์ด ํ•„์š”ํ•˜๋‹ค.

  • ๊ฐ ๋‹จ๊ผ์˜ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์ด ๋ฉ”๋ชจ๋ฆฌ์— ์กด์žฌํ•˜๋ฏ€๋กœ logical address ์˜ physical address ๋ณ€ํ™˜์— ๋” ๋งŽ์€ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ์ด ํ•„์š”ํ•˜๋‹ค.

  • TLB ๋ฅผ ํ†ตํ•ด ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ์‹œ๊ฐ„์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.

  • 4๋‹จ๊ณ„ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ,

    • ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ์‹œ๊ฐ„์ด 100ns, TLB ์ ‘๊ทผ ์‹œ๊ฐ„์ด 20ns ์ด๊ณ  TLB hit ratio ๊ฐ€ 98%์ธ ๊ฒฝ์šฐ,

      • ์ด 5๋ฒˆ์˜ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ์ด ํ•„์š”ํ•˜๋‹ค โ†’ 4๋ฒˆ์€ ํŽ˜์ด์ง€ ์ฃผ์†Œ๋ณ€ํ™˜, 1๋ฒˆ์€ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ

      • effective memory access time = 0.98 * 120 + 0.02 * 520 = 128 nano seconds

      • 98%๋Š” TLB ๋ฅผ ํ†ตํ•ด์„œ ์ด๋ฃจ์–ด ์งˆํ…Œ๋‹ˆ, 20ns์ •๋„๋งŒ ์ฃผ์†Œ๋ณ€ํ™˜์— ์†Œ์š”๋œ๋‹ค. ์ด ๊ฒฝ์šฐ, ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ์‹œ๊ฐ„+์ฃผ์†Œ๋ณ€ํ™˜์‹œ๊ฐ„ = 120ns ๊ฐ€ ๋œ๋‹ค.

      • ๋ฐ˜๋ฉด TLB ๋ฅผ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง€์ง€ ๋ชปํ•œ 2%์˜ ๊ฒฝ์šฐ๋Š”, ์ฃผ์†Œ๋ณ€ํ™˜์—๋งŒ 400ns ๊ฐ€ ์†Œ์š”๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  TLB ์— ์—†๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜๋Š” ์ž‘์—…์— 20ns, ์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ•˜๋Š” ์‹œ๊ฐ„์œผ๋กœ ๋‹ค์‹œ 100ns ๊ฐ€ ์†Œ์š”๋œ๋‹ค. ์ฆ‰, ์ด 520ns ๊ฐ€ ์†Œ์š”๋˜๋Š” ๊ฒƒ์ด๋‹ค.

      • ๊ฒฐ๊ณผ์ ์œผ๋กœ ์ฃผ์†Œ ๋ณ€ํ™˜์„ ์œ„ํ•ด 28ns ๋งŒ ์†Œ์š”๋œ๋‹ค.

        • ์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ์„ ์œ„ํ•œ 100ns + ์ฃผ์†Œ๋ณ€ํ™˜์„ ์œ„ํ•œ 28ns

memory protection - page table ์—์„œ valid, invalid bit ํ‘œํ˜„

  • page table ์˜ ๊ฐ entry ๋งˆ๋‹ค ์•„๋ž˜์˜ bit ๋ฅผ ๋‘”๋‹ค.

  • protection bit : page ์— ๋Œ€ํ•œ ์ ‘๊ทผ ๊ถŒํ•œ (read, write, read-only)

  • valid

    • ํ•ด๋‹น ์ฃผ์†Œ์˜ frame ์— ๊ทธ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์œ ํšจํ•œ ๋‚ด์šฉ์ด ์žˆ์Œ์„ ๋œปํ•จ. โ†’ ์ ‘๊ทผ ํ—ˆ์šฉ

    • ํ…Œ์ด๋ธ”์— ๋งคํ•‘๋œ ์‹ค์ œ ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋กœ ๊ฐ€๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.

  • invalid

    • ํ•ด๋‹น ์ฃผ์†Œ์˜ frame ์— ์œ ํšจํ•œ ๋‚ด์šฉ์ด ์—†์Œ์„ ๋œปํ•œ๋‹ค. โ†’ ์ ‘๊ทผ ๋ถˆํ—ˆ

    • ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ทธ ์ฃผ์†Œ ๋ถ€๋ถ„์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ฑฐ๋‚˜

    • ํ•ด๋‹น ํŽ˜์ด์ง€๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์™€์žˆ์ง€ ์•Š๊ณ  swap area์— ์žˆ๋Š” ๊ฒฝ์šฐ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

inverted page table

  • page table ์ด ๋งค์šฐ ํฐ ์ด์œ 

    • ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋ณ„๋กœ ๊ทธ logical address ์— ๋Œ€์‘ํ•˜๋Š” ๋ชจ๋“  page ์— ๋Œ€ํ•ด page table entry ๊ฐ€ ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

    • ๋Œ€์‘ํ•˜๋Š” page ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ๋“  ์•„๋‹ˆ๋“  ๊ฐ„์— page table ์—๋Š” entry ๋กœ ์กด์žฌํ•œ๋‹ค.

    • ๊ทธ๋ž˜์„œ ์ด ๋‚ญ๋น„๋˜๋Š” ๊ณต๊ฐ„์„ ์ค„์ด๊ธฐ ์œ„ํ•ด ๋“ฑ์žฅํ•œ ๊ฒƒ์ด inverted page table!

  • inverted page table ์—์„œ๋Š” physical memory ์— ์ ‘๊ทผํ•˜๋ฉด page table ์—์„œ ๋งคํ•‘๋œ logical memory ์ฃผ์†Œ๋ฅผ ๊ฑฐ๊พธ๋กœ ๋˜์ฐพ์•„๊ฐ„๋‹ค.

  • ์ฆ‰, ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ์— ๋งž๊ฒŒ ๋…ผ๋ฆฌ์  ์ฃผ์†Œ๋ฅผ ๋ฐ”๊พธ๋Š” ํ˜•์‹!

  • page frame ํ•˜๋‚˜ ๋‹น, page table ์— ํ•˜๋‚˜์˜ entry ๋ฅผ ๋‘” ๊ฒƒ์ด๋‹ค.

  • ๊ฐ page table entry ๋Š” ๊ฐ๊ฐ์˜ ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์˜ page frame ์ด ๋‹ด๊ณ  ์žˆ๋Š” ๋‚ด์šฉ์„ ํ‘œ์‹œํ•œ๋‹ค.

    • process id, process logical address

  • ๋‹จ์  : ํ…Œ์ด๋ธ” ์ „์ฒด๋ฅผ ํƒ์ƒ‰ํ•ด์•ผํ•œ๋‹ค.

  • ํ•ด๊ฒฐ : associative register ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. (ํ•˜์ง€๋งŒ ๋„ˆ๋ฌด ๋น„์‹ธ๋‹ค;;)

shared page

  • shared code

    • re-entrant code = pure code

    • read-only ๋กœ ํ•˜์—ฌ ํ”„๋กœ์„ธ์Šค ๊ฐ„์— ํ•˜๋‚˜์˜ code ๋งŒ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆฐ๋‹ค.

    • shared code ๋Š” ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค์˜ Logical address space ์—์„œ ๋™์ผํ•œ ์œ„์น˜์— ์žˆ์–ด์•ผ ํ•œ๋‹ค.

  • private code and data

    • ๊ฐ ํ”„๋กœ์„ธ์Šค๋“ค์€ ๋…์ž์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆฐ๋‹ค.

    • private data ๋Š” logical address space ์˜ ์•„๋ฌด ๊ณณ์— ์™€๋„ ๋ฌด๋ฐฉํ•˜๋‹ค.

segmentation

  • ์˜๋ฏธ๋‹จ์œ„๋กœ ๋ฒ”์œ„๋ฅผ ๋‚˜๋ˆˆ ๊ฒƒ. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋ฉ”๋ชจ๋ฆฌ ๋‚ด์˜ ์ฝ”๋“œ, ์Šคํƒ ๋“ฑ์˜ ๊ณต๊ฐ„

    • ์˜๋ฏธ๋‹จ์œ„๋กœ ๋ฒ”์œ„๋ฅผ ๋‚˜๋ˆ„๊ธฐ ๋•Œ๋ฌธ์— segment์˜ ํฌ๊ธฐ๊ฐ€ ๊ท ์ผํ•˜์ง€ ์•Š๋‹ค.

  • logical address ๋Š” ๋‹ค์Œ์˜ ๋‘ ๊ฐ€์ง€๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

    • segment-number

    • offset โ†’ d

  • segment table

    • ๋ชจ๋“  ํ…Œ์ด๋ธ”์€ base ์™€ limit ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

    • base : starting physical address of segment. ์ฆ‰, ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์„ธ๊ทธ๋จผํŠธ์˜ ์‹œ์ž‘์ ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.

    • limit : lenght of the segment. ์„ธ๊ทธ๋จผํŠธ์˜ ๊ธธ์ด๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

  • segment table base register - STBR

    • ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์—์„œ์˜ segment table์˜ ์œ„์น˜

  • segment table limit register - STLR

    • ํ”„๋กœ๊ทธ๋žจ์ด ์‚ฌ์šฉํ•˜๋Š” segment์˜ ์ˆ˜

    • segment number s < STLR ์ด์–ด์•ผ ํ•œ๋‹ค.

  • ํŽ˜์ด์ง• ๊ธฐ๋ฒ•๊ณผ ๋‹ค๋ฅธ ์ 

    • ํŽ˜์ด์ง• ๊ธฐ๋ฒ•์˜ ๊ฒฝ์šฐ, ๋ชจ๋“  ํŽ˜์ด์ง€์˜ ๋‹จ์œ„๊ฐ€ ๊ฐ™๊ธฐ ๋•Œ๋ฌธ์— ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ ๋‚ด๋ถ€์— fragment ์œ„์น˜๋ฅผ table ์— ๋งคํ•‘ํ•˜๊ณ  ์žˆ์œผ๋ฉด ๋˜์—ˆ์ง€๋งŒ,

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

  • ์žฅ์ 

    • protection

      • ๊ฐ ์„ธ๊ทธ๋จผํŠธ๋ณ„๋กœ protection bit ๊ฐ€ ์กด์žฌํ•œ๋‹ค.

      • ๊ฐ๊ฐ์˜ entry ๊ฐ€ ์•„๋ž˜๋ฅผ ๋งŒ์กฑํ•จ

        • valid bit = 0 ์ด๋ฉด, illegal segment ๋ผ๊ณ  ํŒ๋‹จํ•œ๋‹ค.

        • read, write, execution ๊ถŒํ•œ bit โ†’ ์˜๋ฏธ๋‹จ์œ„๋กœ ์˜๋ฏธ๋ฅผ ๋‚˜๋ˆ„๊ธฐ ๋•Œ๋ฌธ์— ์„ธ๊ทธ๋จผํŠธ๋ณ„๋กœ ๊ถŒํ•œ ๋ถ„ํ• ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

    • sharing

      • shared segment

      • same segment number

      • segment ๋Š” ์˜๋ฏธ ๋‹จ์œ„์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ณต์œ ์™€ ๋ณด์•ˆ์— ์žˆ์–ด์„œ paging ๋ณด๋‹ค ํ›จ์”ฌ ์œ ๋ฆฌํ•˜๋‹ค.

    • paging ๊ธฐ๋ฒ•๊ณผ ๋น„๊ตํ•ด๋ณด์•˜์„ ๋•Œ, ํ›จ์”ฌ ํŽ˜์ด์ง• ํ…Œ์ด๋ธ” ๊ฐœ์ˆ˜๊ฐ€ ์ ์–ด์„œ ๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„๊ฐ€ ์ ๋‹ค.

      • paging : 100๋งŒ๊ฐœ

      • segment : 5๊ฐœ

  • ๋‹จ์ 

    • allocation : first fit, best fit

      • ์˜๋ฏธ ๋‹จ์œ„๋กœ ๊ธธ์ด๊ฐ€ ์œ ๋™์ ์ธ ์„ธ๊ทธ๋จผํŠธ๋“ค์ด ์Œ“์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€์žฅ ์ฒซ๋ฒˆ์งธ๋กœ ์Œ“์ธ ๊ฒƒ์ด ์ž˜ ์Œ“์ด๊ฒŒ ๋œ๋‹ค.

    • external fragmentation ์ด ๋ฐœ์ƒํ•œ๋‹ค.

      • segment ๊ธธ์ด๊ฐ€ ๋™์ผํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ, ๊ฐ€๋ณ€ ๋ถ„ํ•  ๋ฐฉ์‹์—์„œ์™€ ๋™์ผํ•œ ๋ฌธ์ œ์ ๋“ค์ด ๋ฐœ์ƒํ•˜๊ฒŒ ๋œ๋‹ค. โ†’ hole

      • allocation ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

paged segmentation

  • paging + segmentation

  • paging ๊ธฐ๋ฒ•๊ณผ segmentation ๊ธฐ๋ฒ•์˜ ์žฅ์ ์„ ๊ฐ€์ ธ์™€ ์œตํ•ฉํ•ด๋†“์€ ๋ฐฉ๋ฒ•์œผ๋กœ

  • segment table ์—๋Š” segment ์ž์ฒด์˜ base address ๊ฐ€ ์•„๋‹ˆ๋ผ, segment ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” page table ์˜ base address ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

  • ์‹ค์ œ ์ปดํ“จํ„ฐ์—๋Š” segment ๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ๊ฒฝ์šฐ๋Š” ๊ฑฐ์˜ ์—†๊ณ  ์‚ฌ์‹ค์ƒ paging ๊ธฐ๋ฒ•์„ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค.

์ง€๊ธˆ๊นŒ์ง€โ€ฆ

  • ์ง€๊ธˆ๊นŒ์ง€ ์šฐ๋ฆฌ๋Š” ๋‹ค์–‘ํ•œ ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ์˜ ๊ด€๋ฆฌ ๊ธฐ๋ฒ•์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์•˜๋‹ค.

  • ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ์—์„œ ๊ฐ€์žฅ ํ•ต์‹ฌ์ด ๋˜๋Š” ๊ฒƒ์€ ๊ฒฐ๊ตญ ๋…ผ๋ฆฌ์  ์ฃผ์†Œ๋ฅผ ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •์ด์—ˆ๋‹ค. โ†’ ์ฃผ์†Œ๋ณ€ํ™˜

  • ํ•˜์ง€๋งŒ ์ด ๋ชจ๋“  ๊ณผ์ •์—์„œ ์šด์˜์ฒด์ œ๊ฐ€ ํ•˜๋Š” ์ผ์€ ๊ฑฐ์˜ ์—†์—ˆ๋‹ค. ๋ชจ๋‘ ํ•˜๋“œ์›จ์–ด๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋Š” ์ผ๋“ค์ด์—ˆ๋‹ค.

  • ์™œ ํ•˜๋“œ์›จ์–ด์— ์˜์ง€ํ•  ์ˆ˜ ๋ฐ–์— ์—†์„๊นŒ?

    • ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ CPU๋ฅผ ๊ฐ€์ง€๊ณ  ๋…ผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ์—์„œ ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜์„ ํ•˜๋Š” ๊ณผ์ •์—๋Š” ์‚ฌ์‹ค์ƒ ์šด์˜์ฒด์ œ๊ฐ€ ๋ผ์–ด๋“ค ํ•„์š”๊ฐ€ ์—†๋‹ค.

    • ์šด์˜์ฒด์ œ์˜ ๊ฐœ์ž…์ด ํ•„์š”ํ•˜๋‹ค๋Š” ๋ง์€ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‚ฌ์šฉ์ž โ†’ ์šด์˜์ฒด์ œ๋กœ ๋„˜์–ด๊ฐ„๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•˜๋Š”๋ฐ, ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ฐธ์กฐํ•  ๋•Œ๋งˆ๋‹ค ์šด์˜์ฒด์ œ์™€ ์‚ฌ์šฉ์ž ์‚ฌ์ด๋ฅผ ์ด๋™ํ•ด์•ผํ•œ๋‹ค๋Š” ๊ฒƒ์€ ๋ง์ด ์•ˆ๋œ๋‹ค.

    • ๋”ฐ๋ผ์„œ ์ด ๋ชจ๋“  ๊ณผ์ •์€ ํ•˜๋“œ์›จ์–ด์ ์œผ๋กœ ์ด๋ฃจ์–ด์งˆ ์ˆ˜ ๋ฐ–์— ์—†๋‹ค.

    • ์šด์˜์ฒด์ œ๊ฐ€ ๋ผ์–ด๋“ค์–ด์•ผ ํ•˜๋Š” ์ผ€์ด์Šค๋Š” ๋ฐ”๋กœ I/O ์ ‘๊ทผ ๋•Œ์˜€๋‹ค.

  • ๊ทธ๋ ‡๋‹ค๋ฉด ์šด์˜์ฒด์ œ๋Š” ๋ฌด์—‡์„ ํ•˜๋Š”๊ฐ€โ€ฆ?

    • ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๋ณ€ํ™˜์—์„œ๋Š” ์‚ฌ์‹ค์ƒ ์šด์˜์ฒด์ œ๊ฐ€ ํ•˜๋Š” ์ผ์€ ์—†๋‹ค.

    • ํ•˜์ง€๋งŒ virtual memory ๊ด€๋ฆฌ์—์„œ๋Š” ์šด์˜์ฒด์ œ์˜ ์—ญํ• ์ด ๋Š˜์–ด๋‚œ๋‹ค.

Last updated