• 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)

8. Memory Management(1)

Background

  • ํ”„๋กœ๊ทธ๋žจ์€ ๋””์Šคํฌ์—์„œ ๋ฉ”๋ชจ๋ฆฌ๋กœ ๋ถˆ๋Ÿฌ์˜จ ํ›„, ํ”„๋กœ์„ธ์Šค ๋‚ด์— ์œ„์น˜ํ•ด์•ผ ์‹คํ–‰๋  ์ˆ˜ ์žˆ์Œ
  • main memory์™€ register๋งŒ์ด CPU๊ฐ€ ์ง์ ‘ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ์ €์žฅ ์žฅ์น˜์ž„
  • register ์ ‘๊ทผ์€ CPU clock cycle 1ํšŒ (๋˜๋Š” ๊ทธ ์ดํ•˜)
  • main memory ์ ‘๊ทผ์€ ์—ฌ๋Ÿฌ cycle์ด ์†Œ์š”๋  ์ˆ˜ ์žˆ์Œ
  • cache๋Š” main memory์™€ CPU register ์‚ฌ์ด์— ์œ„์น˜
  • ์˜ฌ๋ฐ”๋ฅธ ๋™์ž‘์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ๋ฉ”๋ชจ๋ฆฌ ๋ณดํ˜ธ๊ฐ€ ํ•„์š”ํ•จ

Multistep Processing of a User Program

์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์€ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์‹คํ–‰๋˜๊ธฐ ์ „๊นŒ์ง€ ์—ฌ๋Ÿฌ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์นจ

source program
โ†“ (compiler ๋˜๋Š” assembler)
object module
โ†“ (linker ๋˜๋Š” linkage editor)
executable module
โ†“ (loader)
memory image
โ†“
์‹คํ–‰

Process in Memory: Address Space

    max
  +--------+
  | stack  |
  +--------+
  |  heap  |
  +--------+
  |  data  |
  +--------+
  |  text  |
  +--------+
    0

Binding of Instructions and Data to Memory

Compile time binding

  • ์ด ์‹œ์ ์— ๊ฐ symbol์˜ ์ ˆ๋Œ€ ์ฃผ์†Œ๊ฐ€ ๊ฒฐ์ •๋˜์–ด์•ผ ํ•จ
  • ์ ˆ๋Œ€ ์ฃผ์†Œ๋ฅผ ํฌํ•จํ•œ absolute code๊ฐ€ ์ƒ์„ฑ๋จ
  • ์‹œ์ž‘ ์œ„์น˜๊ฐ€ ๋ฐ”๋€Œ๋ฉด ์ฝ”๋“œ๋ฅผ ๋‹ค์‹œ ์ปดํŒŒ์ผํ•ด์•ผ ํ•จ

Load time binding

  • loader๊ฐ€ ๊ฐ symbol์— ๋Œ€ํ•œ ์ ˆ๋Œ€ ์ฃผ์†Œ๋ฅผ ํ• ๋‹น
  • compiler๋Š” ์ƒ๋Œ€ ์ฃผ์†Œ๋ฅผ ํฌํ•จํ•œ relocatable code๋ฅผ ์ƒ์„ฑํ•จ

Execution time binding

  • ์‹คํ–‰ ์ค‘์ผ ๋•Œ, ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ๋‚ด ์œ„์น˜๋ฅผ ๋ณ€๊ฒฝํ•  ๊ฒฝ์šฐ ์‚ฌ์šฉ๋จ
  • CPU๊ฐ€ ์ฃผ์†Œ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ๋งˆ๋‹ค ์ฃผ์†Œ ๋ณ€ํ™˜(address mapping)์ด ํ•„์š”
  • ํ•˜๋“œ์›จ์–ด ์ง€์› ํ•„์š” (์˜ˆ: base and limit register, MMU)

Address Mapping Table

          CPU
    ๋…ผ๋ฆฌ์  ์ฃผ์†Œ (logical)    โ†’    ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ (physical)
    ---------------------      -------------------------
        0๋ฒˆ์ง€                    โ†’     500๋ฒˆ์ง€
      500๋ฒˆ์ง€                    โ†’   20000๋ฒˆ์ง€

CPU๊ฐ€ ์ œ์‹œํ•œ ์ฃผ์†Œ = ๋…ผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ ๋‚ด ์ฃผ์†Œ
์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ์—์„œ์˜ ์œ„์น˜ = ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ ๋‚ด ์ฃผ์†Œ
์˜ˆ: ๋…ผ๋ฆฌ ์ฃผ์†Œ 500 โ†’ ๋ฌผ๋ฆฌ ์ฃผ์†Œ 20500

Base and Limit Registers

  • ๋ฌผ๋ฆฌ ์ฃผ์†Œ ๊ณต๊ฐ„์€ base register์™€ limit register์˜ ์Œ์œผ๋กœ ์ •์˜๋จ
  0           โ”
              โ”‚  operating system
  256000      โ”‚
  300040      โ”‚  process            โ† base
  409240      โ”‚
  880000      โ”‚  process
 1024000      โ”˜                     โ† limit

Logical vs. Physical Address Space

  • ๋…ผ๋ฆฌ ์ฃผ์†Œ ๊ณต๊ฐ„(logical address space) ๊ฐœ๋…์€ ๋ฌผ๋ฆฌ ์ฃผ์†Œ ๊ณต๊ฐ„(physical address space)๊ณผ ๋ถ„๋ฆฌ๋˜์–ด ์žˆ์œผ๋ฉฐ, ์ด๋Š” ์ ์ ˆํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ์˜ ํ•ต์‹ฌ์ž„

  • Logical address

    • CPU์— ์˜ํ•ด ์ƒ์„ฑ๋จ
    • virtual address๋ผ๊ณ ๋„ ๋ถˆ๋ฆผ
  • Physical address

    • ๋ฉ”๋ชจ๋ฆฌ ์žฅ์น˜์— ์˜ํ•ด ์ธ์‹๋˜๋Š” ์ฃผ์†Œ
  • ๋…ผ๋ฆฌ ์ฃผ์†Œ์™€ ๋ฌผ๋ฆฌ ์ฃผ์†Œ๋Š” ์ปดํŒŒ์ผ ์‹œ๊ฐ„๊ณผ ์ ์žฌ ์‹œ๊ฐ„ ๋ฐ”์ธ๋”ฉ์—์„œ๋Š” ๋™์ผํ•จ

  • ์‹คํ–‰ ์‹œ๊ฐ„ ๋ฐ”์ธ๋”ฉ์—์„œ๋Š” ์„œ๋กœ ๋‹ค๋ฆ„

Memory-Management Unit (MMU)

  • MMU (Memory-Management Unit)

    • ๋…ผ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๋ฌผ๋ฆฌ ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ๋Š” ํ•˜๋“œ์›จ์–ด ์žฅ์น˜
  • MMU ๋ฐฉ์‹

    • relocation register์˜ ๊ฐ’์„ CPU์—์„œ ์ „๋‹ฌ๋œ ๋ชจ๋“  ์ฃผ์†Œ์— ๋”ํ•œ ํ›„ ๋ฉ”๋ชจ๋ฆฌ์— ๋ณด๋ƒ„
  [ CPU ]
     โ”‚
     โ–ผ
  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
  โ”‚ logical addrโ”‚ โ†’โ”€โ”€โ”€โ”€โ”
  โ”‚     = 346   โ”‚      โ”‚
  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜      โ–ผ
                โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                โ”‚ relocation reg โ”‚ = 14000
                โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                          โ”‚
                          โ–ผ
                  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                  โ”‚ physical addrโ”‚ = 14346
                  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                          โ”‚
                          โ–ผ
                      [ memory ]
  • ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์€ ๋…ผ๋ฆฌ ์ฃผ์†Œ๋งŒ ๋‹ค๋ฃจ๋ฉฐ, ๋ฌผ๋ฆฌ ์ฃผ์†Œ๋Š” ์ง์ ‘ ์ ‘๊ทผํ•˜์ง€ ์•Š์Œ

Swapping necessitates dynamic relocation

  • Swapping

    • ํ”„๋กœ์„ธ์Šค๋Š” ์ผ์‹œ์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ์—์„œ backing store๋กœ ์Šค์™‘๋จ
    • ์ดํ›„ ๋‹ค์‹œ ๋ฉ”๋ชจ๋ฆฌ๋กœ ๋ณต๊ท€๋จ
  • Backing store

    • ๋ชจ๋“  ์‚ฌ์šฉ์ž ๋ฉ”๋ชจ๋ฆฌ ์ด๋ฏธ์ง€๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ์„ ๋งŒํผ ํฐ ๊ณ ์† ๋””์Šคํฌ
    • ์‚ฌ์šฉ์ž๋“ค์ด ์ง์ ‘ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•จ
  • ์Šค์™‘์—์„œ ๊ฐ€์žฅ ํฐ ๋น„์ค‘์„ ์ฐจ์ง€ํ•˜๋Š” ๊ฒƒ์€ ์ „์†ก ์‹œ๊ฐ„

    • ์ด ์ „์†ก ์‹œ๊ฐ„์€ ์Šค์™‘๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์–‘์— ๋น„๋ก€ํ•จ

Contiguous Allocation

  • ์ฃผ๊ธฐ์–ต์žฅ์น˜๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋‘ ํŒŒํ‹ฐ์…˜์œผ๋กœ ๋‚˜๋‰จ:

    • Resident OS: interrupt vector๊ฐ€ ์žˆ๋Š” low memory์— ์œ„์น˜
    • User process๋Š” high memory์— ์œ„์น˜
  • ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•ด:

    • Relocation register: ๊ฐ€์žฅ ์ž‘์€ ๋ฌผ๋ฆฌ ์ฃผ์†Œ ๊ฐ’์„ ๊ฐ€์ง
    • Limit register: ๋…ผ๋ฆฌ ์ฃผ์†Œ ๋ฒ”์œ„๋ฅผ ๊ฐ€์ง
      • ๊ฐ ๋…ผ๋ฆฌ ์ฃผ์†Œ๋Š” limit register๋กœ ๊ฒฝ๊ณ„ ์„ค์ •๋จ
  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
  โ”‚     OS     โ”‚ โ† low memory
  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
  โ”‚ user proc. โ”‚ โ† high memory
  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Hardware Support for Relocation and Limit Registers

  • ํ•˜๋“œ์›จ์–ด๋Š” relocation๊ณผ limit register๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฃผ์†Œ๋ฅผ ๋ณ€ํ™˜ํ•จ
  [ CPU ]
     โ”‚
     โ–ผ
 โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
 โ”‚ logical addrโ”‚
 โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
      โ–ผ
  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
  โ”‚ limit registerโ”‚
  โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
       โ–ผ (๋น„๊ต)
   logical < limit ?
       โ”‚
     โ”Œโ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
     โ”‚   yes        โ”‚โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
     โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜            โ–ผ
                            โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                            โ”‚ relocation   โ”‚
                            โ”‚   register   โ”‚
                            โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                 โ–ผ
                            [ + ] (ํ•ฉ์‚ฐ)
                                 โ–ผ
                        โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                        โ”‚ physical addrโ”‚
                        โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                             โ–ผ
                          [ memory ]

       no
       โ”‚
       โ–ผ
  trap: addressing error

Contiguous Allocation (Cont.)

  • Hole: ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฉ”๋ชจ๋ฆฌ ๋ธ”๋ก
    • ๋‹ค์–‘ํ•œ ํฌ๊ธฐ์˜ hole(๋นˆ ๊ณต๊ฐ„)์€ ๋ฉ”๋ชจ๋ฆฌ ์ „๋ฐ˜์— ํฉ์–ด์ ธ ์žˆ์Œ
    • ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋„์ฐฉํ•˜๋ฉด, ํ•ด๋‹น ์š”์ฒญ์„ ์ˆ˜์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํฌ๊ธฐ์˜ hole์—์„œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ• ๋‹น๋จ
  • ์šด์˜์ฒด์ œ๋Š” ๋‹ค์Œ ์ •๋ณด๋ฅผ ์œ ์ง€ํ•จ:
    • a) ํ• ๋‹น๋œ ๊ณต๊ฐ„
    • b) ๋นˆ ๊ณต๊ฐ„ (hole)

Dynamic Storage-Allocation Problem

  • ์š”์ฒญ ํฌ๊ธฐ n์„ ์ถฉ์กฑ์‹œํ‚ค๊ธฐ ์œ„ํ•ด hole ๋ฆฌ์ŠคํŠธ์—์„œ ์–ด๋–ป๊ฒŒ ํ• ๋‹นํ•  ๊ฒƒ์ธ๊ฐ€

  • First-fit

    • ์ถฉ๋ถ„ํžˆ ํฐ ์ฒซ ๋ฒˆ์งธ hole์— ํ• ๋‹น
  • Best-fit

    • ์ถฉ๋ถ„ํžˆ ํฐ ๊ฐ€์žฅ ์ž‘์€ hole์— ํ• ๋‹น
    • ์ „์ฒด ๋ฆฌ์ŠคํŠธ๋ฅผ ํƒ์ƒ‰ํ•ด์•ผ ํ•จ (์ •๋ ฌ๋œ ๊ฒฝ์šฐ ์˜ˆ์™ธ)
    • ๋งŽ์€ ์ž‘์€ leftover hole์„ ์ƒ์„ฑํ•จ
  • Worst-fit

    • ๊ฐ€์žฅ ํฐ hole์— ํ• ๋‹น
    • ์—ญ์‹œ ์ „์ฒด ๋ฆฌ์ŠคํŠธ๋ฅผ ํƒ์ƒ‰ํ•ด์•ผ ํ•จ
    • ๊ฐ€์žฅ ํฐ leftover hole์„ ์ƒ์„ฑ

์ €์žฅ ๊ณต๊ฐ„ ํ™œ์šฉ ์ธก๋ฉด์—์„œ First-fit ๋ฐ Best-fit์ด Worst-fit๋ณด๋‹ค ๋” ํšจ์œจ์ ์ž„

Fragmentation

  • External fragmentation

    • ์ „์ฒด ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์€ ์š”์ฒญ์„ ๋งŒ์กฑํ•  ์ˆ˜ ์žˆ์„ ๋งŒํผ ์žˆ์ง€๋งŒ, ์—ฐ์†์ ์ด์ง€ ์•Š์Œ
  • Internal fragmentation

    • ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ๋Š” ์‹ค์ œ ์š”์ฒญ๋ณด๋‹ค ์•ฝ๊ฐ„ ํด ์ˆ˜ ์žˆ์Œ โ†’ ์ด ํฌ๊ธฐ ์ฐจ์ด๊ฐ€ internal fragmentation (ํŒŒํ‹ฐ์…˜ ๋‚ด๋ถ€ ๋ฉ”๋ชจ๋ฆฌ์ด๋‚˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Œ)
  • ์™ธ๋ถ€ ๋‹จํŽธํ™”๋ฅผ ์ค„์ด๋Š” ๋ฐฉ๋ฒ•: compaction

    • ๋ฉ”๋ชจ๋ฆฌ ๋‚ด ๋‚ด์šฉ์„ ์„ž์–ด ๋ชจ๋“  ๋นˆ ๊ณต๊ฐ„์„ ํ•˜๋‚˜์˜ ํฐ ๋ธ”๋ก์œผ๋กœ ๋งŒ๋“ฆ
    • ๋‹จ, relocation์ด ๋™์ ์œผ๋กœ ๊ฐ€๋Šฅํ•˜๊ณ  ์‹คํ–‰ ์‹œ๊ฐ„์— ์ˆ˜ํ–‰๋  ๊ฒฝ์šฐ์—๋งŒ compaction ๊ฐ€๋Šฅ

Paging

  • Paging

    • ์ฃผ์†Œ ๊ณต๊ฐ„์„ ๋น„์—ฐ์†์ ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ์Šคํ‚ด
  • ๊ธฐ๋ณธ ๋ฐฉ์‹

    • ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ณ ์ • ํฌ๊ธฐ ๋ธ”๋ก(frame) ์œผ๋กœ ๋‚˜๋ˆ”
      (ํฌ๊ธฐ๋Š” 2์˜ ์ œ๊ณฑ์ˆ˜, 512B ~ 8MB)
    • ๋…ผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ฐ™์€ ํฌ๊ธฐ์˜ ๋ธ”๋ก(page) ์œผ๋กœ ๋‚˜๋ˆ”
    • ๋ชจ๋“  frame์˜ ์ƒํƒœ๋ฅผ ์ถ”์ 
    • ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์‹œ, n๊ฐœ์˜ ํŽ˜์ด์ง€์— ๋Œ€ํ•ด n๊ฐœ์˜ ๋นˆ frame๊ณผ page table์ด ํ•„์š”
    • ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ํ†ตํ•ด ๋…ผ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๋ฌผ๋ฆฌ ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜
    • ๋‚ด๋ถ€ ๋‹จํŽธํ™”๋Š” ์žˆ์œผ๋‚˜ ์™ธ๋ถ€ ๋‹จํŽธํ™”๋Š” ์—†์Œ

Paging

  max
   โ”‚
   โ–ผ
 โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
 โ”‚   stack    โ”‚
 โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
 โ”‚    ...     โ”‚   โ† pages
 โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
 โ”‚   heap     โ”‚
 โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
 โ”‚   data     โ”‚
 โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
 โ”‚   text     โ”‚
 โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
Process Address Space

         โ”‚
         โ–ผ
โ”Œโ”€โ”€โ”ฌโ”€โ”€โ”ฌโ”€โ”€โ”ฌโ”€โ”€โ”ฌโ”€โ”€โ”ฌโ”€โ”€โ”ฌโ”€โ”€โ”
โ”‚  โ”‚  โ”‚  โ”‚  โ”‚  โ”‚  โ”‚  โ”‚  โ† (page) frames
โ””โ”€โ”€โ”ดโ”€โ”€โ”ดโ”€โ”€โ”ดโ”€โ”€โ”ดโ”€โ”€โ”ดโ”€โ”€โ”ดโ”€โ”€โ”˜
   Physical Memory

Address Translation Scheme in Paging

  • CPU๊ฐ€ ์ƒ์„ฑํ•˜๋Š” ์ฃผ์†Œ๋Š” ๋‹ค์Œ ๋‘ ๋ถ€๋ถ„์œผ๋กœ ๋‚˜๋‰จ:

    • Page number (p)
      โ†’ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์—์„œ ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ์˜ ๊ฐ ํŽ˜์ด์ง€์— ํ•ด๋‹นํ•˜๋Š” base address๋ฅผ ์ฐพ๋Š” ์ธ๋ฑ์Šค๋กœ ์‚ฌ์šฉ๋จ

    • Page offset (d)
      โ†’ base address์— ๋”ํ•ด ์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ์ฃผ์†Œ๋ฅผ ๊ฒฐ์ •

์ฃผ์†Œ ๊ตฌ์กฐ:

  page number   page offset
  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
  โ”‚   p   โ”‚       d        โ”‚
  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
     (m-n)๋น„ํŠธ       n๋น„ํŠธ

- ๋…ผ๋ฆฌ ์ฃผ์†Œ ๊ณต๊ฐ„์ด $2^m$์ผ ๋•Œ, ํŽ˜์ด์ง€ ํฌ๊ธฐ๊ฐ€ $2^n$์ด๋ฉด

Address Translation Architecture

CPU
 โ†“
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ logical addrโ”‚
โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
     โ†“
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Page Table  โ”‚
โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
     โ†“
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ physical addrโ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
              โ†“
     Physical Memory

Paging Example

  • Page Number = 2 / 4 = 0

  • Offset = 2 % 4 = 2

  • Logical address (m): 4๋น„ํŠธ

  • Page number (m-n): 2๋น„ํŠธ

  • Offset (n): 2๋น„ํŠธ

  • 4๋ฐ”์ดํŠธ ํŽ˜์ด์ง€ โ†’ n = 2๋น„ํŠธ

Free Frames

  • (a) ํ• ๋‹น ์ „
free-frame list: 18 3 14 9 6 ...
new process: page 0, page 1
  • (b) ํ• ๋‹น ํ›„
free-frame list: 13 8 10 ...
new process:
  page 0 โ†’ frame 14
  page 1 โ†’ frame 9

Implementation of Page Table

  • ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์€ ์ฃผ๊ธฐ์–ต์žฅ์น˜์— ์ €์žฅ๋จ

    • Page-table base register (PTBR): ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ๊ฐ€๋ฆฌํ‚ด
    • Page-table length register (PTLR): ํ…Œ์ด๋ธ”์˜ ํฌ๊ธฐ๋ฅผ ๋‚˜ํƒ€๋ƒ„
  • ๋ฌธ์ œ์ : ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ๋งˆ๋‹ค ๋‘ ๋ฒˆ์˜ ์ ‘๊ทผ์ด ํ•„์š”ํ•จ

    • ํ•˜๋‚˜๋Š” ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”, ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ๋ฐ์ดํ„ฐ/๋ช…๋ น์–ด ์ ‘๊ทผ
  • ํ•ด๊ฒฐ์ฑ…: TLB(Translation Look-aside Buffer) ๋˜๋Š” Associative memory ์‚ฌ์šฉ

    • ์ผ๋ฐ˜์ ์œผ๋กœ, TLB๋Š” ์ปจํ…์ŠคํŠธ ์ „ํ™˜ ์‹œ ํ”Œ๋Ÿฌ์‹œ๋จ (์ด์ „ ํ•ญ๋ชฉ ์ œ๊ฑฐ)
    • ์ผ๋ถ€ TLB๋Š” ASID(Address-Space Identifiers)๋ฅผ ์ €์žฅํ•˜์—ฌ ํ”Œ๋Ÿฌ์‹œ๋ฅผ ํ”ผํ•จ
      โ†’ ๊ฐ ํ”„๋กœ์„ธ์Šค์˜ ์ฃผ์†Œ ๊ณต๊ฐ„ ๋ณดํ˜ธ ์ง€์›

Associative Memory (TLB)

  • ๋‘ ๊ฐ€์ง€ ์ข…๋ฅ˜์˜ ๋ฉ”๋ชจ๋ฆฌ:

    1. ์ผ๋ฐ˜ ๋ฉ”๋ชจ๋ฆฌ (์˜ˆ: DRAM)
      • ์ฃผ์†Œ๋ฅผ ์ฃผ๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜
    2. ์—ฐ๊ด€ ๋ฉ”๋ชจ๋ฆฌ (Associative memory)
      • ๋ฐ์ดํ„ฐ ์ผ๋ถ€๋ฅผ ์ฃผ๋ฉด ์ „์ฒด ๋ ˆ์ฝ”๋“œ๋ฅผ ๋ฐ˜ํ™˜ (ex: ์ „ํ™”๋ฒˆํ˜ธ๋ถ€)
      • ๋ณ‘๋ ฌ ํƒ์ƒ‰ ์—†์ด๋Š” ๋А๋ฆผ, ๊ตฌํ˜„ ๋น„์šฉ์ด ํผ
  • Associative Memory (TLB): ๋ณ‘๋ ฌ ํƒ์ƒ‰
    โ†’ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์˜ ์ผ๋ถ€๋งŒ TLB์— ์ €์žฅ๋จ

  • ์ฃผ์†Œ ๋ณ€ํ™˜ ๊ณผ์ • (p, d)

    • ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ p๋ฅผ TLB์—์„œ ๋จผ์ € ์ฐพ์Œ
      • ์กด์žฌํ•˜๋ฉด ํ•ด๋‹น frame ๋ฐ˜ํ™˜
      • ์—†์œผ๋ฉด ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์—์„œ frame ๋ฒˆํ˜ธ ๊ฒ€์ƒ‰

Paging Hardware with TLB

           logical address
                โ†“
               โ”Œโ”€โ”€โ”€โ”
               โ”‚ p โ”‚โ”€โ”€โ”€โ”€โ”
               โ””โ”€โ”€โ”€โ”˜    โ”‚
                        โ†“
                     โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”
               โ”Œโ”€โ”€โ”€โ”€โ–ถโ”‚ TLB  โ”‚โ”€โ”€โ”€โ”€โ”
               โ”‚     โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ†“
               โ”‚            โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
               โ”‚            โ”‚ Page Table โ”‚
               โ”‚            โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
               โ†“                    โ†“
             โ”Œโ”€โ”€โ”€โ”€โ”             โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”
             โ”‚  d โ”‚โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ถโ”‚ + d  โ”‚
             โ””โ”€โ”€โ”€โ”€โ”˜             โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                โ†“
                         Physical Memory

Effective Access Time

  • ์—ฐ๊ด€ ๋ฉ”๋ชจ๋ฆฌ(associative memory) ํƒ์ƒ‰ ์‹œ๊ฐ„ = ฮฑ time unit

  • ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ์‹œ๊ฐ„ = ฮฒ

  • Hit ratio = ฮต (์—ฐ๊ด€ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ฐพ์€ ๋น„์œจ)

  • ์œ ํšจ ์ ‘๊ทผ ์‹œ๊ฐ„ (EAT: Effective Access Time)

<ํžˆํŠธ ์‹œ> + <๋ฏธ์Šค ์‹œ>
EAT = (ฮฑ + ฮฒ) * ฮต + (ฮฑ + 2ฮฒ) * (1 โˆ’ ฮต)
    = ฮฑ + (2 โˆ’ ฮต)ฮฒ

Memory Protection

  • ๋ฉ”๋ชจ๋ฆฌ ๋ณดํ˜ธ๋Š” ๊ฐ frame์— ๋ณดํ˜ธ ๋น„ํŠธ(protection bit)๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ ๊ตฌํ˜„
  • Valid-invalid ๋น„ํŠธ: ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์˜ ๊ฐ ํ•ญ๋ชฉ์— ํฌํ•จ
    • "valid": ํ•ด๋‹น ํŽ˜์ด์ง€๊ฐ€ ์œ ํšจ (์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ page)
      • ํ”„๋กœ์„ธ์Šค์˜ ๋…ผ๋ฆฌ ์ฃผ์†Œ ๊ณต๊ฐ„์— ํฌํ•จ๋จ
    • "invalid": ์ ‘๊ทผ์ด ํ—ˆ์šฉ๋˜์ง€ ์•Š์Œ (ํ•ด๋‹น ์ฃผ์†Œ๋Š” ๋ถˆ๋ฒ•)

Valid (v) or Invalid (i) Bit in a Page Table

  • ํŽ˜์ด์ง€ ํฌ๊ธฐ = 2KB
  • ์ฃผ์†Œ ๋ฒ”์œ„: 0 ~ 10468๋งŒ ์‚ฌ์šฉ
  • ์ด 6๊ฐœ ํŽ˜์ด์ง€๋งŒ ์‚ฌ์šฉ๋จ (10469 / 2048 = ์•ฝ 6)
  • ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์—์„œ๋Š” 6๊ฐœ์˜ ํ•ญ๋ชฉ๋งŒ ์œ ํšจ
  • PTLR(Page Table Length Register)์„ ์‚ฌ์šฉํ•˜์—ฌ valid-invalid bit ๋Œ€์‹  ์œ ํšจ์„ฑ์„ ๊ฒ€์‚ฌํ•  ์ˆ˜ ์žˆ์Œ
logical address โ†’ 00000
                โ†’ frame number
                โ†’ valid-invalid bit

ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”:
page 0 โ†’ valid
page 1 โ†’ valid
...
page 4 โ†’ valid
page 5 โ†’ valid
page 6 ์ด์ƒ โ†’ invalid

Shared Pages

  • Shared code

    • ์ฝ๊ธฐ ์ „์šฉ (read-only, ์žฌ์ง„์ž… ๊ฐ€๋Šฅ) ์ฝ”๋“œ
    • ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ณต์œ  (์˜ˆ: ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ, ์ปดํŒŒ์ผ๋Ÿฌ, ์œˆ๋„์šฐ ์‹œ์Šคํ…œ)
    • ๊ณต์œ  ์ฝ”๋“œ๋Š” ๋…ผ๋ฆฌ ์ฃผ์†Œ ๊ณต๊ฐ„์˜ ๋™์ผํ•œ ์œ„์น˜์— ์žˆ์–ด์•ผ ํ•จ
      • ๊ณต์œ  ์ฝ”๋“œ์—์„œ์˜ ์ž๊ธฐ ์ฐธ์กฐ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•˜๊ธฐ ์œ„ํ•จ
  • Private code and data

    • ๊ฐ ํ”„๋กœ์„ธ์Šค๋Š” ๊ฐœ๋ณ„ ๋ณต์‚ฌ๋ณธ์„ ์œ ์ง€
    • ํ•ด๋‹น ์ฝ”๋“œ๋Š” ๋…ผ๋ฆฌ ์ฃผ์†Œ ๊ณต๊ฐ„ ๋‚ด ์ž„์˜์˜ ์œ„์น˜์— ์กด์žฌํ•  ์ˆ˜ ์žˆ์Œ

Shared Pages Example

  • ์—๋””ํ„ฐ๋Š” 3๊ฐœ์˜ ํŽ˜์ด์ง€๋กœ ๊ตฌ์„ฑ (ed1, ed2, ed3)
  • ed1~ed3๋Š” ๊ณต์œ  ์ฝ”๋“œ
  • ๋‚˜๋จธ์ง€ ๋ฐ์ดํ„ฐ ํŽ˜์ด์ง€๋Š” ํ”„๋กœ์„ธ์Šค ๋ณ„๋กœ ๋ถ„๋ฆฌ๋จ
process P1:
  page table โ†’ ed1
              ed2
              ed3
              data1
              data2

process P2:
  page table โ†’ ed1
              ed2
              ed3
              data3

process P3:
  page table โ†’ ed1
              ed2
              ed3
              ...

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

Address Binding

  • ๋ชจ๋“  instruction๊ณผ ํ•จ์ˆ˜ ์ด๋ฆ„์€ ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง
  • CPU๋Š” instruction์„ fetch ๋ฐ ์‹คํ–‰ํ•˜๋ฉฐ ์ฃผ์†Œ ์ •๋ณด๋ฅผ ํ•„์š”๋กœ ํ•จ
  • ์ฃผ์†Œ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์ฃผ์ฒด๋Š” compiler

Binding ์ข…๋ฅ˜

์‹œ์ ์„ค๋ช…
Compile Timephysical address๋ฅผ ์ง์ ‘ ์ฝ”๋“œ์— ์‚ฝ์ž… (kernel ์ดํ›„ ์ฃผ์†Œ๋ถ€ํ„ฐ)
Load Time๋กœ๋”ฉ ์‹œ physical address๋ฅผ ์‚ฝ์ž…
Execution Time์‹คํ–‰ ์‹œ ์ฃผ์†Œ ๋ณ€ํ™˜ ์ˆ˜ํ–‰ (๊ฐ€์žฅ ์œ ์—ฐ, modern OS์—์„œ ์‚ฌ์šฉ)
  • Execution Time Binding์—์„œ๋Š” ์ฃผ์†Œ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ณ€ํ™˜
  • ์ด ์ž‘์—…์„ ๋น ๋ฅด๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด MMU (Memory Management Unit) ์‚ฌ์šฉ

MMU์˜ ์—ญํ• 

  • Logical Address + Base Address = Physical Address
  • ๋ง์…ˆ ์—ฐ์‚ฐ๋งŒ์œผ๋กœ ์ฒ˜๋ฆฌ๋จ (์˜ค๋ฒ„ํ—ค๋“œ ๋‚ฎ์Œ)
  • Protection: limit register๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ ‘๊ทผ ๋ฒ”์œ„ ์ œํ•œ

๋ฉ”๋ชจ๋ฆฌ ๋‹จํŽธํ™” ๋ฌธ์ œ์™€ Paging ๋„์ž…

๋ฌธ์ œ: External Fragmentation

  • ์—ฐ์† ํ• ๋‹น ๋ฐฉ์‹์—์„œ๋Š” ๋นˆ ๊ณต๊ฐ„์ด ํŒŒํŽธํ™”๋˜์–ด ์‚ฌ์šฉ ๋ถˆ๊ฐ€
  • compaction์€ ์„ฑ๋Šฅ ๋น„์šฉ ํผ โ†’ ๋น„ํ˜„์‹ค์ 

ํ•ด๊ฒฐ: Paging

  • Address space์™€ memory๋ฅผ ๋™์ผํ•œ ํฌ๊ธฐ(page, frame)๋กœ ๋ถ„ํ• 
  • page๋ฅผ ๋นˆ frame ์•„๋ฌด ๊ณณ์—๋‚˜ ํ• ๋‹น
  • Internal Fragmentation: ๋งˆ์ง€๋ง‰ page์—์„œ๋งŒ ๋‚ญ๋น„ ๋ฐœ์ƒ โ†’ ๋ฌด์‹œํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜์ค€

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

  • Logical Address = Page Number + Offset
  • ๋ณ€ํ™˜: page number โ†’ frame number (via page table), offset ๊ทธ๋Œ€๋กœ ์œ ์ง€
  • ์ฃผ์†Œ ๋ณ€ํ™˜์‹œ paging table ์‚ฌ์šฉ (process๋งˆ๋‹ค ํ•˜๋‚˜์”ฉ ์กด์žฌ)

๋น„ํŠธ ๋ถ„ํ• ์„ ํ†ตํ•œ ํšจ์œจ์  ์ฃผ์†Œ ๋ณ€ํ™˜

  • Page size = 2^n ์ผ ๋•Œ
    • ํ•˜์œ„ n๋น„ํŠธ โ†’ offset
    • ์ƒ์œ„ ๋น„ํŠธ โ†’ page number
  • ๋‚˜๋ˆ—์…ˆ ๋ถˆํ•„์š”, bit ๋ถ„ํ• ๋กœ ์—ฐ์‚ฐ ๊ฐ€๋Šฅ

TLB (Translation Lookaside Buffer)

TLB๋ž€?

  • ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ” ์ค‘ ์ผ๋ถ€๋ฅผ cache์— ์ €์žฅ
  • Associative Memory ์‚ฌ์šฉ
  • TLB hit ์‹œ: ๋น ๋ฅธ ์ฃผ์†Œ ๋ณ€ํ™˜ ๊ฐ€๋Šฅ (1 memory access)
  • TLB miss ์‹œ: page table ์ ‘๊ทผ ํ•„์š” (2 memory access)

Context-Switch์™€ TLB

  • ํ”„๋กœ์„ธ์Šค ์ „ํ™˜ ์‹œ TLB๋Š” invalidate๋˜์–ด์•ผ ํ•จ
  • ์ดˆ๊ธฐ์—๋Š” miss ๋ฐœ์ƒํ•˜์ง€๋งŒ locality ๋•๋ถ„์— ๊ธˆ๋ฐฉ hit ์ฆ๊ฐ€

Effective Access Time ๊ณ„์‚ฐ

  • hit ratio: ( \epsilon \ )
  • TLB hit: ( \alpha \ ) (access time)
  • Memory access: ( \beta \ )
  • EAT = ( \epsilon (\alpha + \beta) + (1 - \epsilon)(\alpha + 2\beta) )

TLB์˜ ์žฅ์ 

  • Locality ๋•๋ถ„์— hit ratio ๋งค์šฐ ๋†’์Œ (ex: 1023/1024)
  • ์„ฑ๋Šฅ ํ–ฅ์ƒ์— ๋งค์šฐ ํšจ๊ณผ์ 

Protection

  • Valid / Invalid bit ์‚ฌ์šฉ
  • ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ๋ฒ”์œ„๋งŒ valid๋กœ ์„ค์ •

Shared Paging

๊ณต์œ ์˜ ํ•„์š”์„ฑ

  • text section ๋“ฑ์€ read-only์ด๋ฏ€๋กœ ๊ณต์œ  ๊ฐ€๋Šฅ
  • ์„œ๋กœ ๋‹ค๋ฅธ process๋ผ๋„ ๊ฐ™์€ frame์„ ๊ฐ€๋ฆฌํ‚ค๊ฒŒ ์„ค์ • ๊ฐ€๋Šฅ
  • ๋ฉ”๋ชจ๋ฆฌ ์ ˆ์•ฝ ํšจ๊ณผ ํผ

Paging์˜ ๊ณต์œ  ๊ตฌ์กฐ

  • process๋ณ„๋กœ ๋…๋ฆฝ๋œ page table ์œ ์ง€
  • text section์˜ entry๋งŒ ๋™์ผ frame ๋ฒˆํ˜ธ๋ฅผ ๊ฐ€๋ฆฌํ‚ด

๊ฒฐ๋ก 

  • Paging์€ ํšจ์œจ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ๊ฐ€๋Šฅ์ผ€ ํ•˜๋Š” ํ•ต์‹ฌ ๊ธฐ๋ฒ•
  • Overhead((\alpha))๋Š” ์กด์žฌํ•˜์ง€๋งŒ, ๋ฉ”๋ชจ๋ฆฌ ํšจ์œจ๊ณผ ๊ณต์œ  ๊ตฌ์กฐ๋กœ ์ธํ•ด ์ด๋ฅผ ์ƒ์‡„ํ•จ
  • TLB, ๋น„ํŠธ ๋ถ„ํ• , shared paging ๋“ฑ์œผ๋กœ ์„ฑ๋Šฅ ์ตœ์ ํ™” ๊ฐ€๋Šฅ
์ตœ๊ทผ ์ˆ˜์ •:: 25. 6. 19. ์˜คํ›„ 8:26
Contributors: kmbzn
Prev
7. Deadlocks
Next
9. Memory Management(2)

BUILT WITH

CloudflareNode.jsGitHubGitVue.jsJavaScriptVSCodenpm

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