๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
HYU/์šด์˜์ฒด์ œ(OS)

9. Memory Management (2)

by Jaeguk 2023. 5. 7.

ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์˜ ํ˜•ํƒœ์— ๋”ฐ๋ผ์„œ ์ฐธ์กฐํ•˜๋Š” ๋ฐฉ์‹์ด ๋‹ฌ๋ผ์ง„๋‹ค.

ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์˜ ํ˜•ํƒœ๋Š” ํฌ๊ฒŒ 3๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

  • Hierarchical Paging : Break up the logical address space into multiple page tables
  • Hashing Page Tables : Using Hash to look up page table
  • Inverted Page Tables

Two-Level Page-Table Scheme(Hierarchical Paging)

์•ž ๋‚ด์šฉ์—์„œ ๋งํ–ˆ๋“ฏ์ด ๊ฐ ํ”„๋กœ์„ธ์Šค์˜ address space๋Š” ์šด์˜์ฒด์ œ์˜ ์ตœ๋Œ€ bit์— ๋งž์ถฐ์„œ max ์ฃผ์†Œ๊ฐ€ ์„ค์ •๋˜๊ฒŒ ๋˜๊ณ  32bit OS๋ผ๋ฉด max ์ฃผ์†Œ๊ฐ€ 2^32 - 1์ด ๋œ๋‹ค. => ๊ฐ ํ”„๋กœ์„ธ์Šค๋Š” 32bit๋ฅผ ๋ชจ๋‘ ์‚ฌ์šฉํ•œ๋‹ค

32bit address๋ฅผ ๊ฐ€์ง€๋Š” ํ”„๋กœ์„ธ์Šค์˜ address space๋ฅผ 4KB์˜ ํŽ˜์ด์ง€๋กœ ์ž๋ฅด๋ฉด 2^20๊ฐœ์˜ ํŽ˜์ด์ง€๊ฐ€ ๋งŒ๋“ค์–ด ์ง„๋‹ค.

๊ทธ๋ฆฌ๊ณ  2^20 ๊ฐœ์˜ ํŽ˜์ด์ง€๋ฅผ ๊ตฌ๋ถ„ํ•˜๋Š” ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” 2^20๊ฐœ์˜ ์—”ํŠธ๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๊ณ  ๊ฐ๊ฐ์˜ ์—”ํŠธ๋ฆฌ๋Š” ํŽ˜์ด์ง€๊ฐ€ ์ €์žฅ๋œ frame์˜ ์‹œ์ž‘์ฃผ์†Œ๊ฐ€ ๋ ํ…Œ๋‹ˆ ๊ฐ ์—”ํŠธ๋ฆฌ์˜ ํฌ๊ธฐ๋Š” 4 bytes ์ด๋‹ค.

๋”ฐ๋ผ์„œ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์˜ ํฌ๊ธฐ๋Š” 4MB(2^22 bytes)๊ฐ€ ๋œ๋‹ค.

=> ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ๋˜ ๋‹ค์‹œ 4KB ํŽ˜์ด์ง€๋กœ ์ž˜๋ผ์„œ ํ”„๋ ˆ์ž„์— ๋ถ„ํ• ํ•ด์„œ ๋ณด๊ด€ํ•ด์•ผ ํ•œ๋‹ค.

4MB์งœ๋ฆฌ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ 4KB๋กœ ์ž๋ฅด๋ฉด 22 - 12 = 10 ์ด๋ฏ€๋กœ 2^10๊ฐœ์˜ ํŽ˜์ด์ง€๊ฐ€ ๋งŒ๋“ค์–ด ์ง„๋‹ค.

๋”ฐ๋ผ์„œ 2^10๊ฐœ์˜ ํŽ˜์ด์ง€๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด 10bit๋ฅผ ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ๋กœ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๊ณ , ๊ฐ 4KB (2^12) ํŽ˜์ด์ง€ ๋‚ด์—๋Š” 2^10๊ฐœ์˜ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ์—”ํŠธ๋ฆฌ๊ฐ€ ๋“ค์–ด๊ฐ„๋‹ค.

ํŽ˜์ด์ง€ ๋‚ด์—์„œ ๊ฐ ์—”ํŠธ๋ฆฌ๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด 10bit๊ฐ€ ํ•„์š”ํ•  ๊ฒƒ์ด๋‹ค.

ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ์œ„ํ•œ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์€ 2^10๊ฐœ ํŽ˜์ด์ง€๋ฅผ ๊ตฌ๋ถ„ํ•˜๋ฉด ๋˜๊ณ  ๋”ฐ๋ผ์„œ 2^10๊ฐœ์˜ ์—”ํŠธ๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋ฉฐ ๊ฐ ์—”ํŠธ๋ฆฌ๋Š” 4bytes ์ด๋ฏ€๋กœ 2^12 (4KB)๊ฐ€ ๋œ๋‹ค.

4KB๋Š” ํ•˜๋‚˜์˜ frame์•ˆ์— ๋”ฑ ๋งž๊ฒŒ ๋“ค์–ด๊ฐ€๋ฏ€๋กœ ๋” ์ด์ƒ์€ ๋ถ„ํ• ํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค.

=> Two level Page table

 

ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์˜ ํฌ๊ธฐ๊ฐ€ 4MB๋ฉด ํ”„๋กœ์„ธ์Šค๊ฐ€ 10๊ฐœ๋งŒ ์ƒ์„ฑ๋˜์–ด๋„ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์˜ ํฌ๊ธฐ๋งŒ 40MB์ด๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ์ „์ฒด๋Š” ๋””์Šคํฌ์— ์ €์žฅ์„ ํ•˜๊ณ  ํ˜„์žฌ ์ ‘๊ทผ ์ค‘์ธ ํŽ˜์ด์ง€์˜ ์ •๋ณด๊ฐ€ ๋“ค์–ด์žˆ๋Š” ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์˜ ์ผ๋ถ€๋ถ„๋งŒ ์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆฌ๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒ ๋‹ค.
=> on-demand ๋ฐฉ์‹

์ด๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด ๋‚ด๊ฐ€ ์ฐพ์œผ๋ ค๋Š”(CPU๊ฐ€ ์ ‘๊ทผํ•˜๋ ค๋Š”) logical page๊ฐ€ ์ €์žฅ๋œ frame์˜ ์ฃผ์†Œ๊ฐ€ ์ ํžŒ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์ด ๋ฉ”๋ชจ๋ฆฌ์˜ ์–ด๋–ค frame์— ์ €์žฅ๋˜์–ด ์žˆ๋Š”์ง€๋ฅผ ์•Œ์•„์•ผ ํ•œ๋‹ค.
=> ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ์œ„ํ•œ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์ด ํ•„์š”ํ•˜๋‹ค.

์›๋ž˜ ๊ธฐ๋ณธ์ ์ธ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋œ ํŽ˜์ด์ง€์˜ ์œ„์น˜๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š”๋ฐ, ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ์œ„ํ•œ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์€ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์˜ ์ผ๋ถ€๊ฐ€ ์ €์žฅ๋œ ์œ„์น˜๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ฒŒ ๋œ๋‹ค.
์›ํ•˜๋Š” ํŽ˜์ด์ง€๋ฅผ ์ฐพ์„ ๋•Œ, ๋จผ์ € ๋‚ด๊ฐ€ ์ฐพ๊ณ ์ž ํ•˜๋Š” ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ์—”ํŠธ๋ฆฌ๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ํŽ˜์ด์ง€ frame์˜ ์œ„์น˜๋ฅผ ์ฐพ๊ณ , ๊ทธ ์•ˆ์—์„œ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ์—”ํŠธ๋ฆฌ๋ฅผ ์ฐพ์•„ ๋‚ด๊ฐ€ ์ฐพ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด์žˆ๋Š” ํŽ˜์ด์ง€ frame์„ ์ฐพ์•„์„œ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•œ๋‹ค.
=> two level page table scheme

 

๋จผ์ €, ๋‚ด๊ฐ€ ์ฐพ๊ณ ์ž ํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด ์žˆ๋Š” ํŽ˜์ด์ง€๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•œ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ์—ญ์‹œ ์ชผ๊ฐœ์ ธ์„œ ํ”„๋ ˆ์ž„ ๋‚ด์— ๋“ค์–ด์žˆ์œผ๋ฏ€๋กœ ๊ทธ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์ด ๋“ค์–ด ์žˆ๋Š” frame์„ ์ฐพ๊ธฐ ์œ„ํ•ด outer-page table์„ ํƒ์ƒ‰ํ•œ๋‹ค.

๊ทธ๋ ‡๊ฒŒ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์ด ๋“ค์–ด ์žˆ๋Š” frame์—์„œ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ์—”ํŠธ๋ฆฌ๋ฅผ ์ฐพ์•„ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด ์žˆ๋Š” ํŽ˜์ด์ง€ frame์— ์ ‘๊ทผํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์–ป๋Š”๋‹ค.

=> ์ฆ‰, outer-page table์„ ํ†ตํ•ด ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์ด ๋“ค์–ด ์žˆ๋Š” ํŽ˜์ด์ง€ frame์„ ์ฐพ๋Š”๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ํ•ด๋‹น frame์œผ๋กœ ๊ฐ€์„œ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ์—”ํŠธ๋ฆฌ๋ฅผ ์ฐพ์•„ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด ์žˆ๋Š” ํŽ˜์ด์ง€๊ฐ€ ๋“ค์–ด ์žˆ๋Š” ํŽ˜์ด์ง€ frame์„ ์ฐพ์•„ ์ ‘๊ทผํ•œ๋‹ค.

๋ง์ด ํ—ท๊ฐˆ๋ฆด ์ˆ˜ ์žˆ์œผ๋‚˜ ์ฒœ์ฒœํžˆ ์ƒ๊ฐํ•ด๋ณด๋ฉด ๋œ๋‹ค.

 

๊ทธ๋Ÿฐ๋ฐ logical address ํ•˜๋‚˜๋งŒ์„ ๊ฐ€์ง€๊ณ  ์–ด๋–ป๊ฒŒ ์ด ๋‘ ํ…Œ์ด๋ธ”์„ Look up ํ•  ์ˆ˜ ์žˆ์„๊นŒ??

ํŽ˜์ด์ง€์˜ ํฌ๊ธฐ๊ฐ€ 2์˜ ์ง€์ˆ˜์Šน์œผ๋กœ ๊ฒฐ์ •๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€๋Šฅํ•˜๋‹ค.

์•ž์—์„œ ๋งํ–ˆ๋“ฏ์ด, 2^20๊ฐœ์˜ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ์—”ํŠธ๋ฆฌ๋Š” ๋˜ ๋‹ค์‹œ 2^10๊ฐœ์˜ ํŽ˜์ด์ง€ frame์— ๋‚˜๋ˆ ์„œ ์ €์žฅ๋˜๊ฒŒ ๋œ๋‹ค.

์ž˜๋ผ์ง„ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์ด ์ €์žฅ๋œ ํŽ˜์ด์ง€ frame์„ ๋งคํ•‘ํ•˜๋Š” outer-page table์˜ ์—”ํŠธ๋ฆฌ๋Š” 2^10๊ฐœ๊ฐ€ ๋œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๊ทธ๋ ‡๊ฒŒ ์ฐพ์€ ํŽ˜์ด์ง€ frame ๋‚ด์—๋Š” 2^10๊ฐœ์˜ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ์—”ํŠธ๋ฆฌ๊ฐ€ ๋“ค์–ด์žˆ์„ ๊ฒƒ์ด๊ณ , ๋”ฐ๋ผ์„œ ์›ํ•˜๋Š” ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ์—”ํŠธ๋ฆฌ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด offset์œผ๋กœ 10bit๊ฐ€ ํ•„์š”ํ•  ๊ฒƒ์ด๋‹ค.

page number๋ฅผ ์˜๋ฏธํ–ˆ๋˜ m-n bit๊ฐ€ ๋˜ ๋‹ค์‹œ p1, p2๋กœ ๋‚˜๋‰˜์–ด์„œ ๊ฐ๊ฐ์€ ์ž˜๋ฆฐ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์ด ์ €์žฅ๋œ ํŽ˜์ด์ง€์˜ ๋ฒˆํ˜ธ์™€ ํŽ˜์ด์ง€ ๋‚ด์—์„œ์˜ offset์„ ์˜๋ฏธํ•˜๊ฒŒ ๋œ๋‹ค.

์ด ๋‘ ์ •๋ณด๋ฅผ ์ด์šฉํ•ด์„œ outer-page table์—์„œ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์ด ์ €์žฅ๋œ ํŽ˜์ด์ง€๋ฅผ ์ฐพ์•„ ํ•ด๋‹น ํŽ˜์ด์ง€ ๋‚ด์—์„œ ์›ํ•˜๋Š” ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ์—”ํŠธ๋ฆฌ๋ฅผ ์ฐพ์•„, ์—”ํŠธ๋ฆฌ๋ฅผ ํ†ตํ•ด ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด ์žˆ๋Š” ํŽ˜์ด์ง€ frame์„ ์ฐพ์•„์„œ d(12bit)๋ฅผ ์ด์šฉํ•ด์„œ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.

์ด ๊ณผ์ •์„ ๊ทธ๋ฆผ์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

p1์„ ์ด์šฉํ•ด์„œ outer-page table์—์„œ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์ด ์ €์žฅ๋œ ํŽ˜์ด์ง€ frame์„ ์ฐพ๋Š”๋‹ค.

๊ทธ๋ ‡๊ฒŒ ์ฐพ์€ ํŽ˜์ด์ง€ frame์—์„œ p2๋ฅผ offset์œผ๋กœ ํ•˜์—ฌ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ์—”ํŠธ๋ฆฌ๋ฅผ ์ฐพ์•„์„œ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด ์žˆ๋Š” ํŽ˜์ด์ง€ frame์„ ์ฐพ๋Š”๋‹ค.

๊ทธ frame์—์„œ d๋ฅผ offset์œผ๋กœ ์ด์šฉํ•ด์„œ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๊ฒŒ ๋œ๋‹ค.

 

Multilevel Paging and Performance

์ด๋ ‡๊ฒŒ ์—ฌ๋Ÿฌ ๋‹จ๊ณ„์˜ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ์ด์šฉํ–ˆ์„ ๋•Œ์˜ ์„ฑ๋Šฅ์€ ์–ด๋–ป๊ฒŒ ๋ ๊นŒ?

32bit ์ฃผ์†Œ ์ฒด๊ณ„๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ”๊นฅ์ชฝ page table์ด 2^10 * 4 (4KB)์˜ ํฌ๊ธฐ๋ฅผ ๊ฐ€์ง€๋ฏ€๋กœ ํ•˜๋‚˜์˜ frame์— ์™ ๋“ค์–ด๊ฐ€๊ฒŒ ๋œ๋‹ค.
=> 32bit์˜ ๊ฒ…์šฐ two level๋กœ ๋๋‚˜๊ฒŒ ๋œ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ๋ฐ”๊นฅ์ชฝ page table์˜ ํฌ๊ธฐ๊ฐ€ 4KB๋ฅผ ๋„˜์–ด๊ฐ€๊ฒŒ ๋˜๋ฉด ๋˜ ๋‹ค์‹œ ํ•˜๋‚˜์˜ frame์— ๋“ค์–ด๊ฐ€์ง€ ๋ชป ํ•˜๊ฒŒ ๋˜๊ณ  ์—ฌ๋Ÿฌ frame์— ๋‚˜๋ˆ ์„œ ๋“ค์–ด๊ฐ€๊ฒŒ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ”๊นฅ์ชฝ page table์„ ์œ„ํ•œ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์ด ๋˜ ๋‹ค์‹œ ํ•„์š”ํ•  ๊ฒƒ์ด๋‹ค.

2^64bit ์ฃผ์†Œ ์ฒด๊ณ„๋ผ๋ฉด 2^32bit ์™€๋Š” ๋น„๊ต๊ฐ€ ์•ˆ ๋  ์ •๋„๋กœ ๋งŽ์€ ์ฃผ์†Œ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์ด two level๋กœ ๋๋‚˜์ง€ ์•Š์„ ๊ฒƒ์ด๋‹ค.
๊ทธ๋Ÿฌ๋ฉด ์–ด๋–ป๊ฒŒ ํ•˜๋ƒ, ๋ฌผ๋ก  ๊ณ„์† ๋‹ค๋‹จ๊ณ„๋กœ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค๋ฉด ํ•ด๊ฒฐ์€ ๋˜๊ฒ ์ง€๋งŒ ๊ทธ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๊ฝค ์ปค์ง€๊ฒŒ ๋œ๋‹ค.

two level๋งŒ ํ•ด๋„ ๋ฉ”๋ชจ๋ฆฌ์— ์ด 3๋ฒˆ์„ ์ ‘๊ทผํ•˜๊ฒŒ ๋œ๋‹ค. outer page table์— ํ•œ ๋ฒˆ, inner page table์— ํ•œ ๋ฒˆ, ๋ฐ์ดํ„ฐ์— ํ•œ ๋ฒˆ.
๊ทธ๋Ÿฐ๋ฐ level์ด ๋” ์ปค์ง€๊ฒŒ ๋˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์ ์  ์ปค์ง€๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค.

CPU๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด ๋ฉ”๋ชจ๋ฆฌ์— ํ•œ ๋ฒˆ ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‹ค์งˆ์ ์œผ๋กœ 4๋ฒˆ, 5๋ฒˆ ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ•˜๊ฒŒ ๋œ๋‹ค.

=> ์ด๊ฑด ์‹ฌ๊ฐํ•œ ๋ฌธ์ œ.

๋‹คํ–‰์Šค๋Ÿฝ๊ฒŒ TLB๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋Š ์ •๋„ ์˜ค๋ฒ„ํ—ค๋“œ ์™„ํ™”๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

TLB hit ratios๊ฐ€ 98%์ธ 4 level paging์—์„œ๋Š” 128 nanoseconds๊ฐ€ ๊ฑธ๋ฆฐ๋‹ค.

ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์ด ์—†์„ ๋•Œ๋Š” ๋ฐ”๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ๊ฐ€๋‹ˆ๊นŒ 100ns๊ฐ€ ๊ฑธ๋ฆฌ๋Š”๋ฐ 4๋‹จ๊ณ„๋กœ ์ ‘๊ทผํ•ด๋„ 128ns๋‹ˆ๊นŒ ํฌ๊ฒŒ ์ฐจ์ด๊ฐ€ ๋‚˜์ง€ ์•Š์Œ. (28%์˜ ์„ฑ๋Šฅ ์ €ํ•˜)
=> TLB hit ratio๊ฐ€ ๋†’์œผ๋ฉด ๋ ˆ๋ฒจ์ด ์กฐ๊ธˆ ๋†’์•„์ ธ๋„ ๋ฌธ์ œ๊ฐ€ ์—†๊ฒ ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” 64bit์˜ ๊ฒฝ์šฐ 6๋ ˆ๋ฒจ์ด ํ•„์š”ํ•˜๋‹ค.
=> ์ด๊ฑด TLB๋ฅผ ์‚ฌ์šฉํ•˜๋”๋ผ๋„ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๊ฝค ํด ๊ฒƒ์ด๋‹ค.

๊ตณ์ด 2^64 ์ฃผ์†Œ ๊ณต๊ฐ„์„ ๋ชจ๋‘ ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€ ์žˆ์„๊นŒ? ์‚ฌ์šฉํ•˜๋Š” ๊ณต๊ฐ„๋ณด๋‹ค ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ณต๊ฐ„์ด ๋” ํดํ…๋ฐ??

๊ทธ๋ž˜์„œ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” bit๋Š” ๋ฒ„๋ฆฌ์ž๋Š” ์ƒ๊ฐ์ด ๋‚˜์˜ด
=> 48bit๋งŒ ์ฃผ์†Œ๋กœ ์‚ฌ์šฉํ•˜์ž.
=> ์ด๊ฑด 4 level๋กœ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

์ด๊ฑด ์ƒ์‹์ ์œผ๋กœ ์•Œ์•„๋‘์ž.

32bit OS๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, DRAM์„ 2GB ์งœ๋ฆฌ๋ฅผ ๊ฝ‚์•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ณด์ž.
32bit๋Š” 2^32๊ฐœ์˜ ์ฃผ์†Œ๋ฅผ ์ปค๋ฒ„ํ•  ์ˆ˜ ์žˆ๋‹ค. 2^32๋Š” 4GB
=> ๋ชจ๋“  DRAM์˜ ์ฃผ์†Œ ์ปค๋ฒ„ ๊ฐ€๋Šฅ

DRAM์„ ๋Š˜๋ ค์„œ 4GB ์งœ๋ฆฌ๋ฅผ ๊ฝ‚์•˜๋‹ค๋ฉด, ๋”ฑ๋งž๊ฒŒ DRAM์˜ ๋ชจ๋“  ์˜์—ญ์„ ์ปค๋ฒ„ํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ 32bit OS๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ 8GB์งœ๋ฆฌ DRAM์„ ๊ฝ‚์•˜๋‹ค๊ณ  ํ•˜๋ฉด, 4GB์˜ ์ฃผ์†Œ ์˜์—ญ๋งŒ ์ปค๋ฒ„๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ˆ๊นŒ ๋‚˜๋จธ์ง€ 4GB๋Š” ์‚ฌ์šฉํ•˜์ง€ ๋ชป ํ•˜๊ฒŒ ๋œ๋‹ค.
์‹ฌ์ง€์–ด 4GB๋„ ๋‹ค ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํŠน์ˆ˜ ๋ชฉ์ ์„ ์œ„ํ•ด reserved ๋˜๋Š” ์ฃผ์†Œ๋ฅผ ์ œ์™ธํ•˜๋ฉด ์‚ฌ์‹ค์ƒ ๋Œ€๋žต 3.2GB ์ •๋„๋งŒ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

4GB ์ด์ƒ์˜ DRAM์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด 64bit CPU, OS๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

 

Hashed Page Tables

์ฃผ์†Œ ๋ณ€ํ™˜ ์—ญ์‹œ Search๋ผ๋ฉด Search structure์ธ ํ•ด์‹œ๋ฅผ ์“ฐ์ง€ ๋ชป ํ•  ์ด์œ ๊ฐ€ ์—†๋‹ค.

=> ํ•ด์‹œ ํ…Œ์ด๋ธ”์„ ํ†ตํ•ด ์‹ค์ œ ์ฃผ์†Œ๋ฅผ ์ฐพ์•„๋‚ด๋„๋ก ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

32bit๋Š” two level page table๋กœ ์ปค๋ฒ„๊ฐ€ ๋˜๋ฏ€๋กœ depth๊ฐ€ 2์ธ tree๋ผ๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค.
=> ์ด ๊ฒฝ์šฐ์—” ๊ตณ์ด ํ•ด์‹œ๋ฅผ ์‚ฌ์šฉ ์•ˆ ํ•ด๋„ ๊ดœ์ฐฎ๋‹ค.

ํ•ด์‹œ๋ฅผ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ ๊ธฐ๋Œ€ํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(1)์ด์ง€๋งŒ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ–ˆ์„ ๊ฒฝ์šฐ๋Š” ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ณผ์ •์ด ํ•„์š”ํ•˜๋ฏ€๋กœ chaning์„ ํ†ตํ•ด ๋๊นŒ์ง€ ๊ฐ„๋‹ค๊ณ  ํ•˜๋ฉด ์ตœ์•…์˜ ๊ฒฝ์šฐ O(N)๊นŒ์ง€ ๋Š˜์–ด๋‚  ์ˆ˜๋„ ์žˆ๋‹ค.

=> ํ•ด์‹œ ํ…Œ์ด๋ธ”์€ ์„ค๊ณ„๋ฅผ ์ž˜ ํ•ด์•ผ ํ•œ๋‹ค.

์ถฉ๋Œ์ด ๋‚œ ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ๋“ค์ด ๋ชจ๋‘ chain์œผ๋กœ ์—ฐ๊ฒฐ์ด ๋˜์–ด ์žˆ๋‹ค.
q๋ผ๋Š” ํŽ˜์ด์ง€๋Š” s๋ผ๋Š” frame์— ์ €์žฅ์ด ๋˜์–ด ์žˆ๊ณ , p๋ผ๋Š” ํŽ˜์ด์ง€๋Š” r์ด๋ผ๋Š” frame์— ์ €์žฅ์ด ๋˜์–ด ์žˆ๋‹ค.
=> ์ด๋ ‡๊ฒŒ ์ฒด์ธ์„ ํ†ตํ•ด ๋Œ€๋กฑ๋Œ€๋กฑ ๋งค๋‹ฌ๋ ค ์žˆ๋‹ค.
=> ์ตœ์•…์˜ ๊ฒฝ์šฐ์—” ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ O(N)์œผ๋กœ ํŠธ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ๋ณด๋‹ค ์˜คํžˆ๋ ค ๋Š๋ฆฌ๊ฒŒ ๋  ์ˆ˜๋„ ์žˆ๋‹ค.

=> ํ•ด์‹œ ํ•จ์ˆ˜๋Š” ํ•จ๋ถ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์ง€๋งŒ ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ์ž˜ ๋””์ž์ธํ•ด์„œ ์ฒด์ธ์ด ์ตœ๋Œ€ํ•œ ์งง์•„์ง€๋„๋ก ํ•œ๋‹ค๋ฉด ํ•ด์‹œ๋ฅผ ์‚ฌ์šฉํ•œ ๊ธฐ๋ฒ•์ด ํšจ๊ณผ๋ฅผ ๋ฐœํœ˜ํ•  ๊ฒƒ์ด๋‹ค.

=> ๋ฌด์กฐ๊ฑด์ ์œผ๋กœ ์–ด๋–ค ๊ธฐ๋ฒ•์ด ์ข‹๋‹ค๊ณ  ๋งํ•  ์ˆ˜๋Š” ์—†์ง€๋งŒ 32bit ์ฃผ์†Œ์ฒด๊ณ„ ์ดํ•˜์ธ ๊ฒฝ์šฐ์—” ํŠธ๋ฆฌ์˜ ๊นŠ์ด๊ฐ€ 2 ์ดํ•˜์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋Ÿฌํ•œ ๊ฒฝ์šฐ์—” Hashing๋ณด๋‹จ 2๋‹จ๊ณ„ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์ด ๋‚˜์„ ๊ฒƒ์ด๋‹ค.

 

Inverted Page Table

ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์€ ํ”„๋กœ์„ธ์Šค๋งˆ๋‹ค ๊ฐ๊ฐ ๊ฐ–๋Š”๋‹ค๊ณ  ํ–ˆ๋‹ค.
=> ์ž์‹ ์˜ address space๋ฅผ ๋งคํ•‘ํ•˜๋Š” ํ…Œ์ด๋ธ”์„ ๊ฐ–๊ฒŒ ๋œ๋‹ค.

32bit ๋จธ์‹ ์˜ ๊ฒฝ์šฐ ํŽ˜์ด์ง€ ์‚ฌ์ด์ฆˆ๊ฐ€ 4KB๋ผ๊ณ  ํ–ˆ์„ ๋•Œ, ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์˜ ํฌ๊ธฐ๊ฐ€ 4MB๊ณ  ํ”„๋กœ์„ธ์Šค๊ฐ€ 10๊ฐœ๋ฉด 40MB์˜ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ•„์š”ํ•  ๊ฒƒ์ด๊ณ , 100๊ฐœ๋ผ๋ฉด 400MB๊ฐ€ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”๋กœ๋งŒ ์ฑ„์›Œ์งˆ ๊ฒƒ์ด๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ์šฐ๋ฆฌ๊ฐ€ ๊ณผ์—ฐ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋“ค์ด ์ž๊ธฐ๋งŒ์˜ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ์œ ์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์“ธ ์ˆ˜ ๋ฐ–์— ์—†์„๊นŒ??
logical address space๋Š” ์ฃผ์†Œ ์ฒด๊ณ„ ์ „์ฒด๋ฅผ ๋‹ค ์“ด๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ 4GB ์ „์ฒด๋ฅผ ๋‹ค ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ๋“œ๋ฌผ ๊ฒƒ์ด๋‹ค.

ํ”„๋กœ์„ธ์Šค๊ฐ€ 10๊ฐœ๋ผ๊ณ  ํ•˜๋ฉด ๋ฌผ๋ฆฌ์ ์œผ๋กœ 40GB์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ๊ฐ€์ •์„ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์‹ค์ œ๋กœ ๋ฉ”๋ชจ๋ฆฌ์˜ ํฌ๊ธฐ๊ฐ€ 4GB๋ผ๋ฉด ๋ง์ด ์•ˆ ๋˜๋Š” ์ƒํ™ฉ์ด๋‹ค.
=> ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์€ virtual memory์—์„œ ๋ฐฐ์šธ ๊ฒƒ์ด๋‹ค.

 

logical page ๋ฒˆํ˜ธ๋ฅผ physical page๋กœ ๋ณ€ํ™˜ํ•˜์ง€ ๋ง๊ณ , physical page๋ฅผ logical page๋กœ ๋งคํ•‘์„ ํ•˜์ž๋Š” ๊ฒƒ์ด Inverted Paging ๊ธฐ๋ฒ•์˜ ๊ธฐ๋ณธ์ ์ธ ์ฒ ํ•™.

physical page๋Š” DRAM์˜ ์‚ฌ์ด์ฆˆ์— ์˜ํ•ด ๊ฐœ์ˆ˜๊ฐ€ ์ •ํ•ด์ ธ ์žˆ๋‹ค.
4GB๋ผ๋ฉด 2^20๊ฐœ์˜ physical page๊ฐ€ ์กด์žฌํ•œ๋‹ค. (ํŽ˜์ด์ง€ ์‚ฌ์ด์ฆˆ๊ฐ€ 4KB์ผ ๋•Œ)

DRAM์˜ ์ฒซ ๋ฒˆ์งธ ํŽ˜์ด์ง€์—๋Š” ํ”„๋กœ์„ธ์Šค 5๋ฒˆ์˜ 15๋ฒˆ์งธ ํŽ˜์ด์ง€๊ฐ€ ๋“ค์–ด๊ฐ€ ์žˆ๋‹ค. ๋‘ ๋ฒˆ์งธ physical ํŽ˜์ด์ง€์—๋Š” ํ”„๋กœ์„ธ์Šค 3๋ฒˆ์˜ 13๋ฒˆ์งธ ํŽ˜์ด์ง€๊ฐ€ ๋“ค์–ด๊ฐ€ ์žˆ๋‹ค.
์ด๋ ‡๊ฒŒ physical page๋ฅผ logical page๋กœ ๋งคํ•‘์‹œํ‚ค๊ฒŒ ๋˜๋ฉด DRAM์˜ ์‚ฌ์ด์ฆˆ๋กœ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์˜ ํฌ๊ธฐ๊ฐ€ ์ •ํ•ด์ง€๊ฒŒ ๋œ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์‹ค์ œ๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ํƒ‘์žฌ๋œ ํŽ˜์ด์ง€์— ๋Œ€ํ•œ ์ •๋ณด๋งŒ ํ…Œ์ด๋ธ”์— ๋“ค์–ด๊ฐ€๊ฒŒ ๋œ๋‹ค.
=> ์‹ค์ œ ์‚ฌ์šฉ ์ค‘์ธ ํŽ˜์ด์ง€์— ๋Œ€ํ•ด์„œ๋งŒ ๋งคํ•‘ ์ •๋ณด๋ฅผ ์œ ์ง€ํ•˜์ž.
=> ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์ด ํ”„๋กœ์„ธ์Šค๋งˆ๋‹ค ์ƒ์„ฑ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ปดํ“จํ„ฐ ๋‚ด์— ๋”ฑ ํ•˜๋‚˜๋งŒ ์ƒ์„ฑ๋˜๊ฒŒ ๋œ๋‹ค.

 

์ด ๋ฐฉ์‹์ด ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋ ค๋ฉด ์œ„์—์„œ๋ถ€ํ„ฐ ์ญ‰ ์ฐพ์œผ๋ฉด์„œ pid์™€ p๊ฐ€ ๋งค์นญ๋˜๋Š” ์—”ํŠธ๋ฆฌ๋ฅผ ์ฐพ์•„์•ผ ํ•œ๋‹ค.
์ฆ‰, ์›๋ž˜ ํŽ˜์ด์ง• ๊ธฐ๋ฒ•์—์„œ๋Š” ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ p๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ฐ”๋กœ ๊ฑฐ๊ธฐ๋กœ ์ ํ”„ํ•  ์ˆ˜ ์žˆ์—ˆ๋Š”๋ฐ, ์ด๊ฑด ์ˆœ์ฐจ์ ์œผ๋กœ search๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค.
=> Associative search: ์–ด๋–ค ํ•„๋“œ์˜ ๊ฐ’์ด ์ผ์น˜ํ•˜๋Š”์ง€ ๋น„๊ตํ•˜๋ฉด์„œ Search๋ฅผ ํ•˜๋Š” ๊ฒƒ.
=> ์˜ค๋ž˜๊ฑธ๋ฆฐ๋‹ค.

TLB ์—ญ์‹œ Associative search๋ฅผ ํ•˜๋Š”๋ฐ, ์ด๊ฑธ ํ•œ ํ์— ํ•ด์ฃผ๋Š” ํ•˜๋“œ์›จ์–ด์˜ ๋„์›€์„ ๋ฐ›๋Š”๋‹ค๊ณ  ํ–ˆ์ง€๋งŒ ์—ฌ๊ธฐ์—” ์‚ฌ์šฉ์„ ํ•˜์ง€ ์•Š๋Š”๋‹ค.

์–ด์ฉ” ์ˆ˜ ์—†์ด ์œ„์—์„œ๋ถ€ํ„ฐ ํ•˜๋‚˜ ํ•˜๋‚˜ ์ฝ์œผ๋ฉด์„œ ๋น„๊ต๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค.
=> Inverted Paging ๊ธฐ๋ฒ•์˜ ๋‹จ์ 

์ด ๋‹จ์ ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์ด ํ•ด์‹ฑ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
pid์™€ p๋ฅผ ํ•ด์‹œ ํ•จ์ˆ˜์˜ input์œผ๋กœ ๋„ฃ์–ด์„œ DRAM์—์„œ์˜ ์ธ๋ฑ์Šค๋ฅผ output์œผ๋กœ ๋‚ด๋Š” ํ•ด์‹ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

๋˜๋Š” TLB๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด miss๊ฐ€ ๋‚œ ๊ฒฝ์šฐ์—๋งŒ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ Searchํ•˜๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์— hit๊ฐ€ ๋งŽ์ด ๋‚˜๋ฉด Search๋ฅผ ํ•˜๋Š” ๋น„์ค‘์ด ์ ์„ ๊ฒƒ์ด๋‹ค.

๊ทธ๋Ÿฐ๋ฐ Inverted paging ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ฉด ํŽ˜์ด์ง• ๊ธฐ๋ฒ•์˜ ํฐ ์žฅ์ ์ธ page sharing์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค.
=> ์ด๊ฒŒ ์™œ ๋ถˆ๊ฐ€๋Šฅํ• ๊นŒ?
Inverted paging์—์„œ๋Š” ํ•ด๋‹น DRAM์˜ frame๊ณผ ๋งคํ•‘๋œ logical ํŽ˜์ด์ง€๊ฐ€ ์—”ํŠธ๋ฆฌ๋กœ ์ €์žฅ๋˜๊ฒŒ ๋˜๋Š”๋ฐ, ๋งŒ์•ฝ ํŽ˜์ด์ง€๋ฅผ ๊ณต์œ ํ•˜๊ฒŒ ๋˜๋ฉด ํ•˜๋‚˜์˜ ์—”ํŠธ๋ฆฌ์— ํ•ด๋‹น frame์„ ๊ณต์œ ํ•˜๋Š” ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค์˜ ์ •๋ณด๊ฐ€ ์ ํ˜€์•ผ ํ•œ๋‹ค.
=> ์ด๊ฑธ ๋‹ค ์ ์œผ๋ ค๋ฉด ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์˜ ํฌ๊ธฐ๊ฐ€ ์ปค์ง„๋‹ค. ๊ทธ๋ฆฌ๊ณ  5๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํŽ˜์ด์ง€๋ฅผ ๊ณต์œ ํ•œ๋‹ค๊ณ  ํ•˜๋ฉด Searchํ•  ๋•Œ ์ด 5๊ฐœ ์—”ํŠธ๋ฆฌ๋ฅผ ๋ชจ๋‘ Searchํ•ด์•ผ ํ•œ๋‹ค.
=> ์—ฌ๋Ÿฌ ๋ฌธ์ œ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— Page sharing์„ ์‚ฌ์šฉํ•˜์ง€ ๋ชป ํ•œ๋‹ค.

 

Segmentation

ํŽ˜์ด์ง• ๊ธฐ๋ฒ•์€ ๊ฐ€์žฅ ํฐ ํŠน์ง•์ด DRAM๋„ frame์ด๋ผ๋Š” ๋˜‘๊ฐ™์€ ํฌ๊ธฐ๋กœ ์ž๋ฅด๊ณ , ํ”„๋กœ์„ธ์Šค์˜ address space๋„ ํŽ˜์ด์ง€๋ผ๋Š” ๊ฐ™์€ ํฌ๊ธฐ๋กœ ๋ชจ๋‘ ์ž๋ฅธ๋‹ค๊ณ  ํ–ˆ๋‹ค.

ํ”„๋กœ์„ธ์Šค์˜ address space๋ฅผ ๋‹จ์ˆœํžˆ ํฌ๊ธฐ๋งŒ ๊ฐ€์ง€๊ณ  ์ž˜๋ผ๋ƒˆ๋‹ค.
ํ”„๋กœ๊ทธ๋žจ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด ์–ด๋–ค ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜๊ณ  ์žˆ๋Š”๋ฐ, ํ•จ์ˆ˜์˜ ์ผ๋ถ€๋Š” ์ฒซ ๋ฒˆ์งธ ํŽ˜์ด์ง€์— ๋“ค์–ด๊ฐ€๊ณ  ํ•จ์ˆ˜์˜ ๋’ท๋ถ€๋ถ„์€ ๋‘ ๋ฒˆ์งธ ํŽ˜์ด์ง€์— ๋“ค์–ด๊ฐ€๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•œ๋‹ค.
๋˜๋Š” array๋ฅผ ์„ ์–ธํ–ˆ๋Š”๋ฐ array์˜ ์•ž ๋ถ€๋ถ„์€ ๋‹ค์„ฏ ๋ฒˆ์งธ ํŽ˜์ด์ง€์— ๋“ค์–ด๊ฐ€๊ณ  ๋’ท ๋ถ€๋ถ„์€ ์—ฌ์„ฏ ๋ฒˆ์งธ ํŽ˜์ด์ง€์— ๋“ค์–ด๊ฐ€๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ์žˆ๋‹ค.
์ด๊ฒŒ ๊ทธ๋ƒฅ ํฌ๊ธฐ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ž˜๋ผ์„œ ๋ฐœ์ƒํ•˜๋Š” ํ˜„์ƒ์ด๋‹ค.
=> ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์žƒ์–ด๋ฒ„๋ฆฌ๋Š” ์ •๋ณด๊ฐ€ ์ƒ๊ธด๋‹ค. "์˜๋ฏธ์ ์ธ ๋ฉ์–ด๋ฆฌ"๋ผ๋Š” ๊ฐœ๋…์„ ์žƒ์–ด๋ฒ„๋ฆฐ๋‹ค.
=> ์ด๊ฑธ ์žƒ์–ด๋ฒ„๋ฆฌ๋ฉด ๋ญ๊ฐ€ ์•ˆ ์ข‹์„๊นŒ?
๊ณต์œ ํ•  ๋•Œ ์•ˆ ์ข‹๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ด object๋Š” ๊ณต์œ ๋ฅผ ํ•ด๋„ ๋˜๋Š” ๋ถ€๋ถ„์ด์•ผ, ์ € object๋Š” ๊ณต์œ ๋ฅผ ํ•˜๋ฉด ์•ˆ ๋ผ. ์ด๋Ÿฐ ๊ฒƒ๋“ค์ด object์˜ ํŠน์„ฑ์— ์˜ํ•ด ๊ฒฐ์ •๋˜๋Š”๋ฐ ์‚ฌ์ด์ฆˆ ๋‹จ์œ„๋กœ ์ž๋ฅด๋‹ค ๋ณด๋‹ˆ ์–ด๋–ค ํŽ˜์ด์ง€ ์•ˆ์—๋Š” ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ๋†ˆ ๋ฐ˜, ๊ณต์œ ํ•  ์ˆ˜ ์—†๋Š” ๋†ˆ ๋ฐ˜. ์ด๋ ‡๊ฒŒ ์„ž์—ฌ์„œ ๋“ค์–ด๊ฐˆ ์ˆ˜๊ฐ€ ์žˆ๋‹ค.

๋˜ ํ”„๋กœ๊ทธ๋žจ์˜ ์ฝ”๋“œ ๋ถ€๋ถ„์€ ์ „์ฒด๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•˜๋ฉด, ์ด ์ฝ”๋“œ๋Š” ๊ณต์œ ๋ฅผ ํ• ๋ž˜ ์ด๋ ‡๊ฒŒ ์„ ์–ธ์„ ํ•˜๋ฉด ๋˜๋Š”๋ฐ ํฌ๊ธฐ ๋ณ„๋กœ 5๊ฐœ๋กœ ๋‚˜๋ˆ ์ ธ ์žˆ๋‹ค๊ณ  ํ•˜๋ฉด 5๊ฐœ์— ๋Œ€ํ•ด์„œ ๊ฐ๊ฐ ๊ณต์œ ๋ฅผ ์„ ์–ธํ•ด์•ผ ํ•œ๋‹ค.

์˜๋ฏธ๋Š” ๋ฌด์‹œํ•˜๊ณ  ํฌ๊ธฐ ๋‹จ์œ„๋กœ ์ž˜๋ž๊ธฐ ๋•Œ๋ฌธ์— ์ƒ๊ธด ๋ฌธ์ œ.
=> ์˜๋ฏธ ๋‹จ์œ„๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ ์ž๋ฅผ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ ์—†์„๊นŒ??

address space๋ฅผ segmentation๋‹จ์œ„๋กœ ์ž๋ฅด๊ฒ ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์ž˜๋ฆฐ ๊ฐ๊ฐ์€ ๊ธธ์ด๊ฐ€ ๋‹ค ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ํ—ˆ์šฉํ•œ๋‹ค.
๋ฉ”์ธ ํ”„๋กœ๊ทธ๋žจ ํ•œ ๋ฉ์–ด๋ฆฌ, ๋ฉ”์ธ ํ•จ์ˆ˜์—์„œ ํ˜ธ์ถœํ•˜๋Š” ํ•จ์ˆ˜ ํ•œ ๋ฉ์–ด๋ฆฌ, ํ˜„์žฌ ์‚ฌ์šฉํ•˜๋Š” ์Šคํƒ ํ•œ ๋ฉ์–ด๋ฆฌ... ์ด๋ ‡๊ฒŒ ์˜๋ฏธ ๋‹จ์œ„๋ณ„๋กœ ์ž๋ฅผ ์ˆ˜ ์žˆ๋‹ค.

=> logical address space๋Š” ์˜๋ฏธ ๋‹จ์œ„๋“ค์˜ ์ง‘ํ•ฉ์ด ๋œ๋‹ค.

์ด๊ฑด ํŽ˜์ด์ง• ๊ธฐ๋ฒ•์ด๋ž‘์€ ๋ณ„๊ฐœ์˜ ๊ธฐ๋ฒ•์ด๋‹ค.
๊ธฐ๋ณธ์ ์œผ๋กœ Contiguous Allocation์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. ์›๋ž˜๋Š” ์ „์ฒด address space๋ฅผ ํ†ต์งธ๋กœ ์—ฐ์†์ ์œผ๋กœ ์˜ฌ๋ฆฌ๋Š” ๊ฒƒ์ด์—ˆ๋Š”๋ฐ ๊ทธ๊ฑด ์ข€ ์‹ฌํ•˜๊ณ , ์˜๋ฏธ ๋‹จ์œ„๋“ค์„ ์—ฐ์†์ ์œผ๋กœ ์˜ฌ๋ฆฌ์ž.
main program์„ ์—ฐ์†์ ์œผ๋กœ ์˜ฌ๋ฆฌ๊ณ , Sqrt๋„ ์—ฐ์†์ ์œผ๋กœ ์˜ฌ๋ฆฌ๋Š”๋ฐ main program๊ณผ Sqrt๊ฐ€ ์—ฐ์†์ ์ผ ํ•„์š”๋Š” ์—†๋‹ค.
=> ๊ฐ๊ฐ๋งŒ ์—ฐ์†์ ์œผ๋กœ ์˜ฌ๋ผ๊ฐ€๋ฉด ๋œ๋‹ค.

 

๊ทธ๋Ÿฐ๋ฐ ์ด๋ ‡๊ฒŒ segmentation ๋‹จ์œ„๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆฌ๊ฒŒ ๋˜๋ฉด ์ฃผ์†Œ ๋ณ€ํ™˜์€ ์–ด๋–ป๊ฒŒ ํ•  ์ˆ˜ ์žˆ์„๊นŒ??

logical address๋ฅผ page number์™€ offset์œผ๋กœ ์ž๋ฅด๋Š” ๊ฒƒ๊ณผ ๋น„์Šทํ•˜๊ฒŒ segment number์™€ offset์œผ๋กœ ์ž๋ฅด์ž.

๊ทธ๋ฆฌ๊ณ  segment table์„ ์œ ์ง€ํ•˜์ž.

Segment table์—๋Š” ๊ฐ๊ฐ์˜ segment์˜ ์‹œ์ž‘ ์ฃผ์†Œ๋ฅผ ๋‹ด๋Š” field๊ฐ€ ํ•˜๋‚˜ ์žˆ๋‹ค (Base).
๊ทธ๋ฆฌ๊ณ  ๊ทธ segment์˜ ๊ธธ์ด๋ฅผ ๋‹ด๋Š” ์ •๋ณด๊ฐ€ ํ•˜๋‚˜ ์žˆ๋‹ค (limit)

Base์™€ Limit์˜ ํŽ˜์–ด๊ฐ€ segment table์˜ ์—”ํŠธ๋ฆฌ๊ฐ€ ๋œ๋‹ค.

segment ๋ฒˆํ˜ธ๋ฅผ ๋ณด๊ณ  segment table ๋‚ด์—์„œ ์—”ํŠธ๋ฆฌ๋ฅผ ์ฐพ์•„๋‚ด์„œ Base์™€ limit ์ •๋ณด๋ฅผ ์–ป๋Š”๋‹ค.
Base์— offset์„ ๋”ํ•˜๋ฉด ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด์žˆ๋Š” ์ฃผ์†Œ๋ฅผ ์•Œ์•„๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

์ด๋ ‡๊ฒŒ ๊ฐ segment์— ๋ฒˆํ˜ธ๋ฅผ ๋งค๊ธฐ๊ณ  segment table์—๋Š” segment ๋ฒˆํ˜ธ ๋ณ„๋กœ segment๊ฐ€ ์ €์žฅ๋œ ๋ฉ”๋ชจ๋ฆฌ์˜ ์‹œ์ž‘ ์ฃผ์†Œ์™€ segment์˜ ๊ธธ์ด๋ฅผ ์—”ํŠธ๋ฆฌ๋กœ ์ €์žฅํ•œ๋‹ค.

๋งŒ์•ฝ 4๋ฒˆ segment์ธ symbol table์˜ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๊ณ  ์‹ถ๋‹ค๊ณ  ํ•˜๋ฉด segment table์—์„œ 4์นธ์„ ๋‚ด๋ ค๊ฐ€๋ฉด base๊ฐ€ 4700์ž„์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

4700์— offset์„ ๋”ํ•ด์„œ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. ์ด๋•Œ offset์ด segment์˜ ๊ธธ์ด์ธ limit๋ณด๋‹ค ํฌ๋ฉด ์„ธ๊ทธ๋จผํŠธ์˜ ๋ฒ”์œ„๋ฅผ ๋„˜์–ด๊ฐ€๋Š” ์ ‘๊ทผ์ด๋ฏ€๋กœ ๋ณดํ˜ธ๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค.

 


์‹คํ–‰์‹œํ‚ฌ ํ”„๋กœ์„ธ์Šค์˜ segment๊ฐ€ ๋ช‡ ๊ฐœ์ผ์ง€ ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— OS๋Š” segment table์˜ ๊ธธ์ด๋ฅผ ๋ฏธ๋ฆฌ ์•Œ ์ˆ˜ ์—†๋‹ค.

๊ทธ๋ƒฅ ๋ฏธ๋ฆฌ ํ…Œ์ด๋ธ”์„ ํ• ๋‹นํ•ด๋‘๊ณ  ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ถ€๋ถ„์€ invalid๋กœ ํ‘œ์‹œ๋ฅผ ํ•˜์ž.

segment table ๋‚ด์— ์„ธ๊ทธ๋จผํŠธ์— ๋Œ€ํ•œ ์ ‘๊ทผ ๋ฐฉ์‹๋„ ๋ช…์‹œํ•  ์ˆ˜ ์žˆ๋‹ค.
์ด๊ฒŒ ์™œ ๊ฐ€๋Šฅํ–๋ƒ?
์˜๋ฏธ ๋‹จ์œ„๋กœ ๋ถ„ํ• ์ด ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฌํ•œ ๋””ํ…Œ์ผํ•œ ์ ‘๊ทผ ์ปจํŠธ๋กค์ด ๊ฐ€๋Šฅํ•˜๋‹ค

=> Read only์ธ segment์— Write๋ฅผ ํ•˜๋ ค๊ณ  ํ•˜๋ฉด ๋ง‰์„ ์ˆ˜ ์žˆ๋‹ค.

Sharing์ด ๋งค์šฐ effectiveํ•˜๊ฒŒ ์ผ์–ด๋‚  ์ˆ˜ ์žˆ๋‹ค.
=> Segment ๋‹จ์œ„๋กœ sharing์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.
ํŽ˜์ด์ง€ ๋‹จ์œ„๋กœ ํ•˜๋‚˜ ํ•˜๋‚˜ sharing์„ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ํ†ต์งธ๋กœ sharing์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
=> Segmentation ๊ธฐ๋ฒ•์˜ ๋ง‰๊ฐ•ํ•œ ์žฅ์ 

๊ทธ๋Ÿฐ๋ฐ Segmentation ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ฉด Contiguous Allocation๊ณผ ๋™์ผํ•˜๊ฒŒ dynamic allocation problem์ด ์ƒ๊ธด๋‹ค.
์ด Segment๋ฅผ ๋น„์–ด์žˆ๋Š” ๊ณต๊ฐ„ ์ค‘์— ์–ด๋””์— ์˜ฌ๋ ค์•ผ ํ• ์ง€๋ฅผ ๊ฒฐ์ •ํ•ด์•ผ ํ•œ๋‹ค.
=> Segment ๋ณ„๋กœ ํฌ๊ธฐ๊ฐ€ ๋‹ค ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ.
=> External fragmentation ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ๋ฐ–์— ์—†๋‹ค.
=> Segment ํฌ๊ธฐ์— ๋งž๊ฒŒ ํ• ๋‹นํ•˜๊ธฐ ๋•Œ๋ฌธ์— internal fragmentation์€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค.

๋ฐœ์ƒํ•˜๋Š” fragmentation์˜ ์ข…๋ฅ˜๊ฐ€ Contiguous allocation๊ณผ ๋™์ผํ•˜๊ณ  ํŽ˜์ด์ง• ๊ธฐ๋ฒ•๊ณผ๋Š” ๋ฐ˜๋Œ€๋‹ค.

ํŽ˜์ด์ง• ๊ธฐ๋ฒ•์€ ๋งˆ์ง€๋ง‰ ํŽ˜์ด์ง€์—์„œ internal fragmentation์ด ๋ฐœ์ƒํ•˜์ง€๋งŒ frame๊ณผ ํŽ˜์ด์ง€์˜ ํฌ๊ธฐ๋ฅผ ๋™์ผํ•˜๊ฒŒ ์ž๋ฅด๊ธฐ ๋•Œ๋ฌธ์— external fragmentation์€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜๋‹ค.

 

Segment๋ฅผ ํ†ต์งธ๋กœ Sharing์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

 

Segmentation with paging

Segmentation ๊ธฐ๋ฒ•์—์„œ ๋ฐœ์ƒํ•˜๋Š” external fragmentation ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ํŽ˜์ด์ง• ๊ธฐ๋ฒ•์„ ๋„์ž…ํ•œ๋‹ค.

ํŽ˜์ด์ง• ๊ธฐ๋ฒ•๊ณผ ๋™์ผํ•˜๊ฒŒ DRAM์„ frame ์‚ฌ์ด์ฆˆ๋กœ ๋™์ผํ•˜๊ฒŒ ์ž๋ฅธ๋‹ค.
๊ทธ๋Ÿฐ๋ฐ logical space๋Š” segmentation ๋‹จ์œ„๋กœ ์ž๋ฅธ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ๊ทธ ๊ฐ๊ฐ์˜ segmentation์„ ํŽ˜์ด์ง€ ๋‹จ์œ„๋กœ ์ž๋ฅธ๋‹ค.
=> ํŽ˜์ด์ง• ๊ธฐ๋ฒ•๊ณผ ์—„์—ฐํžˆ ๋‹ค๋ฅด๋‹ค.

์–ด๋Š ๋ฐ์ดํ„ฐ๋Š” ๋ช‡ ๋ฒˆ ์„ธ๊ทธ๋จผํŠธ์— ํฌํ•จ๋œ ๋ช‡ ๋ฒˆ ํŽ˜์ด์ง€์˜ ๋ช‡ ๋ฒˆ offset์— ์žˆ๋‹ค.
์ด๋Ÿฐ ๊ฐœ๋…์ด ์ƒ๊ธด๋‹ค.

๊ทธ๋ƒฅ segmentation ๋ฐฉ์‹์€ ํ•˜๋‚˜์˜ segment๊ฐ€ ์—ฐ์†๋œ ๊ณต๊ฐ„์— ์˜ฌ๋ผ์˜ค๊ธฐ ๋•Œ๋ฌธ์— ์‹œ์ž‘ ์ฃผ์†Œ๋กœ๋ถ€ํ„ฐ offset์„ ๋”ํ•ด์„œ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์—ˆ๋Š”๋ฐ, ์ด์ œ๋Š” ํ•˜๋‚˜์˜ segment๊ฐ€ ๊ณณ๊ณณ์— ํฉ์–ด์ ธ ์žˆ๋‹ค.
=> ์‹œ์ž‘ ์ฃผ์†Œ์— offset์„ ๋”ํ•˜๋Š” ๋ฐฉ์‹์ด ํ†ตํ•˜์ง€ ์•Š๊ฒŒ ๋œ๋‹ค.

์›๋ž˜๋Š” segment table์—์„œ segment ๋ฒˆํ˜ธ๋งŒํผ ๋‚ด๋ ค๊ฐ€๋ณด๋ฉด limit๊ณผ base address๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ๋‹ค๊ณ  ํ–ˆ๋‹ค.
๊ทธ๋Ÿฐ๋ฐ segmentation with paging ๊ธฐ๋ฒ•์—์„œ๋Š” base๊ฐ€ ์•„๋ฌด๋Ÿฐ ์˜๋ฏธ๋„ ์—†๋‹ค. ํ•˜๋‚˜์˜ segment๊ฐ€ ์—ฌ๋Ÿฌ ํŽ˜์ด์ง€๋กœ ๋‚˜๋ˆ ์ ธ์„œ ๋“ค์–ด๊ฐ€๊ธฐ ๋•Œ๋ฌธ์—.
๋Œ€์‹  ์ด segment๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ฐ๊ฐ์˜ ํŽ˜์ด์ง€๊ฐ€ ๋ช‡ ๋ฒˆ frame์— ๋“ค์–ด๊ฐ€๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์ด ํ•„์š”ํ•˜๋‹ค.
=> ์ฆ‰, segment๋งˆ๋‹ค ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์ด ํ•„์š”ํ•˜๋‹ค.
=> base ๋Œ€์‹ ์— segment์˜ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์˜ ์‹œ์ž‘ ์ฃผ์†Œ๊ฐ€ ์ €์žฅ๋œ๋‹ค.

์ด๊ฑธ ์ด์šฉํ•ด์„œ segment์˜ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”๋กœ ๊ฐ€์„œ ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ๋ฅผ ์ด์šฉํ•ด์„œ ํ•ด๋‹น ํŽ˜์ด์ง€๊ฐ€ ์ €์žฅ๋œ ์‹œ์ž‘ ์ฃผ์†Œ๋ฅผ ์ฐพ์•„์„œ offset(displacement)์„ ๋”ํ•ด์„œ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๋Š”๋‹ค.

 

์ตœ์ข…์ ์œผ๋กœ๋Š” ํŽ˜์ด์ง€ ๋‹จ์œ„๋กœ ์ €์žฅ๋˜๊ธฐ ๋•Œ๋ฌธ์— external fragmentation์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค.
๋Œ€์‹  internal fragmentation์ด ๋ฐœ์ƒํ•˜๊ฒŒ ๋œ๋‹ค. (๋งˆ์ง€๋ง‰ ํŽ˜์ด์ง€์—๋งŒ)

๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ ํšจ์œจ ์ธก๋ฉด์—์„œ๋Š” ํŽ˜์ด์ง• ๊ธฐ๋ฒ•๊ณผ ๋™์ผํ•˜์ง€๋งŒ segment๋ผ๋Š” ๊ฐœ๋…์€ ์œ ์ง€๋œ๋‹ค.
=> ์˜๋ฏธ ๋‹จ์œ„๋Š” ์œ ์ง€๋˜์ง€๋งŒ ๊ณต๊ฐ„ ํšจ์œจ ์ธก๋ฉด์—์„œ๋Š” ํŽ˜์ด์ง• ๊ธฐ๋ฒ•๊ณผ ๋™์ผ

 

๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๋ณ€ํ™˜์—๋Š” TLB๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค๊ณ  ํ–ˆ๋‹ค. TLB๊นŒ์ง€ ์ ์šฉ๋œ Segmentation with paging์˜ ๊ณผ์ •์€ ์–ด๋–จ๊นŒ

์„ธ๊ทธ๋จผํŠธ ๋ฒˆํ˜ธ์™€ ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ๋ฅผ ์‚ฌ์šฉํ•ด์„œ TLB look up์„ ํ•˜๊ฒŒ ๋˜๊ณ , TLB hit๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ฐพ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋œ ์„ธ๊ทธ๋จผํŠธ์˜ ํŽ˜์ด์ง€์˜ ์‹œ์ž‘ ์ฃผ์†Œ๊ฐ€ ๋ณ€ํ™˜ ๊ฒฐ๊ณผ๋กœ ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค.

=> ๊ตณ์ด segment table์—์„œ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ์‹œ์ž‘ ์ฃผ์†Œ๋ฅผ ์ฐพ์•„์„œ ํŽ˜์ด์ง€์˜ ์‹œ์ž‘ ์ฃผ์†Œ๋ฅผ ์ฐพ์„ ํ•„์š”๊ฐ€ ์—†๊ฒŒ ๋œ๋‹ค.

 

์š”์ฆ˜ ๋Œ€๋ถ€๋ถ„์€ Segmentation with paging ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, OS๋งˆ๋‹ค ๊ตฌํ˜„์˜ ๋ฐฉ์‹์€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค.
=> ๊ธฐ๋ณธ์ ์ธ ํ‹€์€ ์œ„์™€ ๊ฐ™๋‹ค.

 

โ€ป ๋ณธ ๋‚ด์šฉ์€ ํ•œ์–‘๋Œ€ํ•™๊ต ๊ฐ•์ˆ˜์šฉ ๊ต์ˆ˜๋‹˜์˜ ๊ฐ•์˜๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

728x90

'HYU > ์šด์˜์ฒด์ œ(OS)' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

7. Deadlocks  (0) 2023.05.18
10. Virtual Memory (1)  (1) 2023.05.12
8. Memory Management (1)  (0) 2023.05.02
6. Process Syncronization (2)  (0) 2023.04.07
5. Process Synchronization (1)  (0) 2023.03.30