• Mindscape ๐Ÿ”ฅ
    • Playlist ๐ŸŽง
    • Vim ์‚ฌ์šฉ ๋งค๋‰ด์–ผ
  • ๐Ÿง  Algorithm

    • Python ์‹œ๊ฐ„ ์ดˆ๊ณผ ๋ฐฉ์ง€๋ฅผ ์œ„ํ•œ ํŒ
    • 1966๋ฒˆ: ํ”„๋ฆฐํ„ฐ ํ
    • 1018๋ฒˆ: ์ฒด์ŠคํŒ ๋‹ค์‹œ ์น ํ•˜๊ธฐ
  • ๐Ÿ’ฐ Finance

    • ๋น„ํŠธ์ฝ”์ธ(Bitcoin)
  • ๐Ÿ›๏ธ Humanities

    • Nordvik, Russia
    • North Sentinel Island
    • ๋กฑ๊ณ ๋กฑ๊ณ (Rongorongo)
  • ๐Ÿ‹๏ธ Wellness

    • ๐Ÿซ’ ์—‘์ŠคํŠธ๋ผ ๋ฒ„์ง„ ์˜ฌ๋ฆฌ๋ธŒ์œ  (Extra Virgin Olive Oil)
    • ์ฐจ์ „์žํ”ผ(Psyllium Husk)
  • ๐Ÿ–ฅ๏ธ Computer Graphics

    • 8 - Lighting
    • 9 - Orientation & Rotation
    • 10 - Character Animation
    • 11 - Curves
    • 12 - More Lighting, Texture
  • ๐Ÿ—‚๏ธ Operating System

    • 7. Deadlocks
    • 8. Memory Management(1)
    • 9. Memory Management(2)
    • 10. Virtual Memory(1)
    • 11. Virtual Memory(2)
    • 12. File System
    • 13. Mass Storage Management
    • 14. I/O Systems
  • ๐Ÿ”ฃ Programming Language Theory

    • 13. FPL(1)

9. Memory Management(2)

Structure of the Page Table

  • Hierarchical Paging

    • ๋…ผ๋ฆฌ ์ฃผ์†Œ ๊ณต๊ฐ„์„ ์—ฌ๋Ÿฌ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”๋กœ ๋ถ„ํ• 
  • Hashed Page Tables

  • Inverted Page Tables

Two-Level Page-Table Scheme (Hierarchical Paging)

  • ๋ฌธ์ œ: ํ”„๋กœ๊ทธ๋žจ์ด ํฐ ์ฃผ์†Œ ๊ณต๊ฐ„์„ ๊ฐ€์ง

    • 32๋น„ํŠธ ์ฃผ์†Œ์™€ 4KB (2122^{12}212) ํŽ˜์ด์ง€ ํฌ๊ธฐ์ผ ๋•Œ (m = 32, n = 12)
    • mโˆ’n=20m - n = 20mโˆ’n=20, ์ฆ‰ 2202^{20}220๊ฐœ์˜ ๋…ผ๋ฆฌ ํŽ˜์ด์ง€
    • 2202^{20}220๊ฐœ์˜ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ํ•ญ๋ชฉ
    • ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ํฌ๊ธฐ = 2222^{22}222 ๋ฐ”์ดํŠธ (4MB, ๊ฐ ํ•ญ๋ชฉ์ด 4๋ฐ”์ดํŠธ์ผ ๊ฒฝ์šฐ)
    • 4MB ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ์ €์žฅํ•˜๋ ค๋ฉด, ํ”„๋กœ์„ธ์Šค๋‹น 210=1K2^{10} = 1K210=1K๊ฐœ์˜ ํŽ˜์ด์ง€ ํ”„๋ ˆ์ž„ ํ•„์š”
  • ํ•ด๊ฒฐ:

    • ์ „์ฒด ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ๋””์Šคํฌ์— ์ €์žฅ
    • ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ์ž์ฒด๋„ ํŽ˜์ด์ง€ ๋‹จ์œ„๋กœ ์š”์ฒญ ์‹œ ๋กœ๋”ฉ โ†’ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ์œ„ํ•œ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ํ•„์š”

Two-Level Page-Table Scheme

      outer-page
        table
          โ†“
     +----------+       +----------+       +----------+
     |    1     | ----> |   500    |       |   page   | โ†’ ๋ฉ”๋ชจ๋ฆฌ ๋‚ด ์‹ค์ œ ํŽ˜์ด์ง€
     |    2     | ----> |   100    | โ†’     |   100    |
     |    3     |       |   300    |       |   page   |
     |   ...    |       |   600    |       |   table  |
     +----------+       +----------+       +----------+

(์–ด๋””์— ๋…ผ๋ฆฌ ํŽ˜์ด์ง€์— ๋Œ€ํ•œ ๋ฌผ๋ฆฌ ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ๋ฅผ ์ €์žฅํ•˜๋Š” ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ํ”„๋ ˆ์ž„์ด ์žˆ๋Š”๊ฐ€?)
(์–ด๋””์— ๋…ผ๋ฆฌ ํŽ˜์ด์ง€์— ํ•ด๋‹นํ•˜๋Š” ์‹ค์ œ ๋ฌผ๋ฆฌ ํŽ˜์ด์ง€๊ฐ€ ์žˆ๋Š”๊ฐ€?)

Two-Level Paging Example

  • ๋…ผ๋ฆฌ ์ฃผ์†Œ (32๋น„ํŠธ ๋จธ์‹ , 4KB ํŽ˜์ด์ง€ ํฌ๊ธฐ ๊ธฐ์ค€)๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚˜๋‰จ:

    • ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ (20๋น„ํŠธ)
    • ํŽ˜์ด์ง€ ์˜คํ”„์…‹ (12๋น„ํŠธ)
  • ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ๋Š” ๋‘ ๋ถ€๋ถ„์œผ๋กœ ๋‹ค์‹œ ๋‚˜๋‰จ:

    • 10๋น„ํŠธ ์™ธ๋ถ€ ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ: outer-page table์— ์ ‘๊ทผ
    • 10๋น„ํŠธ ๋‚ด๋ถ€ ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ: page table ๋‚ด์— ์ ‘๊ทผ
  • ์ฆ‰, ๋…ผ๋ฆฌ ์ฃผ์†Œ ๊ตฌ์„ฑ:

page number                page offset
   pโ‚       pโ‚‚                 d
   10       10                12
  • ์—ฌ๊ธฐ์„œ:
    • pโ‚: outer-page table ๋‚ด ์ธ๋ฑ์Šค
    • pโ‚‚: ๋‚ด๋ถ€ page table์—์„œ์˜ displacement

Address-Translation Scheme

  • 2๋‹จ๊ณ„ 32๋น„ํŠธ ํŽ˜์ด์ง• ๊ตฌ์กฐ์˜ ์ฃผ์†Œ ๋ณ€ํ™˜ ๋ฐฉ์‹:
logical address:   pโ‚ | pโ‚‚ | d
                       โ†“
                outer-page table
                       โ†“
                 page of page table
                       โ†“
                       d

<Forward-mapped page table>

Multilevel Paging and Performance

  • ๋” ํฐ ์ฃผ์†Œ ๊ณต๊ฐ„์˜ ๊ฒฝ์šฐ,

    • ์„ธ ๋ฒˆ์งธ ํŽ˜์ด์ง€๋Š” (B-ํŠธ๋ฆฌ์ฒ˜๋Ÿผ) ๋ฐ์ดํ„ฐ ๋ธ”๋ก์ด ์•„๋‹Œ, ๋˜ ๋‹ค๋ฅธ ๋ ˆ๋ฒจ์˜ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”
    • ๊ฐ ๋ ˆ๋ฒจ์ด ๋ฉ”๋ชจ๋ฆฌ์— ๋ณ„๋„๋กœ ์ €์žฅ๋˜๋ฏ€๋กœ, ๋…ผ๋ฆฌ ์ฃผ์†Œ๋ฅผ ์‹ค์ œ ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ•  ๋•Œ ์ตœ๋Œ€ 4ํšŒ์˜ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ์ด ํ•„์š”ํ•จ
  • ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ์‹œ๊ฐ„์ด 5๋ฐฐ๋กœ ์ฆ๊ฐ€ํ•˜๋”๋ผ๋„, TLB๋ฅผ ํ†ตํ•ด ์„ฑ๋Šฅ์€ ํ•ฉ๋ฆฌ์ ์ธ ์ˆ˜์ค€์œผ๋กœ ์œ ์ง€๋จ

    • 4๋‹จ๊ณ„ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์—์„œ๋„ TLB ํžˆํŠธ์œจ์ด 98%์ผ ๊ฒฝ์šฐ,

      EAT=0.98ร—120+0.02ร—520=128ย nanosecondsEAT = 0.98 \times 120 + 0.02 \times 520 = 128~\text{nanoseconds} EAT=0.98ร—120+0.02ร—520=128ย nanoseconds

      (๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ์‹œ๊ฐ„์ด 100ns์ผ ๋•Œ, TLB ์ ‘๊ทผ ์‹œ๊ฐ„ = 20ns)
  • ํ•˜์ง€๋งŒ 64๋น„ํŠธ ์ฃผ์†Œ ์ฒด๊ณ„์—์„œ๋Š” 6๋‹จ๊ณ„ ํŽ˜์ด์ง•์ด ์š”๊ตฌ๋จ

    • ํ˜„์‹ค์ ์œผ๋กœ ๋ถ€์ ์ ˆํ•จ
    • ํ˜„๋Œ€ 64๋น„ํŠธ ์šด์˜์ฒด์ œ์—์„œ๋Š” 48๋น„ํŠธ ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ, ๋ณดํ†ต 4๋‹จ๊ณ„ ํŽ˜์ด์ง• ์‚ฌ์šฉ

Hashed Page Tables

  • ์ฃผ์†Œ ๊ณต๊ฐ„์ด 32๋น„ํŠธ๋ณด๋‹ค ํด ๊ฒฝ์šฐ์— ์ ํ•ฉ
  • ๊ฐ€์ƒ ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ๋ฅผ ํ•ด์‹œ ํ•จ์ˆ˜๋กœ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์— ๋งคํ•‘
    • ์ด ํ…Œ์ด๋ธ”์€ ๋™์ผ ํ•ด์‹œ ์œ„์น˜์— ๋Œ€์‘ํ•˜๋Š” ํ•ญ๋ชฉ๋“ค์˜ ์ฒด์ธ์œผ๋กœ ๊ตฌ์„ฑ๋จ
    • ์ฒด์ธ ๋‚ด๋ถ€์—์„œ ๊ฐ€์ƒ ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ์™€ ์ผ์น˜ํ•˜๋Š” ํ•ญ๋ชฉ์„ ์ฐพ์œผ๋ฉด ํ•ด๋‹น ๋ฌผ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๋ฐ˜ํ™˜
logical address (P | d)
   โ†“
[hash function]
   โ†“
[hash table] โ†’ [p1โ†’p2โ†’...] โ†’ ๋น„๊ต โ†’ ์ผ์น˜ โ†’ [physical address]

Inverted Page Table

  • ๋ฌธ์ œ: ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์ด ๋„ˆ๋ฌด ํผ

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

    • ๊ฐ ํ•ญ๋ชฉ์€ ํ”„๋กœ์„ธ์Šค ID ํฌํ•จ
    • ํ•˜๋‚˜์˜ ์‹œ์Šคํ…œ ์ „์—ญ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ์‚ฌ์šฉ
    • ํ•„์š”ํ•œ ํ•ญ๋ชฉ ์ˆ˜๋Š” ๋ฌผ๋ฆฌ ํ”„๋ ˆ์ž„ ์ˆ˜์™€ ๋™์ผ
    • ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ณต์œ ํ•˜๋Š” ๊ตฌ์กฐ

Inverted Page Table Architecture

  • ๋‹จ์ :

    • ํ…Œ์ด๋ธ” ์ „์ฒด๋ฅผ ๊ฒ€์ƒ‰ํ•ด์•ผ ํ•จ
    • ํŽ˜์ด์ง€ ๊ณต์œ  ๋ถˆ๊ฐ€๋Šฅ
  • ํ•ด๊ฒฐ์ฑ…:

    • ํ•ด์‹œ ํ…Œ์ด๋ธ”์„ ์‚ฌ์šฉํ•ด ๊ฒ€์ƒ‰ ๋ฒ”์œ„ ์ œํ•œ (ํ•œ ๋ฒˆ์˜ ๋ฉ”๋ชจ๋ฆฌ ์กฐํšŒ)
    • TLB์™€ ๋ณ‘ํ–‰ ์‚ฌ์šฉํ•˜์—ฌ ์†๋„ ํ–ฅ์ƒ
CPU
 โ†“
[logical address] โ†’ [search]
                         โ†“
                  +------โ†’ [page table]
                  |             โ†“
[hash table] -----+         [physical address]

Segmentation

  • ์‚ฌ์šฉ์ž์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ด€์ ์„ ์ง€์›ํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๊ธฐ๋ฒ•
  • ํ”„๋กœ๊ทธ๋žจ์€ ๋‹ค์–‘ํ•œ ๊ธธ์ด์˜ ์„ธ๊ทธ๋จผํŠธ๋“ค๋กœ ๊ตฌ์„ฑ๋จ
  • ์„ธ๊ทธ๋จผํŠธ๋Š” ๋…ผ๋ฆฌ์  ๋‹จ์œ„ (์˜ˆ: main(), ํ•จ์ˆ˜, ์ „์—ญ ๋ณ€์ˆ˜, ์Šคํƒ, ์‹ฌ๋ณผ ํ…Œ์ด๋ธ”, ๋ฐฐ์—ด ๋“ฑ)
User's view of a program:

+--------------+
| subroutine   |
+--------------+
| stack        |
+--------------+
| symbol table |
+--------------+
| main program |
+--------------+

Segmentation Architecture

  • ๋…ผ๋ฆฌ ์ฃผ์†Œ ๊ตฌ์กฐ: <segment-number, offset>

  • ์„ธ๊ทธ๋จผํŠธ ํ…Œ์ด๋ธ”

    • ๋…ผ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๋ฌผ๋ฆฌ ์ฃผ์†Œ๋กœ ๋งคํ•‘
    • ๊ฐ ํ•ญ๋ชฉ์€ ๋‹ค์Œ ํฌํ•จ:
      • base: ์„ธ๊ทธ๋จผํŠธ๊ฐ€ ์œ„์น˜ํ•œ ์‹œ์ž‘ ๋ฌผ๋ฆฌ ์ฃผ์†Œ
      • limit: ์„ธ๊ทธ๋จผํŠธ์˜ ๊ธธ์ด
  • STBR (Segment-table base register):

    • ์„ธ๊ทธ๋จผํŠธ ํ…Œ์ด๋ธ”์˜ ๋ฌผ๋ฆฌ ์œ„์น˜๋ฅผ ๊ฐ€๋ฆฌํ‚ด
  • STLR (Segment-table length register):

    • ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์„ธ๊ทธ๋จผํŠธ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋ƒ„
    • ์œ ํšจํ•œ ์„ธ๊ทธ๋จผํŠธ ๋ฒˆํ˜ธ ์กฐ๊ฑด: segment number < STLR

Example of Segmentation

User's view:

+--------------+    +--------------+
| subroutine   |    | segment 0    |
+--------------+    +--------------+
| stack        |    | segment 3    |
+--------------+    | segment 4    |
| symbol table |    | segment 1    |
+--------------+    | segment 2    |
| main program |    | segment 5    |
+--------------+    | segment 6    |
| segment 1    |    | segment 7    |
| segment 2    |    +--------------+
                   physical memory

์„ธ๊ทธ๋จผํŠธ ํ…Œ์ด๋ธ”:

  • segment 0 โ†’ base: 1400, limit: 1000
  • segment 1 โ†’ base: 6300, limit: 400
  • segment 2 โ†’ base: 4300, limit: 400 ...

Segmentation Hardware

logical address = (s, d)

          +--------+       +----------------+
CPU  ---> |   s    | ----> |  segment table |
          +--------+       +----------------+
                             |      |
                             v      v
                          limit    base
                             |      |
                             v      v
                       if d < limit?
                             | yes
                             v
                        physical address = base + d
                             |
                             v
                        physical memory

else โ†’ trap (addressing error)

Segmentation Architecture (Cont.)

  • ๋ณดํ˜ธ (Protection)

    • ์„ธ๊ทธ๋จผํŠธ ํ…Œ์ด๋ธ” ํ•ญ๋ชฉ๋งˆ๋‹ค ๋‹ค์Œ์„ ํฌํ•จ:
      • valid/invalid bit = 0 โ†’ illegal segment
      • RWX ๊ถŒํ•œ ๋น„ํŠธ
  • ๊ณต์œ  (Sharing)

    • ์„ธ๊ทธ๋จผํŠธ ์ˆ˜์ค€์—์„œ ๊ณต์œ ๊ฐ€ ๋ฐœ์ƒ
    • ๊ณต์œ  ์„ธ๊ทธ๋จผํŠธ์˜ ๊ฒฝ์šฐ, ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋™์ผํ•œ ์„ธ๊ทธ๋จผํŠธ ๋ฒˆํ˜ธ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•จ
      • ์˜ˆ: ์ž๊ธฐ์ฐธ์กฐ ์ฝ”๋“œ๊ฐ€ segment number์™€ offset์œผ๋กœ ์ž์‹ ์„ ์ฐธ์กฐ
  • ํ• ๋‹น (Allocation)

    • ์„ธ๊ทธ๋จผํŠธ์˜ ๊ธธ์ด๋Š” ๊ฐ€๋ณ€์ ์ด๋ฏ€๋กœ, ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์€ ๋™์  ํ• ๋‹น ๋ฌธ์ œ
    • first fit / best fit ์ „๋žต ์‚ฌ์šฉ
    • ์™ธ๋ถ€ ๋‹จํŽธํ™” ๋ฐœ์ƒ, ๋‚ด๋ถ€ ๋‹จํŽธํ™”๋Š” ์—†์Œ

Sharing of Segments

Process P1:
  segment 0 = editor
  segment 1 = data1

Process P2:
  segment 0 = editor
  segment 1 = data2

โ†’ physical memory์—์„œ editor๋Š” ๊ณต์œ ๋˜๊ณ ,
   data1, data2๋Š” ๊ฐ์ž ๋ถ„๋ฆฌ๋˜์–ด ์ €์žฅ๋จ

Segmentation with Paging

  • ์™ธ๋ถ€ ๋‹จํŽธํ™” ๋ฌธ์ œ๋Š” ์„ธ๊ทธ๋จผํŠธ๋ฅผ ํŽ˜์ด์ง€๋กœ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์œผ๋กœ ํ•ด๊ฒฐ ๊ฐ€๋Šฅ

  • ์ด ๋ฐฉ์‹์€ ์ˆœ์ˆ˜ segmentation๊ณผ ๋‹ค๋ฆ„:

    • ์„ธ๊ทธ๋จผํŠธ ํ…Œ์ด๋ธ” ํ•ญ๋ชฉ์€ ์„ธ๊ทธ๋จผํŠธ์˜ base ์ฃผ์†Œ๊ฐ€ ์•„๋‹ˆ๋ผ, page table์˜ base ์ฃผ์†Œ๋ฅผ ํฌํ•จ
  • ๊ฐ€์ƒ ์ฃผ์†Œ ํ˜•์‹:

Segment number s | Page number p | Displacement d
โ†’ Virtual address V = (s, p, d)

Segmentation with Paging: Address Translation

logical address = (s, p, d)

   โ†“
[STBR]
   โ†“
segment table
   โ†“
segment length, page-table base

   โ†“
if p < segment length?
   โ†“
yes โ†’ page table โ†’ frame โ†’ +d โ†’ physical address โ†’ memory
no  โ†’ trap (addressing error)

Segmentation with Paging (TLB incorporated)

  • ๊ฐ€์ƒ ์ฃผ์†Œ ๊ตฌ์กฐ:

    v=(s,p,d)v = (s, p, d) v=(s,p,d)

    • s: ์„ธ๊ทธ๋จผํŠธ ๋ฒˆํ˜ธ
    • p: ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ
    • d: ๋ณ€์œ„ (offset)
  • ํ๋ฆ„ ์š”์•ฝ:

  1. ์„ธ๊ทธ๋จผํŠธ ํ…Œ์ด๋ธ” ์‹œ์ž‘์  ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ ์ฃผ์†Œ b๋ฅผ ๊ฐ€๋ฆฌํ‚ด
  2. ์„ธ๊ทธ๋จผํŠธ ๋ฒˆํ˜ธ s๋ฅผ ๋”ํ•ด ํ•ด๋‹น ์„ธ๊ทธ๋จผํŠธ ํ•ญ๋ชฉ ์ฃผ์†Œ b + s๋กœ ์ ‘๊ทผ
  3. ์„ธ๊ทธ๋จผํŠธ ํ…Œ์ด๋ธ”์—์„œ:
    • ํŽ˜์ด์ง€ ์‚ฌ์ƒํ‘œ(page table)์˜ ์‹œ์ž‘ ์ฃผ์†Œ **sโ€ฒ**๋ฅผ ์–ป์Œ
  4. (s, p) ์Œ์ด TLB(์—ฐ๊ด€ ์ €์žฅ ์žฅ์น˜)์— ์žˆ๋Š”์ง€ ๋จผ์ € ํ™•์ธ
    • ์žˆ์œผ๋ฉด TLB์— ์ €์žฅ๋œ pโ€ฒ ๊ฐ’์œผ๋กœ ๋ฐ”๋กœ ๋งคํ•‘
    • ์—†์œผ๋ฉด:
      • ํŽ˜์ด์ง€ ์‚ฌ์ƒํ‘œ์—์„œ p๋ฅผ ์ธ๋ฑ์Šค๋กœ ์‚ฌ์šฉํ•˜์—ฌ ํŽ˜์ด์ง€ ํ”„๋ ˆ์ž„ ๋ฒˆํ˜ธ **pโ€ฒ**๋ฅผ ์กฐํšŒ
      • TLB์— ์ƒˆ ํ•ญ๋ชฉ์œผ๋กœ ์ €์žฅ ๊ฐ€๋Šฅ
  5. ํŽ˜์ด์ง€ ํ”„๋ ˆ์ž„ ๋ฒˆํ˜ธ **pโ€ฒ**์™€ ๋ณ€์œ„ d๋ฅผ ๋”ํ•ด ์‹ค์ œ ์ฃผ์†Œ r์„ ๊ณ„์‚ฐ

    r=pโ€ฒ+dr = pโ€ฒ + d r=pโ€ฒ+d

๊ฐ€์ƒ์ฃผ์†Œ v = (s, p, d)
    โ†“
TLB์—์„œ (s, p) ์กฐํšŒ
   โ”œโ”€ ์žˆ์œผ๋ฉด โ†’ pโ€ฒ ์–ป์Œ
   โ””โ”€ ์—†์œผ๋ฉด
       โ””โ”€ ์„ธ๊ทธ๋จผํŠธ ํ…Œ์ด๋ธ” ์‹œ์ž‘ ์ฃผ์†Œ b + s ์ ‘๊ทผ
           โ””โ”€ ์„ธ๊ทธ๋จผํŠธ s์˜ page table ์ฃผ์†Œ sโ€ฒ ํš๋“
               โ””โ”€ page table์—์„œ p ์ธ๋ฑ์Šค๋กœ pโ€ฒ ์กฐํšŒ
                   โ””โ”€ TLB์— (s, p) โ†’ pโ€ฒ ์ €์žฅ

pโ€ฒ + d โ†’ ์‹ค์ฃผ์†Œ r

FileSystem - ๊ต์ˆ˜๋‹˜ ๊ฐ•์˜ ๋‚ด์šฉ ์š”์•ฝ

ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์˜ ํ•œ๊ณ„

  • ํ•˜๋‚˜์˜ page table์ด ๋„ˆ๋ฌด ์ปค์งˆ ๊ฒฝ์šฐ, ์—ฐ์†์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์ฐจ์ง€ํ•˜๊ธฐ ์–ด๋ ค์›€
  • 1024๊ฐœ์˜ entry๊ฐ€ ํ•„์š”ํ•  ๊ฒฝ์šฐ, ๊ฐ๊ฐ์˜ entry๋Š” 4KB frame์œผ๋กœ ๊ตฌ์„ฑ๋จ

๋‹ค๋‹จ๊ณ„ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”

  • ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ๊ณ„์ธต ๊ตฌ์กฐ๋กœ ๋‚˜๋ˆ„์–ด ๊ด€๋ฆฌ
  • Outer Page Table โ†’ Inner Page Table โ†’ Data Page
  • ๊ฐ ํ…Œ์ด๋ธ”์€ ํ•˜๋‚˜์˜ frame์— 1024๊ฐœ entry๋ฅผ ๊ฐ€์ง
  • Logical Address: ์ƒ์œ„ 10๋น„ํŠธ (outer index), ์ค‘๊ฐ„ 10๋น„ํŠธ (inner index), ํ•˜์œ„ 12๋น„ํŠธ (offset)

์ฃผ์†Œ ๋ณ€ํ™˜ ๋ฐฉ์‹

  1. Logical Address๋ฅผ 10/10/12 ๋น„ํŠธ๋กœ ๋‚˜๋ˆ”
  2. Outer index โ†’ inner page table์˜ ์œ„์น˜
  3. Inner index โ†’ data page์˜ ์œ„์น˜
  4. offset์„ ๋”ํ•ด์„œ ์ตœ์ข… physical address ๊ณ„์‚ฐ

64๋น„ํŠธ ์ฃผ์†Œ ์ฒด๊ณ„

  • ๋„ˆ๋ฌด ๋งŽ์€ entry๋กœ ์ธํ•ด ํ˜„์‹ค์ ์œผ๋กœ ์‚ฌ์šฉ ์–ด๋ ค์›€
  • ์‹ค์ œ ๊ตฌํ˜„์—์„œ๋Š” 48๋น„ํŠธ๋งŒ ์‚ฌ์šฉ (4๋ ˆ๋ฒจ ๊ตฌ์กฐ)
  • TLB๊ฐ€ ์ด ๊ณผ์ •์„ ์บ์‹œํ•˜์—ฌ ์„ฑ๋Šฅ ์ €ํ•˜ ๋ฐฉ์ง€

Inverted Page Table

๊ฐœ๋…

  • ๊ธฐ์กด page table์ด logical โ†’ physical ๋ณ€ํ™˜์ด๋ผ๋ฉด,
  • Inverted page table์€ physical โ†’ logical ๋ณ€ํ™˜
  • ์ „์ฒด ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•˜๋‚˜์˜ page table๋งŒ ์œ ์ง€

์žฅ์ 

  • ํ”„๋กœ์„ธ์Šค๋งˆ๋‹ค page table์„ ๋งŒ๋“ค์ง€ ์•Š์•„๋„ ๋จ
  • ๋ฉ”๋ชจ๋ฆฌ ์ ˆ์•ฝ ๊ฐ€๋Šฅ

๋ฌธ์ œ์ 

  • associative search ํ•„์š” โ†’ ์„ฑ๋Šฅ ์ €ํ•˜
  • ๊ณต์œ  ์–ด๋ ค์›€ (PID ๊ธฐ๋ฐ˜ ๋งค์นญ ํ•„์š”)
  • Sharing์— ์ œ์•ฝ ๋งŽ๊ณ  ํƒ์ƒ‰์‹œ๊ฐ„์ด ์ฆ๊ฐ€ํ•จ

ํ•ด๊ฒฐ ์‹œ๋„

  • Hashing ๊ธฐ๋ฐ˜ ํƒ์ƒ‰ ๊ตฌ์กฐ ์‚ฌ์šฉ
  • Chain์ด ์—†๋Š” hash function ์„ค๊ณ„๊ฐ€ ํ•ต์‹ฌ

Segmentation

๊ฐœ๋…

  • ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์˜๋ฏธ ๋‹จ์œ„(ํ•จ์ˆ˜, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ์Šคํƒ ๋“ฑ)๋กœ ๋‚˜๋ˆ”
  • Logical address = segment ๋ฒˆํ˜ธ + offset
  • ์ฃผ์†Œ ๋ณ€ํ™˜ ์‹œ base address + offset ๋ฐฉ์‹

์žฅ์ 

  • ์˜๋ฏธ ๋‹จ์œ„ ๊ณต์œ  ๊ฐ€๋Šฅ
  • ๋‹ค์–‘ํ•œ protection level ๋ถ€์—ฌ ๊ฐ€๋Šฅ

๋‹จ์ 

  • ์—ฐ์†์  ๋ฉ”๋ชจ๋ฆฌ ์š”๊ตฌ โ†’ external fragmentation ๋ฐœ์ƒ ๊ฐ€๋Šฅ

Segmentation with Paging

๊ฐœ๋…

  • Segmentation์„ ๊ธฐ๋ฐ˜์œผ๋กœ, ๊ฐ segment ์•ˆ์— paging ๊ธฐ๋ฒ• ์ ์šฉ
  • ๊ฐ segment๋Š” paging ๊ธฐ๋ฒ•์„ ํ†ตํ•ด ๋‚ด๋ถ€ ์ฃผ์†Œ ๊ณต๊ฐ„ ๊ด€๋ฆฌ

์žฅ์ 

  • ๊ณต์œ  ๋‹จ์œ„ ์œ ์ง€ (segment)
  • paging์„ ํ†ตํ•ด ๋‚ด๋ถ€ fragmentation ํ•ด๊ฒฐ

์ฃผ์†Œ ๋ณ€ํ™˜ ๋ฐฉ์‹

  1. Logical address = segment ๋ฒˆํ˜ธ + offset
  2. segment ๋ฒˆํ˜ธ โ†’ ํ•ด๋‹น segment์˜ page table ์ฃผ์†Œ
  3. offset โ†’ page index + page offset
  4. ์ตœ์ข…์ ์œผ๋กœ frame ๋ฒˆํ˜ธ + offset์œผ๋กœ physical address ๊ณ„์‚ฐ

์ •๋ฆฌ: ์ฃผ์†Œ ๋ณ€ํ™˜ ๊ณผ์ •

์ „์ฒด ํ๋ฆ„

  • CPU๊ฐ€ logical address ์ƒ์„ฑ (seg#, page#, offset)
  • TLB ์‹คํŒจ ์‹œ โ†’ segment table/page table ํƒ์ƒ‰
  • frame ๋ฒˆํ˜ธ ํš๋“ ํ›„ offset ๋”ํ•˜์—ฌ physical address ์ƒ์„ฑ

๊ฒฐ๋ก 

  • Multi-level paging, inverted page table, segmentation, segmentation with paging์€ ๊ฐ๊ธฐ ๋‹ค๋ฅธ ์ƒํ™ฉ์—์„œ trade-off๋ฅผ ๊ฐ€์ง€๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๊ธฐ๋ฒ•
  • ํšจ์œจ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๊ณผ ๊ณต์œ , ๋ณดํ˜ธ ์ˆ˜์ค€ ์ œ๊ณต์„ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ๊ตฌ์กฐ์  ์‹œ๋„
์ตœ๊ทผ ์ˆ˜์ •:: 25. 6. 19. ์˜คํ›„ 8:26
Contributors: kmbzn
Prev
8. Memory Management(1)
Next
10. Virtual Memory(1)

BUILT WITH

CloudflareNode.jsGitHubGitVue.jsJavaScriptVSCodenpm

All trademarks and logos are property of their respective owners.
ยฉ 2025 kmbzn ยท MIT License