๐Ÿ‘ฉโ€๐Ÿ’ป OS - Memory Management (2) [Paging]


3๏ธโƒฃ NonContiguous Memory Allocation - Paging, Segment


์•ž์„œ ๋ดค๋˜ Contiguous Allocation์€ ์™ธ๋ถ€ ๋‹จํŽธํ™” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ NonContiguous Memory Allocation ๋ฐฉ๋ฒ•๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ ์ค‘ Paging๊ณผ Segment๋ฅผ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.


Paging


  • Paging ์€ NonContiguous Allocation ๋ฐฉ์‹์ด๋‹ค.
  • ๊ณ ์ •๋œ ํฌ๊ธฐ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋Š” Frame, ํ”„๋กœ์„ธ์Šค๋Š” Page๋กœ ๋ถ„ํ• ํ•˜์—ฌ ๊ด€๋ฆฌํ•œ๋‹ค.
  • ํ•œ ํ”„๋กœ์ƒˆ์Šค๋Š” ์—ฌ๋Ÿฌ Page๋กœ ๋‚˜๋‰˜๊ณ  main memory์—์„œ ํ•„์š”ํ•œ page๋ฅผ ์ˆœ์„œ ๊ด€๊ณ„์—†์ด Frame์— mappingํ•ด์ค€๋‹ค.

๊ทธ๋ฆผ์œผ๋กœ ํ™•์ธํ•ด๋ณด์ž

paging


Paging ์žฅ์  & ๋‹จ์ 


์žฅ์ 


  • Physical memory๋ฅผ frame ๋‹จ์œ„๋กœ ๋ถ„ํ• ํ•ด ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— External Fragment ๋ฐœ์ƒํ•  ์ผ์ด ์—†๋‹ค.
  • ํ• ๋‹น/ํ•ด์ œ ๊ฐ€ ๋น ๋ฅด๋‹ค
  • Shared Page๋ฅผ ํ†ตํ•ด ์ž์›์„ ์‰ฝ๊ฒŒ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋‹ค ( pure code ๋ผ๋ฉด ์‰ฝ๊ฒŒ ๊ฐ€๋Šฅ, swap out ์‹œ ๋ณ€๊ฒฝ๋˜๋ฉด ์ด๋ฅผ ๊ณ ๋ คํ•˜๊ณ  swap outํ•ด์•ผํ•จ )

๋‹จ์ 


  • ๊ฒฐ๊ตญ process์˜ page ์ž์ฒด๊ฐ€ internal fragment ๋ฐœ์ƒํ•œ๋‹ค๋ฉด ์—ฌ์ „ํžˆ ๋ฉ”๋ชจ๋ฆฌ์˜ frame๋„ internal fragment๋ฐœ์ƒํ•œ๋‹ค.
  • Page Table ์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ถ”๊ฐ€๋กœ ํ•„์š”ํ•˜๋‹ค
  • Page Table ์ ‘๊ทผ + ์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ = ์ด ๋‘ ๋ฒˆ์˜ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ์œผ๋กœ Overhead ๋ฐœ์ƒํ•œ๋‹ค.

โšก์ฃผ์˜


  • Internal Fragment ์—†์• ๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ๋ ๊นŒ??
    • Page ํฌ๊ธฐ๋ฅผ ์ž‘๊ฒŒ ํ•œ๋‹ค๋ฉด Internal Fragment๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.
    • ๐Ÿ”ฅ ํ•˜์ง€๋งŒ, ์˜คํžˆ๋ ค Page Table์ด ์ปค์ ธ์„œ OverHead๊ฐ€ ๋” ์ปค์ง„๋‹ค
  • ์ผ๋ฐ˜์ ์œผ๋กœ Page ํฌ๊ธฐ๋Š” 4KB ~ 8KB ๊ฐ€ ์ ๋‹นํ•˜๋‹ค๊ณ  ์•Œ๋ ค์ ธ ์žˆ๋‹ค.



Page Address Translation


  • page number : frame number์™€ mapping
  • page offset : frame ๋‚ด์—์„œ ๋ช‡ ๋ฒˆ์งธ ์ฃผ์†Œ

mmu

์ถœ์ฒ˜https://steady-coding.tistory.com/524

page number, page offset ์„ค์ • ๋ฐฉ๋ฒ•


  • Logical Address Space ๊ฐ€ 2m2^m byte ๋ผ๊ณ  ํ•œ๋‹ค๋ฉด?
  • Frame, Page์˜ ํฌ๊ธฐ๋Š” 2n2^n byte๋ผ๊ณ  ํ•œ๋‹ค๋ฉด??

๐Ÿ’ก offset = log(page์˜ํฌ๊ธฐ)log(page์˜ ํฌ๊ธฐ) = n

๐Ÿ’ก page no = m - n


Address Translation


address-translation


  • Page Number๋Š” Page Table์—์„œ Frame Number์™€ mapping ๋˜๋Š” ์—ญํ• ์ด๋‹ค.
  • Page Offset์€ ์‹ค์ œ ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ์˜ Frame์—์„œ ๋ช‡ ๋ฒˆ์งธ์— ์žˆ๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

page table์€??


  • page table์€ ํ•ญ์ƒ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์— ์ƒ์ฃผํ•˜๊ณ  ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋Š” page table ์กด์žฌํ•œ๋‹ค.
  • ๊ทธ๋ ‡๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ page table์€ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์„๊นŒ?? โ†’ Hardware์˜ support๊ฐ€ ์žˆ๋‹ค!!
    • PTBR(Page-Table-Base-Register) : PT ์‹œ์ž‘์œ„์น˜
    • PTLR(Page-Table-Limit-Register) : PT์˜ ๊ธธ์ด

Quiz


  • cpu์—์„œ logical address = 9 ์ด๋‹ค. ์ด๋ฅผ ์˜๋ฏธํ•˜๋Š” ๋ฐ”๋Š”?

quiz

์ •๋‹ต
page์˜ ํฌ๊ธฐ๋Š” $2^2$ โ†’ ๋”ฐ๋ผ์„œ, offset bit์˜ ํฌ๊ธฐ๋Š” 2bit
์ž๋™์ ์œผ๋กœ page no bit์˜ ํฌ๊ธฐ๋Š” 2bit
๋”ฐ๋ผ์„œ, page no = 2 offset = 1
page table ์—์„œ page no(2) ์™€ mapping๋˜๋Š” frame no = 1
Physical memory์˜ 1๋ฒˆ frame์€ 4byte๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” frame์ด๋‹ค.

4 byte๋กœ๋ถ€ํ„ฐ 1๋งŒํผ ๊ฐ„ 5byte ์œ„์น˜์— j ๊ฐ€ ์œ„์น˜ํ•˜๊ฒŒ ๋œ๋‹ค!!


๐Ÿ›ก๏ธ Page Protection


  • ์•ž์„œ Memory Protection์œผ๋กœ Limit Register๋ฅผ ์ด์šฉํ•œ๋‹ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์ด Contiguous ํ•˜๋‹ค๋ฉด Limit Register๋งŒ์œผ๋กœ๋„ ์ถฉ๋ถ„ํ•˜์ง€๋งŒ,
  • Paging์€ Protection์„ ์œ„ํ•ด ์ถ”๊ฐ€์ ์ธ ์ž‘์—…๋“ค์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

Protection Bit


  • main memory๋ฅผ NonContiguous ํ•˜๊ฒŒ ๊ด€๋ฆฌ๋ฅผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฑด๋“ค์—ฌ์„œ๋Š” ์•ˆ๋  OS์™€ ๊ฐ™์€ ์˜์—ญ์„ ์“ฐ๊ธฐ ๊ถŒํ•œ์œผ๋กœ ์ ‘๊ทผํ•ด์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค.
  • ๋”ฐ๋ผ์„œ page table์— ์ฝ๊ธฐ/์“ฐ๊ธฐ ๊ถŒํ•œ์— ํ•ด๋‹นํ•˜๋Š” Permission bit๋ฅผ ์ถ”๊ฐ€ํ•ด ํ”„๋ ˆ์ž„์„ ๋ณดํ˜ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Valid-Invalid Bit


  • ์œ ํšจํ•˜์ง€ ์•Š๋Š” ํŽ˜์ด์ง€๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋„๋ก valid-invalid bit ๋ฅผ ํ†ตํ•ด ๊ฒ€์‚ฌํ•ด์ค๋‹ˆ๋‹ค.

  • invalid : ํ•ด๋‹น ํŽ˜์ด์ง€๋Š” ํ”„๋กœ์„ธ์Šค์˜ ๋…ผ๋ฆฌ ์ฃผ์†Œ ๊ณต๊ฐ„์— ํ•ด๋‹น๋˜์ง€ ์•Š์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

  • 14 bit ์ฃผ์†Œ ๊ณต๊ฐ„์„ ๊ฐ–๋Š” ์‹œ์Šคํ…œ & Page size = 2KB ๋ผ๋ฉด?

protection

  • logical address space๋ฅผ ๋ณด๋ฉด page5 ๊นŒ์ง€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.
  • ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— page table์˜ page no 6, 7 ๋Š” ๋…ผ๋ฆฌ ๊ณต๊ฐ„์— ์กด์žฌํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—
  • invalid๋กœ ์ฒดํฌ๋œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โšก ์ถ”๊ฐ€๋กœ, Page 5๋Š” Page Size = 2KB = 2000 byte


๋”ฐ๋ผ์„œ, Page 5 ๋Š” ์‹œ์ž‘ ์ฃผ์†Œ๊ฐ€ 10469 ์ด๊ณ , Limit ๋ฅผ ์ด์šฉํ•ด 12287 ๊นŒ์ง€๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค




TLB(Translation Look-aside Buffer)


์•ž์„œ Page Table์€ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์— ์ƒ์ฃผํ•˜๊ธฐ ๋•Œ๋ฌธ์— 2๋ฒˆ์˜ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ์„ ํ•„์š”๋กœ ํ•˜๋Š” Overhead๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ”ฅ ์ด๋ฅผ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด TLB๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.


TLB๋ž€?

  • special fast-lookup hardware cache
  • ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๋ณ€ํ™˜์„ ์œ„ํ•œ ๋ณ„๋„์˜ ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ
  • Page Table์—์„œ ์ž์ฃผ ์ฐธ์กฐ๋˜๋Š” ์ผ๋ถ€ ์—”ํŠธ๋ฆฌ๋ฅผ caching ํ•œ๋‹ค

  • ๊ธฐ๋ณธ ๊ตฌ์กฐ๋Š” page table๊ณผ ๋˜‘๊ฐ™๋‹ค โ‡’ page no, frame no ๊ตฌ์กฐ์ด๋‹ค.

tlb

  • TLB๋Š” Parallel Search ๋ฅผ ์ˆ˜ํ–‰ํ•ด ๋น ๋ฅด๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

TLB ํฌํ•จ๋œ Address Translation ํ๋ฆ„


tlb-translation

1๏ธโƒฃ TLB ์—์„œ ๋น ๋ฅด๊ฒŒ mapping ๋˜๋Š” frame์ด ์žˆ๋Š”์ง€ ํƒ์ƒ‰

2๏ธโƒฃ - 1๏ธโƒฃ TLB Hit ( TLB ๋‚ด์—์„œ ํƒ์ƒ‰ ์„ฑ๊ณต ๊ฒฝ์šฐ ) ๋ฐ”๋กœ frame์— ์ ‘๊ทผ ๊ฐ€๋Šฅ

2๏ธโƒฃ - 2๏ธโƒฃ TLB Miss ( TLB ๋‚ด์— ์—†์„ ๊ฒฝ์šฐ ) page table์—์„œ frame ํƒ์ƒ‰

โšก TLB ์ ์šฉํ•œ Memory ์ ‘๊ทผ ํšŸ์ˆ˜์˜ ๊ธฐ๋Œ“๊ฐ’


  • TLB Hit Ratio : a TLB search time : e(์ž…์‹ค๋ก  : ๋งค์šฐ ์ž‘์€ ๊ฐ’)
  • EAT(EffectiveAccessTime)=(1+e)โˆ—a+(2+e)(1โˆ’a)=2+eโˆ’aEAT(Effective Access Time) = (1+e) * a + (2+e)(1-a) = 2 + e - a

์ผ๋ฐ˜์ ์œผ๋กœ e๋Š” ๋งค์šฐ ์งง์€ ์‹œ๊ฐ„์ด๊ธฐ ๋•Œ๋ฌธ์— EAT๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด์„  Hit Ratio ๋ฅผ ๋Š˜๋ฆฌ๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค


โšกASID


๋”ฐ๋ผ์„œ ์ „์—ญ์— ์žˆ๋Š” TLB๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ตฌ๋ถ„ํ•  ์บ์‹œ ๋ฐ์ดํ„ฐ๋„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผํ•œ๋‹ค.

์ด๋Ÿฌํ•œ ์ด์œ ๋กœ TLB์—๋Š” ๋‹จ์ˆœํžˆ page no๋งŒ์ด ์•„๋‹Œ asid๋ฅผ ๊ฐ™์ด ์ €์žฅํ•˜๊ฒŒ ๋œ๋‹ค.

  • asid ๋Š” pid์™€ ์œ ์‚ฌํ•œ๋ฐ 8bit๋กœ ์ค„์–ด๋“  id์ด๊ณ , ๋™์ผํ•œ asid๋Š” ๊ฐ™์€ TLB๋ฅผ ๊ณต์œ ํ•ด overhead๋ฅผ ์ค„์ธ๋‹ค.

Page Structure


32 bit ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๊ฐ€์ •ํ•˜์— 232=4GB2^{32} = 4GB ์ฃผ์†Œ ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ด ๋•Œ page์˜ ํฌ๊ธฐ๊ฐ€ 4KB ๋ผ๋ฉด 4GB/4KM=1M4GB/4KM = 1M ์•ฝ 100๋งŒ ๊ฐœ์˜ page table entry๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ entry๋Š” 4Byte์˜ ๊ณต๊ฐ„์ด ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์—

์ด 4MB ๋งŒํผ์˜ page table๊ณต๊ฐ„์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ’ฃ page table์€ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ฐ€์ ธ์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค ๋งˆ๋‹ค 4MB ๋งŒํผ ๊ณต๊ฐ„์„ ๋‚ญ๋น„ํ•˜๋Š” ๊ฒƒ์€ ๋น„ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค.

page table์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•ด์•ผํ•  ์ด์œ ์ž…๋‹ˆ๋‹ค.

  • Hierarchical Paging
  • Hashed page table
  • Inverted page table

Hierarchical Paging - ๊ณ„์ธต์  ๊ตฌ์กฐ [ Multi-level paging ]


  • ๋…ผ๋ฆฌ ์ฃผ์†Œ ๊ณต๊ฐ„์„ ์—ฌ๋Ÿฌ ๋‹จ๊ณ„์˜ page table๋กœ ๋ถ„ํ• ํ•˜์—ฌ page์˜ page table์„ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค.
  • ๊ฐ„๋‹จํ•œ ์˜ˆ๋กœ Two-Level Paging์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

two-level-paging

  • 32 bit logical address space
  • page size = 4KB = 2122^{12}
  • offset = 12 bit
  • page no = 20 bit

page no์— ํ•ด๋‹นํ•˜๋Š” 20 bit ๋ฅผ ์ด์šฉํ•ด์„œ inner page table์„ ๋‹ค์‹œ ๋งŒ๋“ค๊ฒŒ ๋œ๋‹ค.

  • inner page no = 10 bit
  • inner page offset = 10 bit ๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค.

two-level-paging

64bit์—์„œ๋Š”?? 3-Level Paging์—์„œ๋Š”??

64 bit


64bit Logical Address Space & Page Size = 4KB
outer page offset = 12 bit
outer page no = 52 bit โ‡’ inner page no + inner page offset์œผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.
๋งˆ์ฐฌ๊ฐ€์ง€๋กœ inner page offset = 10 bit ๋ผ๋ฉด 42bit๋Š” inner page no๋กœ ์‚ฌ์šฉ๋œ๋‹ค.

64bit-two-level

64bit์—์„œ์˜ 3-Level Paging์€


64bit-three-level


๐Ÿ’ก Multi-Level์„ ๊นŠ๊ฒŒ ํ• ์ˆ˜๋ก page table์ด ์ž‘์•„์ ธ์„œ TLB์— ๋ชจ๋‘ ๋‹ด์„ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

ํ•˜์ง€๋งŒ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์—ฌ๋Ÿฌ๋ฒˆ access๊ฐ€ ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— overhead๋ฅผ ๊ณ ๋ คํ•ด์•ผํ•œ๋‹ค.



Hashed Page Table

  • Hashed Page Table์€ Hash ํ˜• page table์„ ๊ฐ–๋Š”๋‹ค
  • logical address์˜ page no๊ฐ’์„ ์ด์šฉํ•ด ๋‚˜์˜จ hash function ๊ฐ’์œผ๋กœ mapping๊ฐ’์„ ์ฐพ์•„๊ฐ‘๋‹ˆ๋‹ค
  • hash page table์˜ ๊ฐ entry๋Š” linked list๋ฅผ ๊ฐ€์ ธ collision์„ ์ถฉ๋Œ์„ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค

๊ทธ๋ฆผ

hashed-page-table


โšกHashed Page Table์„ ๋งŒ๋“ค๊ณ  hash function์œผ๋กœ access ํšŸ์ˆ˜๋ฅผ ๋งŽ์ด ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.


64bit์—์„œ๋Š” ํ•ด์‹œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์•ฝ๊ฐ„ ๋ณ€๊ฒฝํ•˜์—ฌ ํด๋Ÿฌ์Šคํ„ฐํ˜• ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•œ๋‹ค



Inverted Page Table


  • ์—ญ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”
  • ๊ฐ ํ”„๋กœ์„ธ์Šค๋Š” ๋ชจ๋‘ page table์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผํ•œ๋‹ค
  • ์ด๋กœ ์ธํ•ด ์‹ค์ œ๋กœ๋Š” ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผ์ค‘์ด๋ผ๋„ ๋ชจ๋‘ page table์„ ๊ฐ–๊ณ  ์žˆ์–ด์•ผํ•˜๋Š” ๋ฌธ์ œ ๋ฐœ์ƒ โ†’ page table ํฌ๊ธฐ ์ฆ๊ฐ€ โ†’ ๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„

์˜๋ฏธ ๊ทธ๋Œ€๋กœ ์—ญ์œผ๋กœ ํ”„๋กœ์„ธ์Šค ๋‹น ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์ด ์•„๋‹Œ main memory ์ž…์žฅ์—์„œ ๋งŒ๋“œ๋Š” page table!!


  • Frame์„ ๊ธฐ์ค€์œผ๋กœ ํ…Œ์ด๋ธ”์€ ๊ฐ ํ”„๋ ˆ์ž„์€ ์–ด๋–ค ํ”„๋กœ์„ธ์Šค์™€ ๋Œ€์‘๋˜๋Š”์ง€ ์ •๋ณด๋ฅผ ๋‹ด๋Š”๋‹ค
  • ํ”„๋ ˆ์ž„์„ ๊ธฐ์ค€์œผ๋กœ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋–ค ํ”„๋กœ์„ธ์Šค์™€ ๋Œ€์‘๋˜๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์œผ๋ ค๋ฉด pid๋ฅผ ํ•„์š”๋กœ ํ•ฉ๋‹ˆ๋‹ค

inverted-page-table

physical memory๋ฅผ ๊ธฐ์ค€์œผ๋กœ page table์„ ๋งŒ๋“ค๊ธฐ ๋•Œ๋ฌธ์— ํ”„๋กœ์„ธ์Šค ๋‹น ํ•˜๋‚˜์”ฉ ๊ฐ–๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์ „์ฒด์ ์œผ๋กœ page table์„ ํ•˜๋‚˜๋งŒ ๊ฐ–๊ณ  ์žˆ์–ด๋„ ๋˜๋Š” ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹จ์ 

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



๐Ÿ’ฅ ๋‹ค์Œ๋ฒˆ์— ๊ณ„์†


โœจ ์ž˜๋ชป๋œ ๋ถ€๋ถ„์€ ๋งŽ์€ ์กฐ์–ธ ๋ฐ ์ง€์  ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค. - JunHyxxn