18
System Operating http://www.ict.pyo.nu.ac.th/nuttapons/OS.html Worrakit Sanpote 2 Memory Management 3 1. Internal Memory 2. Main Memory 3. Secondary Memory Memory Management āļ›āļĢāļ°āđ€āļ āļ—āļ‚āļ­āļ‡āļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāđāļē 4 Memory Management Internal Memory Main Memory Secondary Memory āļ āļēāļžāđāļŠāļ”āļ‡āļāļēāļĢāđ€āļ„āļĨāļ·āđˆāļ­āļ™āļĒāđ‰āļēāļĒāļ‚āđ‰āļ­āļĄāļđāļĨāļ‚āļ­āļ‡āļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāđāļēāļ›āļĢāļ°āđ€āļ āļ—āļ•āđˆāļēāļ‡āđ†

6 Memory Management 2 2552.ppt

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 6 Memory Management 2 2552.ppt

SystemOperating

http://www.ict.pyo.nu.ac.th/nuttapons/OS.html

Worrakit Sanpote

2

MemoryManagement

3

1. Internal Memory2. Main Memory3. Secondary Memory

Memory Management

āļ›āļĢāļ°āđ€āļ āļ—āļ‚āļ­āļ‡āļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāđāļē

4

Memory Management

Internal Memory

Main Memory

Secondary Memory

āļ āļēāļžāđāļŠāļ”āļ‡āļāļēāļĢāđ€āļ„āļĨāļ·āđˆāļ­āļ™āļĒāļēāđ‰āļĒāļ‚āļ­āđ‰āļĄāļđāļĨāļ‚āļ­āļ‡āļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļēāđāļ›āļĢāļ°āđ€āļ āļ—āļ•āđˆāļēāļ‡āđ†

Page 2: 6 Memory Management 2 2552.ppt

5

āđ‚āļ›āļĢāđāļāļĢāļĄāļˆāļ°āļ•āļ­āđ‰āļ‡āļ­āļĒāļđāđƒāđˆāļ™ memory āļāđˆāļ­āļ™āļ—āļĩāđˆāļˆāļ°āđ€āļĢāļīāđˆāļĄāļ—āļēāđāļ‡āļēāļ™āđ„āļ”āđ‰ āļŦāļĨāļēāļĒāđ†āđ‚āļ›āļĢāđāļāļĢāļĄāļ—āļēāđāļ‡āļēāļ™āļžāļĢāđ‰āļ­āļĄāļāļ™āļą āļŦāļĨāļēāļĒāđ†āđ‚āļ›āļĢāđāļāļĢāļĄāļ•āļ­āđ‰āļ‡āļ­āļĒāļđāđƒāđˆāļ™

memory memory āļĄāļĩāļ‚āļ™āļēāļ”āļˆāļēāđāļāļ”āļą -- āļ—āļēāđāļ­āļĒāļēāđˆāļ‡āđ„āļĢāļˆāļķāļ‡āļˆāļ°āđƒāļŦāļŦāđ‰āļĨāļēāļĒāđ†āđ‚āļ›āļĢāđāļāļĢāļĄāļ—āļēāđāļ‡āļēāļ™āļžāļĢāđ‰āļ­āļĄāļāļ™āļąāđ„āļ”āļ­āđ‰āļĒāļēāđˆāļ‡āļĄāļĩāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāļĄāļēāļāļ—āļĩāđˆāļŠāļļāļ”

Protection: āļāļēāļĢāļ›āđ‰āļ­āļ‡āļāļ™āļąāđ„āļĄāđˆāđƒāļŦāđ‚āđ‰āļ›āļĢāđāļāļĢāļĄāļ—āļĩāđˆāļ—āļēāđāļ‡āļēāļ™āļ­āļĒāļđāļĢāđˆāļšāļāļ§āļ™āļāļ™āļąāđāļĨāļ°āļāļ™āļą

Memory Management

āļ›āļąāļāļŦāļē ?

6

1. āļāļēāļĢāļĒāļēāđ‰āļĒāļ•āļēāđāđāļŦāļ™āđˆāļ‡ (Relocation)2. āļāļēāļĢāļ›āđ‰āļ­āļ‡āļāļ™āļąāļžāļ·āđ‰āļ™āļ—āļĩāđˆ (Protection)

3. āļāļēāļĢāđƒāļŠāļžāđ‰āļ·āđ‰āļ™āļ—āļĩāđˆāļĢāđˆāļ§āļĄāļāļ™āļą (Sharing)4. āļāļēāļĢāļˆāļ”āļąāļāļēāļĢāđāļšāđˆāļ‡āđ‚āļ›āļĢāđāļāļĢāļĄāļĒāļ­āđˆāļĒ (Logical Organization)5. āļāļēāļĢāļˆāļ”āļąāļāļēāļĢāđāļšāđˆāļ‡āļ—āļēāļ‡āļāļēāļĒāļ āļēāļž (Physical Organization)

Memory Management

āļāļĢāļ°āļšāļ§āļ™āļāļēāļĢāđƒāļ™āļāļēāļĢāļˆāļąāļ”āļāļēāļĢāļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāđāļēāļŦāļĨāļāļą

7

Memory Management

1. āļāļēāļĢāļĒāđ‰āļēāļĒāļ•āļēāđāđāļŦāļ™āđˆāļ‡ (Relocation)

āđ€āļ™āļ·āđˆāļ­āļ‡āļˆāļēāļāđ‚āļ›āļĢāđ€āļ‹āļŠāļ•āđˆāļēāļ‡āđ† āļˆāļ°āđƒāļŠāļŦāđ‰āļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļēāđāļŦāļĨāļāļąāđƒāļ™āļāļēāļĢāļ—āļēāđāļ‡āļēāļ™āļĢāđˆāļ§āļĄāļāļ™āļą āļĢāļ°āļšāļšāļ›āļāļīāļšāļ•āļąāļīāļāļēāļĢāļˆāļ°āļĄāļĩāļŦāļ™āļēāđ‰āļ—āļĩāđˆāđƒāļ™āļāļēāļĢāļ”āļđāđāļĨāļāļēāļĢāļŠāļĨāļšāļąāļāļēāļĢāļ—āļēāđāļ‡āļēāļ™ (swap) āļ‚āļ­āļ‡āđ‚āļ›āļĢāđ€āļ‹āļŠ āđ‚āļ”āļĒāļĄāļĩāļāļēāļĢāļāļēāđāļŦāļ™āļ” address āđƒāļŦāļāđ‰āļšāļąāđ‚āļ›āļĢāđ€āļ‹āļŠāđ€āļžāļ·āđˆāļ­āđƒāļŠāđƒāđ‰āļ™āļāļēāļĢāđāļ›āļĨāļ‡āļ„āđˆāļēāđƒāļ™āļ•āļēāđāđāļŦāļ™āđˆāļ‡āļ‚āļ­āļ‡āļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļēāđāļ—āļĩāđˆāļ­āļēāđ‰āļ‡āļ­āļīāļ‡āđƒāļ™āđ‚āļ›āļĢāđ€āļ‹āļŠ āđ„āļ›āđ€āļ›āđ‡āļ™āļ•āļēāđāđāļŦāļ™āđˆāļ‡āļˆāļĢāļīāļ‡āļšāļ™āļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļēāđāļŦāļĨāļāļą

8

Physical address : āđ€āļ›āđ‡āļ™ address āļ—āļĩāđˆāđƒāļŠāļ­āđ‰āļēāđ‰āļ‡āļ–āļķāļ‡āļ‚āļ­āđ‰āļĄāļđāļĨāļŦāļĢāļ·āļ­āļ„āļēāđāļŠāļąāļ‡āđˆāđƒāļ™ memory āļˆāļĢāļīāļ‡ Logical address : āđ€āļ›āđ‡āļ™ address āļ—āļĩāđˆāđƒāļŠāļ­āđ‰āļēāđ‰āļ‡āļ–āļķāļ‡āļ‚āļ­āđ‰āļĄāļđāļĨāļŦāļĢāļ·āļ­āļ„āļēāđāļŠāļąāļ‡āđˆāđƒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄ āđ‚āļ›āļĢāđāļāļĢāļĄāļˆāļ°āļ—āļēāđāļ‡āļēāļ™āđ„āļ”āđ€āđ‰āļĄāļ·āđˆāļ­ Logical address āļˆāļ°āļ–āļđāļāđāļ›āļĨāļ‡āđƒāļŦ āđ‰āđ€āļ›āđ‡āļ™ physical address

Physical & Logical Address

Memory Management

Page 3: 6 Memory Management 2 2552.ppt

9

Memory Management

2. āļāļēāļĢāļ›āđ‰āļ­āļ‡āļāļ™āļąāļžāļ·āļ™āđ‰āļ—āļĩ āđˆ(Protection)

āļĢāļ°āļšāļšāļ„āļ§āļĢāļĄāļĩāļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āđƒāļ™āļāļēāļĢāļ›āđ‰āļ­āļ‡āļāļąāļ™āđ„āļĄāđˆāđƒāļŦāđ‰āđ‚āļ›āļĢāđ€āļ‹āļŠāđāļ•āđˆāļĨāļ°āļ‡āļēāļ™āļ–āļđāļāļĢāļšāļāļ§āļ™āļˆāļēāļāđ‚āļ›āļĢāđ€āļ‹āļŠāļ­āļ·āđˆāļ™āđ† āđ‚āļ”āļĒāļāļēāļĢāđ„āļĄāđˆāļ­āļ™āļļāļāļēāļ•āđƒāļŦāđ‰āđ‚āļ›āļĢāđ€āļ‹āļŠāļ­āļ·āđˆāļ™āđ€āļĢāļĩāļĒāļāđƒāļŠāļžāđ‰āļ·āđ‰āļ™āļ—āļĩāđˆāļ‚āļ­āļ‡āļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāđāļēāļŦāļĨāļąāļ āļ‹āļķāđˆ āļ‡āļˆāđāļē āđ€ āļ›āđ‡āļ™āļˆāļ°āļ•āđ‰āļ­āļ‡āđƒāļŠāđ‰āļ§āļī āļ˜āļĩāļ āļēāļĢāļĒāđ‰āļēāļĒāļ•āđāļēāđāļŦāļ™āđˆāļ‡ (relocation)

10

Memory Management

3. āļāļēāļĢāđƒāļŠāđ‰āļžāļ·āļ™āđ‰āļ—āļĩāļĢāđˆāđˆāļ§āļĄāļāļ™āļą (Sharing)

āļāļēāļĢāļ—āļĩāđˆāļ­āļ™āļļāļāļēāļ•āđƒāļŦāđ‚āđ‰āļ›āļĢāđ€āļ‹āļŠāļŦāļĨāļēāļĒāđ† āļ•āļ§āļąāļĄāļēāđƒāļŠāļžāđ‰āļ·āđ‰āļ™āļ—āļĩāđˆāļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļēāđāđ€āļ”āļĩāļĒāļ§āļāļ™āļąāđ„āļ” āđ‰āđ‚āļ”āļĒāļĢāļ°āļšāļšāļˆāļ”āļąāļāļēāļĢāļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļēāđāļˆāļ°āļ•āļ­āđ‰āļ‡āļ­āļ™āļļāļāļēāļ•āđƒāļŦāļ•āđ‰āļ§āļąāļ„āļ§āļšāļ„āļļāļĄ āļŠāļēāļĄāļēāļĢāļ–āđ€āļ‚āļēāđ‰āļ–āļķāļ‡āļžāļ·āđ‰āļ™āļ—āļĩāđˆāļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļēāđāļ—āļĩāđˆāđ€āļ›āđ‡āļ™āļŠāđˆāļ§āļ™āļ—āļĩāđˆāđƒāļŠāļĢāđ‰āđˆāļ§āļĄāļāļ™āļąāđ„āļ” āđ‰āđ‚āļ”āļĒāđ„āļĄāđˆāļ•āļ­āđ‰āļ‡āđƒāļŠāļ§āđ‰āļ˜āļīāļĩāļāļēāļĢāļ›āđ‰āļ­āļ‡āļāļ™āļąāļžāļ·āđ‰āļ™āļ—āļĩāđˆ

11

Memory Management

4. āļāļēāļĢāļˆāļ”āļąāļāļēāļĢāđāļšāđˆāļ‡āđ‚āļ›āļĢāđāļāļĢāļĄāļĒāđˆāļ­āļĒ (Logical Organization)

āđ‚āļ›āļĢāđāļāļĢāļĄāļŠāđˆāļ§āļ™āđƒāļŦāļāđˆāļˆāļ°āļ–āļđāļāđāļšāđˆāļ‡āļ­āļ­āļāđ€āļ›āđ‡āļ™āđ‚āļ›āļĢāđāļāļĢāļĄāļĒāļ­āđˆāļĒāđ† āļŦāļĢāļ·āļ­ moduleāđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āļŠāļēāļĄāļēāļĢāļ–āđƒāļŠāļ‡āđ‰āļēāļ™āļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļēāđāđ„āļ”āļ­āđ‰āļĒāđˆāļēāļ‡āļĄāļĩāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļž āđ‚āļ”āļĒāļĄāļĩāļ§āļīāļ˜āļĩ āļ„āļ·āļ­ āļˆāļ°āđ„āļĄāđˆāļ™āļēāđāđ‚āļ›āļĢāđāļāļĢāļĄāļĒāļ­āđˆāļĒāļĨāļ‡āļŠāļđāđˆāļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļēāđāļžāļĢāđ‰āļ­āļĄāļāļšāļąāđ‚āļ›āļĢāđāļāļĢāļĄāļŦāļĨāļāļą āđāļ•āđˆāļˆāļ°āļ™āļēāđāļĨāļ‡āđ€āļĄāļ·āđˆāļ­āļĄāļĩāļāļēāļĢāđ€āļĢāļĩāļĒāļāđƒāļŠāļ‡āđ‰āļēāļ™āđ€āļ—āđˆāļēāļ™āļąāđ‰āļ™

12

āļĨāļ”āļāļēāļĢāļŠāļīāđ‰āļ™āđ€āļ›āļĨāļ·āļ­āļ‡āļžāļ·āđ‰āļ™āļ—āļĩāđˆāļ‚āļ­āļ‡āļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļēāđ āđ‚āļ”āļĒāđ‚āļ›āļĢāđāļāļĢāļĄāļĒāļ­āđˆāļĒāļ—āļĩāđˆāđ„āļĄāđˆāđ„āļ”āđ‰āđƒāļŠāļ‡āđ‰āļēāļ™ āļˆāļ°āđ„āļĄāđˆāļŠāļēāļĄāļēāļĢāļ–āļĨāļ‡āļŠāļđāđˆāļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļēāđāđ„āļ”āđ‰ āđ‚āļ›āļĢāđāļāļĢāļĄāļĒāļ­āđˆāļĒāđāļ•āđˆāļĨāļ°āļ•āļ§āļąāļŠāļēāļĄāļēāļĢāļ–āļ„āļ­āļĄāđ„āļžāļĨāđāđŒāļĒāļāļāļ™āļąāđ„āļ”āđ‰ āđ‚āļ›āļĢāđāļāļĢāļĄāļĒāļ­āđˆāļĒāđāļ•āđˆāļĨāļ°āļ•āļ§āļąāļŠāļēāļĄāļēāļĢāļ–āļĄāļĩāļĢāļ°āļ”āļšāļąāļāļēāļĢāļ›āđ‰āļ­āļ‡āļāļ™āļąāļ—āļĩāđˆāđāļ•āļāļ•āđˆāļēāļ‡āļāļ™āļąāđ„āļ”āđ‰ āđ‚āļ›āļĢāđāļāļĢāļĄāļŦāļĨāļāļąāļŠāļēāļĄāļēāļĢāļ–āđ€āļĢāļĩāļĒāļāđƒāļŠāđ‚āđ‰āļ›āļĢāđāļāļĢāļĄāļĒāļ­āđˆāļĒ āđ€āļŦāļĨāđˆāļēāļ™āļĩāđ‰āļĢāđˆāļ§āļĄāļāļ™āļąāđ„āļ”āđ‰

āļ›āļĢāļ°āđ‚āļĒāļŠāļ™āđŒāļ‚āļ­āļ‡āļ§āļ˜āļīāļĩāļāļēāļĢāļˆāļ”āļąāļāļēāļĢāđ‚āļ›āļĢāđāļāļĢāļĄāļĒāđˆāļ­āļĒ

Memory Management

Page 4: 6 Memory Management 2 2552.ppt

13

Memory Management

5. āļāļēāļĢāļˆāļ”āļąāļāļēāļĢāđāļšāđˆāļ‡āļ—āļēāļ‡āļāļēāļĒāļ āļēāļž (Physical Organization)

āļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļēāđāļŦāļĨāļāļąāļ­āļēāļˆāļĄāļĩāđ„āļĄāđˆāđ€āļžāļĩāļĒāļ‡āļžāļ­āļŠāđāļēāļŦāļĢāļąāļšāđ‚āļ›āļĢāđāļāļĢāļĄāļ™āļąāđ‰āļ™ āļŠāđˆāļ‡āļœāļĨāđƒāļŦāđ‰āļœāļđāđ€āđ‰āļ‚āļĩāļĒāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāļˆāļ°āļ•āđ‰āļ­āļ‡āđƒāļŠāđ‰āļ§āļīāļ˜āļĩāļāļēāļĢāđāļšāđˆāļ‡āļŠāđˆāļ§āļ™ āđāļĨāļ°āļˆāļēāđāđ€āļ›āđ‡āļ™āļˆāļ°āļ•āđ‰āļ­āļ‡āļĄāļĩāļāļēāļĢāļ™āđāļēāļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļēāđāļŠāļēāđāļĢāļ­āļ‡āļ—āļĩāđˆāļĄāļĩāļāļēāļĢāđ€āļ‚āļēāđ‰āļ–āļķāļ‡āļ‚āļ­āđ‰āļĄāļđāļĨāđ„āļ”āļŠāđ‰āļēāđ‰ āđāļ•āđˆāļĄāļĩāļ„āļ§āļēāļĄāļˆāļļāļ›āļĢāļīāļĄāļēāļ“āļĄāļēāļ āđ€āļ‚āļēāđ‰āļĄāļēāđƒāļŠāđ€āđ‰āļāļšāđ‡āđ‚āļ›āļĢāđāļāļĢāļĄāļĒāļ­āđˆāļĒāļ—āļĩāđˆāđ„āļĄāđˆāļ„āđˆāļ­āļĒāđ„āļ”āđƒāđ‰āļŠāļ‡āđ‰āļēāļ™

14

Memory Management

sourceprogram

compiler or assembler

objectmodule

linkageeditor

loadmodule

loader

In-memoryBinary

Memoryimage

otherobject

module

systemlibrary

dynamically loaded

system library

Compile time

Load time

Execution time

āļ āļēāļžāđāļŠāļ”āļ‡āļ‚āļąāđ‰āļ™āļāļēāļĢāđƒāļ™āļāļēāļĢāļ”āļēāđāđ€āļ™āļīāļ™āļāļēāļĢāļ‚āļ­āļ‡āđ‚āļ›āļĢāđ€āļ‹āļŠ

15

Linking āđ€āļ›āđ‡āļ™āļāļēāļĢāļĢāļ§āļĄāđ‚āļ›āļĢāđāļāļĢāļĄ, libraries, āđāļĨāļ° data āđ€āļ‚āļēāđ‰āļ”āđ‰āļ§āļĒāļāļąāļ™ āđ€ āļ›āđ‡āļ™āđ‚āļ›āļĢāđāļāļĢāļĄāļ—āļĩāđˆāļŠāļĄāļšāļđāļĢāļ“āđŒ āļ‹āļķāđˆ āļ‡āļˆāļ°āļĄāļĩāļāļēāļĢāļŠāļĢāđ‰āļēāļ‡ logical address āđƒāļŦāļāđ‰āļšāļąāđ‚āļ›āļĢāđāļāļĢāļĄ Loading āđ€āļ›āđ‡āļ™āļāļēāļĢāļ™āļēāđāđ‚āļ›āļĢāđāļāļĢāļĄāļĨāļ‡āļŠāļđāđˆ memory āļāđˆāļ­āļ™āļ—āļĩāđˆāđ‚āļ›āļĢāđāļāļĢāļĄāļˆāļ°āđ€āļĢāļīāđˆāļĄāļ—āļēāđāļ‡āļēāļ™ āļ‹āļķāđˆāļ‡āļˆāļ°āļ•āļ­āđ‰āļ‡āđāļ›āļĨāļ‡ logical address āđƒāļŦāđ‰āđ€āļ›āđ‡āļ™ physical address

Linking & Loading

Memory Management

16

Compile time : address āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄāļˆāļ°āļ–āļđāļāļāļēāđāļŦāļ™āļ”āđ„āļ§āļ•āđ‰āļēāļĒāļ•āļ§āļąāđƒāļŦāđ€āđ‰āļ›āđ‡āļ™ physical address āļ•āļ­āđ‰āļ‡āļĄāļĩāļāļēāļĢ compileāđƒāļŦāļĄāđˆāļ—āļļāļāļ„āļĢāļąāđ‰āļ‡āļŦāļēāļāļ•āļ­āđ‰āļ‡āļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™ address āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄāđƒāļ™ memory Load time : address āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄāļˆāļ°āļ–āļđāļāļ„āļēāđāļ™āļ§āļ“āđƒāļŦāđ€āđ‰āļ›āđ‡āļ™

physical address āđ€āļĄāļ·āđˆāļ­āđ‚āļ›āļĢāđāļāļĢāļĄāļ–āļđāļ load āļĨāļ‡ memory

Address-binding

Memory Management

Page 5: 6 Memory Management 2 2552.ppt

17

Execution time: āđ€āļāļīāļ”āļ‚āļķāđ‰āļ™āļ‚āļ“āļ°āļ—āļĩāđˆāđ‚āļ›āļĢāđāļāļĢāļĄāļāļēāđāļĨāļ‡āļąāļ—āļēāđāļ‡āļēāļ™āļ­āļĒāļđ āđˆāđ€āļĄāļ·āđˆāļ­āļ•āļ­āđ‰āļ‡āļāļēāļĢāđƒāļŠāļ‡āđ‰āļēāļ™āļˆāļēāļ library āđƒāļ” āļāđ‡āļˆāļ°āđƒāļŠāļāđ‰āļēāļĢāđ‚āļŦāļĨāļ”āđāļšāļš Dynamic Loading āđ‚āļ”āļĒāļˆāļ°āđ‚āļŦāļĨāļ”āđ€āļ‰āļžāļēāļ° library āļ—āļĩāđˆāļ•āļ­āđ‰āļ‡āļāļēāļĢāđƒāļŠāļ‡āđ‰āļēāļ™āđ€āļ—āđˆāļēāļ™āļąāđ‰āļ™ āđ€āļ‚āļēāđ‰āļŠāļđāđˆāļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļēāđāļŦāļĨāļāļą

Address-binding

Memory Management

18

Libraries āļ—āļąāđ‰āļ‡āļŦāļĄāļ”āļˆāļ°āļĒāļ‡āļąāđ„āļĄāđˆāļ–āļđāļ loaded āļĨāļ‡ memory āļˆāļ™āļāļ§āļēāđˆāļĄāļ™āļąāļˆāļ°āļ–āļđāļāđ€āļĢāļĩāļĒāļāđƒāļŠāđ‰ āđ€āļŦāļĄāļēāļ°āļŠāļēāđāļŦāļĢāļąāļš libraries āļ—āļĩāđˆāļ–āļđāļāđ€āļĢāļĩāļĒāļāđƒāļŠāđ„āđ‰āļĄāđˆāļšāđˆāļ­āļĒ āđ‚āļ›āļĢāđāļāļĢāļĄāļˆāļ°āļĄāļĩāļ‚āļ™āļēāļ”āđ€āļĨāļāđ‡āļĨāļ‡āļĄāļēāļ āđ€āļ™āļ·āđˆāļ­āļ‡āļˆāļēāļāļˆāļ°āļĄāļĩāđ€āļ‰āļžāļēāļ°āļŠāđˆāļ§āļ™āļ—āļĩāđˆāđƒāļŠāļ‡āđ‰āļēāļ™āļšāđˆāļ­āļĒāđ† āđ€āļ—āđˆāļēāļ™āļąāđ‰āļ™

Dynamic Loading

Memory Management

19

Overlays

Memory Management

āđ‚āļ”āļĒāļ—āļąāļ§āđˆāđ„āļ›āđāļĨāļ§āđ‰ āđ‚āļ›āļĢāđāļāļĢāļĄāļ—āļĩāđˆāļ•āļ­āđ‰āļ‡āļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨ āļˆāļ°āļ•āļ­āđ‰āļ‡āļ–āļđāļāđ‚āļŦāļĨāļ”āđ€āļ‚āļēāđ‰āļŠāļđāđˆāļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļēāđāļŦāļĨāļāļą āļ™āļąāđˆāļ™āļ„āļ·āļ­ āđ‚āļ›āļĢāđāļāļĢāļĄāļˆāļ°āļ•āļ­āđ‰āļ‡āļĄāļĩāļ‚āļ™āļēāļ”āļ™āđ‰āļ­āļĒāļāļ§āļēāđˆāļŦāļĢāļ·āļ­āđ€āļ—āđˆāļēāļāļšāļąāļ‚āļ™āļēāļ”āļ‚āļ­āļ‡āļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļēāđāļĨāļšāļ”āļ§āđ‰āļĒāļŠāđˆāļ§āļ™āļ—āļĩāđˆāļĢāļ°āļšāļšāļ›āļāļīāļšāļ•āļąāļīāļāļēāļĢāđƒāļŠāđ‰ āđƒāļ™āļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāđāļē āļ‹āļķāđˆ āļ‡āļŦāļēāļāđ‚āļ›āļĢāđāļāļĢāļĄ āļ—āļĩāđˆ āļĄāļĩāļ‚āļ™āļēāļ”āđƒāļŦāļāđˆāļāļ§āđˆ āļēāļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāđāļēāļ•āđ‰āļ­āļ‡āļāļēāļĢāļˆāļ°āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨ āļˆāļ°āđƒāļŠāđ‰āļ§āļī āļ˜āļĩāļāļēāļĢ āļ‹āđ‰āļ­āļ™āļ—āļąāļš (Overlays) āđ‚āļ”āļĒāđ‚āļ›āļĢāđāļāļĢāļĄāļˆāļ°āļ–āļđāļāđāļšāđˆāļ‡āļ­āļ­āļāđ€āļ›āđ‡āļ™āļŠāđˆāļ§āļ™āļĒāļ­āđˆāļĒāļ—āļĩāđˆāđ€āļ›āđ‡āļ™āļ­āļīāļŠāļĢāļ°āļ•āđˆāļ­āļāļ™āļąāļŦāļĨāļēāļĒāđ† āļŠāđˆāļ§āļ™ āđāļĨāļ°āļˆāļ°āđ‚āļŦāļĨāļ”āļŠāđˆāļ§āļ™āļ—āļĩāđˆāļˆāļ°āđƒāļŠāđ€āđ‰āļ‚āļēāđ‰āļŠāļđāđˆāļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļēāđāļŦāļĨāļāļąāđ€āļ—āđˆāļēāļ™āļąāđ‰āļ™

20

Swapping

Memory Management

āđ€āļ™āļ·āđˆāļ­āļ‡āļˆāļēāļāļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāđāļēāļŦāļĨāļąāļāļĄāļĩāļ‚āļ™āļēāļ”āļˆāđāļēāļāļąāļ” āļšāļēāļ‡āļ„āļĢāļąāđ‰āļ‡āļĢāļ°āļšāļšāļˆāđāļēāđ€āļ›āđ‡āļ™āļˆāļ°āļ•āđ‰āļ­āļ‡āļ™āđāļēāļšāļēāļ‡āđ‚āļ›āļĢāđ€āļ‹āļŠāļ­āļ­āļāļˆāļēāļāļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāđāļēāļŦāļĨāļąāļ āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāđāļēāļŦāļĨāļąāļāļĄāļĩāļžāļ·āđ‰āļ™āļ—āļĩāđˆāļĄāļēāļāļžāļ­āļ—āļĩāđˆāļˆāļ°āđ‚āļŦāļĨāļ”āđ‚āļ›āļĢāđ€āļ‹āļŠāļ­āļ·āđˆāļ™āđ€āļ‚āđ‰āļēāļĄāļēāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨ

Page 6: 6 Memory Management 2 2552.ppt

21

Memory Management

āļĢāļ°āļšāļšāļ›āļāļīāļšāļąāļ•āļāļīāļēāļĢ

P1

P2Swap In

Swap Out

āļ āļēāļžāđāļŠāļ”āļ‡āļāļēāļĢāļŠāļšāļąāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļĢāļ°āļŦāļ§āļēāđˆāļ‡āļŠāļ­āļ‡āđ‚āļ›āļĢāđ€āļ‹āļŠ

Main MemorySecond Memory

22

1. Single Contiguous Memory Management

Memory Management

āļāļēāļĢāļˆāļąāļ”āļāļēāļĢāļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāđāļēāļŦāļĨāļāļąāđāļšāļšāļ•āđˆāļēāļ‡āđ†

2. Partitioned Memory Management

3. Page Memory Management

4. Segmentation Memory Management

23

Memory Management

Relocation with Base Register

24

āđƒāļŠāļˆāđ‰āļ”āļąāļāļēāļĢāļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļēāđāļŦāļĨāļāļąāļŠāļēāđāļŦāļĢāļąāļšāļĢāļ°āļšāļšāļ„āļ­āļĄāļžāļīāļ§āđ€āļ•āļ­āļĢāđŒāđƒāļ™āļĒāļ„āļļāđāļĢāļāđ† āļĄāļĩāļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļēāđāļŦāļĨāļāļąāļŠāļēāđāļŦāļĢāļąāļšāļ‡āļēāļ™āđ€āļ”āļĩāļĒāļ§ āđ‚āļ”āļĒāļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļēāđāļˆāļ°āļ–āļđāļāđāļšāđˆāļ‡āļ­āļ­āļāđ€āļ›āđ‡āļ™ 3 āļŠāđˆāļ§āļ™ āļ„āļ·āļ­

â€Ē āļŠāđˆāļ§āļ™āļ—āļĩ āđˆ1 āļŠāļēāđāļŦāļĢāļąāļšāļĢāļ°āļšāļšāļ›āļāļīāļšāļ•āļąāļīāļāļēāļĢâ€Ē āļŠāđˆāļ§āļ™āļ—āļĩ āđˆ2 āļŠāļēāđāļŦāļĢāļąāļš Execute āđ‚āļ›āļĢāđ€āļ‹āļŠâ€Ē āļŠāđˆāļ§āļ™āļ—āļĩ āđˆ3 āļŠāđˆāļ§āļ™āļ—āļĩāđˆāđ€āļŦāļĨāļ·āļ­āļˆāļēāļāļāļēāļĢāđƒāļŠāļ‡āđ‰āļēāļ™

1. Single Contiguous Memory Management

Memory Management

Page 7: 6 Memory Management 2 2552.ppt

25

Memory Management

āļĢāļ°āļšāļšāļ›āļāļīāļšāļąāļ•āļāļīāļēāļĢ

Main Memory

āļ āļēāļžāđāļŠāļ”āļ‡āļāļēāļĢāļˆāļ”āļąāļŠāļĢāļĢāļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļēāđāļŦāļĨāļāļąāļŠāļēāđāļŦāļĢāļąāļš 1 āļ‡āļēāļ™

āļŠāđˆāļ§āļ™āļ—āļĩāđˆ Execute āđ‚āļ›āļĢāđ€āļ‹āļŠ

āļŠāđˆāļ§āļ™āļ—āļĩāđˆāđ„āļĄāđˆāļ–āļāļđāđƒāļŠāļ‡āđ‰āļēāļ™

26

memory āļ–āļđāļāđāļšāđˆāļ‡āļ­āļ­āļāđ€āļ›āđ‡āļ™āļŠāđˆāļ§āļ™āđ† (partitions) OS āļˆāļ°āļˆāļ”āļąāļŠāļĢāļĢ partition āļ—āļĩāđˆāļĄāļĩāļ‚āļ™āļēāļ”āđƒāļŦāļāđˆāļžāļ­āđƒāļŦāļāđ‰āļšāļąāđāļ•āđˆāļĨāļ°āđ‚āļ›āļĢāđāļāļĢāļĄ OS āļˆāļ°āļĄāļĩāļ•āļēāļĢāļēāļ‡āļāļēāļĢāđƒāļŠāļ‡āđ‰āļēāļ™ partition āļšāļ­āļāļ§āļēāđˆāļ‚āļ“āļ°āļ™āļąāđ‰āļ™āļĄāļĩāđ‚āļ›āļĢāđāļāļĢāļĄāļ—āļēāđāļ‡āļēāļ™āļ­āļĒāļđāļŦāđˆāļĢāļ·āļ­āđ„āļĄāđˆ āļĄāļĩāļ—āļąāđ‰āļ‡āđāļšāļš fixed-partition āđāļĨāļ° dynamic-partition

2. Partitioned Memory Management

Memory Management

27

Memory āļˆāļ°āļ–āļđāļāđāļšāđˆāļ‡āđ„āļ§āļ•āđ‰āļēāļĒāļ•āļ§āļąāļ§āļēāđˆāļĄāļĩāļāļĩāđˆ partition āđāļĨāļ°āđāļ•āđˆāļĨāļ° partition āļĄāļĩāļ‚āļ™āļēāļ”āđ€āļ—āđˆāļēāđƒāļ” āļŦāļēāļāđ‚āļ›āļĢāđāļāļĢāļĄāļĄāļĩāļ‚āļ™āļēāļ”āđ€āļĨāļāđ‡āļāļ§āļēāđˆ partition āļˆāļ°āļ—āļēāđāđƒāļŦāļĄāđ‰āļĩ memoryāđ€āļŦāļĨāļ·āļ­ āļ‹āļķāđˆāļ‡āđ‚āļ›āļĢāđāļāļĢāļĄāļ­āļ·āđˆāļ™āđ„āļĄāđˆāļŠāļēāļĄāļēāļĢāļ–āđƒāļŠāđ„āđ‰āļ” āđ‰Internal Fragmentation

Fixed Partitioning

Memory Management

28

Memory Management

āļĢāļ°āļšāļšāļ›āļāļīāļšāļąāļ•āļāļīāļēāļĢ100K

300K

500K

0K

200K

400K

600K

50K

50K

75K

100K

100K

Internal Fragmentation

āļ āļēāļžāđāļŠāļ”āļ‡āļāļēāļĢāļˆāļ”āļąāļāļēāļĢāļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļēāđāļŦāļĨāļāļąāđāļšāļš Fix Partition

Page 8: 6 Memory Management 2 2552.ppt

29

āļ‚āļ™āļēāļ”āđāļĨāļ°āļˆāļēāđāļ™āļ§āļ™ partition āļ›āļĢāļąāļšāđ€āļ›āļĨāļĩāđˆāļĒāļ™āđ‚āļ”āļĒ OS āđ„āļ” āđ‰āļ‚āļķāđ‰āļ™āļ­āļĒāļđāļāđˆāļšāļąāļ‚āļ™āļēāļ”āđāļĨāļ°āļˆāļēāđāļ™āļ§āļ™āđ‚āļ›āļĢāđāļāļĢāļĄ

OS āļˆāļ°āļˆāļ”āļąāļŠāļĢāļĢ partition āļ—āļĩāđˆāļĄāļĩāļ‚āļ™āļēāļ”āļžāļ­āļ”āļĩāļāļšāļąāļ‚āļ™āļēāļ”āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄ āđ„āļĄāđˆāļ—āļēāđāđƒāļŦāđ€āđ‰āļāļīāļ” internal fragmentation āđ€āļāļīāļ” external fragmentation āļ—āļĩāđˆāļĄāļĩ block āđ€āļĨāļāđ‡āđ†āļāļĢāļ°āļˆāļēāļĒāđ€āļāļīāļ”āļ‚āļķāđ‰āļ™āđƒāļ™ memory āđāļ•āđˆāđ„āļĄāđˆāļŠāļēāļĄāļēāļĢāļ–āļˆāļ”āļąāļŠāļĢāļĢāđƒāļŦāđ‰āļāļšāļąāđ‚āļ›āļĢāđāļāļĢāļĄāđ„āļ” āđ‰āļ—āļąāđ‰āļ‡āđ† āļ—āļĩāđˆāļœāļĨāļĢāļ§āļĄāļ‚āļ­āļ‡ block āđ€āļĨāļāđ‡āđ† āļĄāļēāļāļāļ§āļēāđˆāļ‚āļ™āļēāļ”āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄ

Dynamic Partitioning

Memory Management

30

Memory Management

āļĢāļ°āļšāļšāļ›āļāļīāļšāļąāļ•āļāļīāļēāļĢ100K

300K

0K

200K

430K

600K

170K

50K

80K

100K

100K

External Fragmentation

350K

āļĢāļ°āļšāļšāļ›āļāļīāļšāļąāļ•āļāļīāļēāļĢ100K

300K

0K

200K

430K

600K

50K

80K

100K

350K

āļĢāļ°āļšāļšāļ›āļāļīāļšāļąāļ•āļāļīāļēāļĢ100K

300K

0K

200K

430K

600K

50K

80K

100K

350K

50K

100K

āļ āļēāļžāđāļŠāļ”āļ‡āļāļēāļĢāļˆāļ”āļąāļāļēāļĢāļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļēāđāļŦāļĨāļāļąāđāļšāļš Dynamic Partition

31

First-fit Best-fit Worst-fit

Placement Algorithm for Dynamic Partitioning

Memory Management

32

First-fit : āļˆāļ”āļąāļŠāļĢāļĢ block āđāļĢāļāļ—āļĩāđˆāđ€āļˆāļ­āļ§āļēāđˆāļĄāļĩāļ‚āļ™āļēāļ”āđƒāļŦāļāđˆāļžāļ­ āļŠāļēāđāļŦāļĢāļąāļšāđ‚āļ›āļĢāđāļāļĢāļĄ

Memory Management

āļĢāļ°āļšāļšāļ›āļāļīāļšāļąāļ•āļāļīāļēāļĢ16K

14K

5K

100K

124K

145K

13K

Process

Page 9: 6 Memory Management 2 2552.ppt

33

Best-fit : āļŠāđāļāļ™āļŦāļē block āļ—āļĩāđˆāļĄāļĩāļ‚āļ™āļēāļ”āđƒāļāļĨāđ€āđ‰āļ„āļĩāļĒāļ‡āļāļšāļąāļ‚āļ™āļēāļ”āļ—āļĩāđˆ āđ‚āļ›āļĢāđāļāļĢāļĄāļ•āļ­āđ‰āļ‡āļāļēāļĢāļĄāļēāļāļ—āļĩāđˆāļŠāļļāļ”

Memory Management

āļĢāļ°āļšāļšāļ›āļāļīāļšāļąāļ•āļāļīāļēāļĢ16K

14K

5K

100K

124K

145K

13K

Process

34

Worst-fit : āļŠāđāļāļ™āļŦāļē block āļ—āļĩāđˆāļĄāļĩāļ‚āļ™āļēāļ”āđƒāļŦāļāđˆāļ—āļĩāđˆāļŠāļļāļ”āđƒāļŦāļāđ‰āļšāļą āđ‚āļ›āļĢāđāļāļĢāļĄ

Memory Management

āļĢāļ°āļšāļšāļ›āļāļīāļšāļąāļ•āļāļīāļēāļĢ16K

14K

5K

100K

124K

145K

13K

Process

35

āļˆāļ”āļąāļāļēāļĢāđƒāļŠ āđ‰memory āđƒāļŦāļĄāđˆāđƒāļŦāđ‰āļžāļ·āđ‰āļ™āļ—āļĩāđˆāļ§āļēāđˆāļ‡āđƒāļ™ memory āļĄāļēāļ­āļĒāļđāđˆāļĢāļ§āļĄāļāļ™āļąāđ€āļ›āđ‡āļ™ block āļ‚āļ™āļēāļ”āđƒāļŦāļāđˆ

Compaction āđƒāļŠāđ„āđ‰āļ”āļāđ‰āļšāļą dynamic loading āđ€āļ—āđˆāļēāļ™āļąāđ‰āļ™ OS āđ€āļŠāļĩāļĒāđ€āļ§āļĨāļēāđƒāļ™āļāļēāļĢāļ—āļēāđ compaction

Compaction

Memory Management

36

Memory Management

āļĢāļ°āļšāļšāļ›āļāļīāļšāļąāļ•āļāļīāļēāļĢP1 (16K)

32K

P4 (24K)

128K

P5 (128K)

P6 (256K)

136K

āļĢāļ°āļšāļšāļ›āļāļīāļšāļąāļ•āļāļīāļēāļĢP1 (16K)

P4 (24K)

P5 (128K)

P6 (256K)

296K

āļĢāļ°āļšāļšāļ›āļāļīāļšāļąāļ•āļāļīāļēāļĢP1 (16K)

P4 (24K)

P5 (128K)

P6 (256K)

P7 (256K)

40K

A. āļāđˆāļ­āļ™ Compaction B. āļŦāļĨāļ‡āļą Compaction C. āļˆāļ”āļąāļŠāļĢāļĢāļžāļ·āđ‰āļ™āļ—āļĩāđˆāđƒāļŦāđ‚āđ‰āļ›āļĢāđ€āļ‹āļŠ

P7 (256K)

Page 10: 6 Memory Management 2 2552.ppt

37

āđāļšāđˆāļ‡ physical memory āļ­āļ­āļāđ€āļ›āđ‡āļ™ blocks āļ—āļĩāđˆāļĄāļĩāļ‚āļ™āļēāļ”āđ€āļ—āđˆāļēāļāļ™āļąāđ€āļĢāļĩāļĒāļāļ§āļēāđˆ frames (āļ­āļĒāļđāđƒāđˆāļ™āļŠāđˆāļ§āļ‡ 512 bytes āļ–āļķāļ‡ 8,192 bytes) āđāļšāđˆāļ‡āđ‚āļ›āļĢāđāļāļĢāļĄāļ­āļ­āļāđ€āļ›āđ‡āļ™ blocks āļ—āļĩāđˆāļĄāļĩāļ‚āļ™āļēāļ”āđ€āļ—āđˆāļēāļāļ™āļąāđ€āļĢāļĩāļĒāļāļ§āļēāđˆ pages Load āļ—āļļāļāđ† page āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄāļĨāļ‡āļŠāļđāđˆ frame āļ‚āļ­āļ‡ memory page āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄāđƒāļ™ memory āđ„āļĄāđˆāļˆāļēāđāđ€āļ›āđ‡āļ™āļ•āļ­āđ‰āļ‡āļ­āļĒāļđāļ•āđˆāđˆāļ­āđ€āļ™āļ·āđˆāļ­āļ‡āļāļ™āļą āļŠāļĢāđ‰āļēāļ‡ page table āđ€āļžāļ·āđˆāļ­āđāļ›āļĨāļ‡ logical āđƒāļŦāđ€āđ‰āļ›āđ‡āļ™ physical

addresses

3. Page Memory Management

Memory Management

38

Logical address āļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄāđāļ•āđˆāļĨāļ°āļ•āļēāđāđāļŦāļ™āđˆāļ‡āļˆāļ°āļ–āļđāļāđāļšāđˆāļ‡āļ­āļ­āļāđ€āļ›āđ‡āļ™ Page number (p) – āđƒāļŠāđ€āđ‰āļ›āđ‡āļ™ index āļ‚āļ­āļ‡ page

table āļ‹āļķāđˆāļ‡āļŠāļĩāđ‰āđ„āļ›āļĒāļ‡āļą base address āļ‚āļ­āļ‡āđāļ•āđˆāļĨāļ° page āđƒāļ™ physical memory Page offset (d) – āļšāļ­āļāļ§āļēāđˆ address āļ™āļąāđ‰āļ™āđ†āļ­āļĒāļđāļŦāđˆāđˆāļēāļ‡āļˆāļēāļ

base address āđ„āļ›āļāļĩāđˆāļ•āļēāđāđāļŦāļ™āđˆāļ‡

Address Structure

Memory Management

39

Address Translation

Memory Management

40

āļ•āļ§āļąāļ­āļĒāđˆāļēāļ‡ Paging

Memory Management

Page 11: 6 Memory Management 2 2552.ppt

41

āļ•āļ§āļąāļ­āļĒāđˆāļēāļ‡ Pagingāļ­āļĒāđˆāļēāļ‡āļĨāļ°āđ€āļ­āļĒāļĩāļ”

Memory Management

42

Free Frames

Before allocation After allocation

Memory Management

43

OS āļˆāļ°āđ€āļ›āđ‡āļ™āļœāļđāļŠāđ‰āļĢāđ‰āļēāļ‡āđāļĨāļ°āļ”āļđāđāļĨ page table āđāļ•āđˆāļĨāļ°āđ‚āļ›āļĢāđāļāļĢāļĄāļˆāļ°āļĄāļĩ page table āļ‚āļ­āļ‡āļ•āļ§āļąāđ€āļ­āļ‡ Page table āļ–āļđāļāđ€āļāļšāđ‡āļ­āļĒāļđāđƒāđˆāļ™ memory Page-table base register (PTBR) āđƒāļŠāļŠāđ‰āļĩāđ‰āđ„āļ›āļĒāļ‡āļąāļˆāļļāļ”āđ€āļĢāļīāđˆāļĄāļ•āļ™āđ‰āļ‚āļ­āļ‡ page table

Page-table length register (PTLR) āļšāļ­āļāļ‚āļ™āļēāļ”āļ‚āļ­āļ‡ page table

āļāļēāļĢāļŠāļĢāđ‰āļēāļ‡ Page Table

Memory Management

44

āļ—āļļāļāđ†āļ„āļĢāļąāđ‰āļ‡āļ—āļĩāđˆ CPU āļ­āļēāđ‰āļ‡āļ–āļķāļ‡ data/instruction āļˆāļ°āļ•āļ­āđ‰āļ‡āļ­āđˆāļēāļ™ page table āļŦāļ™āļķāđˆāļ‡āļ„āļĢāļąāđ‰āļ‡ āđāļĨāļ§āđ‰āļˆāļķāļ‡āļ­āđˆāļēāļ™/āđ€āļ‚āļĩāļĒāļ™ data/instruction āļ“ āļ•āļēāđāđāļŦāļ™āđˆāļ‡āļ—āļĩāđˆāļ•āļ­āđ‰āļ‡āļāļēāļĢ āļĄāļĩāļ§āļīāļ˜āļĩāļāļēāļĢāļĨāļ”āļ‚āļąāđ‰āļ™āļ•āļ­āļ™āļĨāļ‡ āđ‚āļ”āļĒāļāļēāļĢāđƒāļŠāđ‰ hardware āļ—āļĩāđˆāđ€āļĢāļĩāļĒāļāļ§āđˆāļē

associative memory āļŦāļĢāļ·āļ­ translation look-asidebuffers (TLBs) āđ€āļ‚āļēāđ‰āļĄāļēāđ€āļāļšāđ‡ page table āļšāļēāļ‡āļŠāđˆāļ§āļ™āđ„āļ§āđ‰

āļāļēāļĢāļŠāļĢāđ‰āļēāļ‡ Page Table

Memory Management

Page 12: 6 Memory Management 2 2552.ppt

45

Paging Hardware āđ‚āļ”āļĒ TLB

Memory Management

46

āļ—āļēāđāđ„āļ”āđ‚āđ‰āļ”āļĒāđ€āļžāļīāđˆāļĄ protection bit āđƒāļŦāļāđ‰āļšāļąāđāļ•āđˆāļĨāļ° frame āļˆāļ°āļĄāļĩ valid-invalid bit āđƒāļ™āđāļ•āđˆāļĨāļ°āļŠāđˆāļ­āļ‡āļ‚āļ­āļ‡ page table : “valid” āđāļŠāļ”āļ‡āļ§āļēāđˆ page āļ­āļĒāļđāđƒāđˆāļ™ logical address

space āļ‚āļ­āļ‡ process āļ™āļąāđ‰āļ™ “invalid” āđāļŠāļ”āļ‡āļ§āļēāđˆ page āđ„āļĄāđˆāļ­āļĒāļđāđƒāđˆāļ™ logical

address space āļ‚āļ­āļ‡ process āļ™āļąāđ‰āļ™

Memory Protection

Memory Management

47

Valid (v) āđāļĨāļ° Invalid (i) Bit āđƒāļ™ Page Table

Memory Management

48

Hierarchical Paging Hashed Page Tables

āđ‚āļ„āļĢāļ‡āļŠāļĢāđ‰āļēāļ‡āļ‚āļ­āļ‡ Page Table

Memory Management

Page 13: 6 Memory Management 2 2552.ppt

49

āđƒāļ™āļāļĢāļ“āļĩāļ—āļĩāđˆ logical address space āļĄāļĩāļ‚āļ™āļēāļ”āđƒāļŦāļāđˆāļĄāļēāļāđ† āļˆāļ°āļĄāļĩāļœāļĨāđƒāļŦ āđ‰page table āļĄāļĩāļ‚āļ™āļēāļ”āđƒāļŦāļāđˆāļ•āļēāļĄ āđāļšāđˆāļ‡ logical address space āđƒāļŦāđ€āđ‰āļ›āđ‡āļ™ page tables āļ‹āļ­āđ‰āļ™āļāļ™āļąāļŦāļĨāļēāļĒāđ†āļŠāļąāđ‰āļ™ āļ—āļĩāđˆāļžāļšāļšāđˆāļ­āļĒāļˆāļ°āđ€āļ›āđ‡āļ™ two-level paging āđāļĨāļ° two-level page

table

Hierarchical Page Tables

Memory Management

50

Logical address āļ‚āļ­āļ‡ 32-bit āļ„āļ­āļĄāļžāļīāļ§āđ€āļ•āļ­āļĢāđŒāļ—āļĩāđˆāļĄāļĩ page size = 4K āļ–āļđāļāđāļšāđˆāļ‡āļ­āļ­āļāđ€āļ›āđ‡āļ™ page number āļ‚āļ™āļēāļ” 20 bits page offset āļ‚āļ™āļēāļ” 12 bits

āļ”āļ§āđ‰āļĒāļāļēāļĢāđƒāļŠ āđ‰page āļ‹āļ­āđ‰āļ™ page āļˆāļ°āđ„āļ” āđ‰page number 20 bitsāļ–āļđāļāđāļšāđˆāļ‡āļ­āļ­āļāđ€āļ›āđ‡āļ™ 10-bit page number

10-bit page offset

āļ•āļ§āļąāļ­āļĒāđˆāļēāļ‡ Two-Level Paging

Memory Management

51

āļ‹āļķāđˆāļ‡āļˆāļ°āđ„āļ”āđ‰ logical address āļ”āļ‡āļąāļĢāļđāļ›

āđ‚āļ”āļĒāļ—āļĩāđˆ p1 āđ€āļ›āđ‡āļ™ index āļ‚āļ­āļ‡ page table āđāļĢāļp2 āđ€āļ›āđ‡āļ™ displacement āļ‚āļ­āļ‡ page table āđāļĢāļ

āļ•āļ§āļąāļ­āļĒāđˆāļēāļ‡ Two-Level Paging

page number page offset

pi p2 d

10 10 12

Memory Management

52

Two-Level Page-Table

Memory Management

Page 14: 6 Memory Management 2 2552.ppt

53

Address-Translation Address-translation āļŠāļēāđāļŦāļĢāļąāļš two-level 32-bit

paging

Memory Management

54

āļĄāļāļąāļˆāļ°āđƒāļŠāļāđ‰āļšāļąāļĢāļ°āļšāļšāļ—āļĩāđˆāļĄāļĩ address spaces > 32 bits Page number āļˆāļ°āļ–āļđāļ hashed āđ€āļ‚āļēāđ‰āđ„āļ›āđƒāļ™ page

table āđāļ—āļ™āļ—āļĩāđˆāļˆāļ°āđ€āļ›āđ‡āļ™āļāļēāļĢāđ€āļ‚āļēāđ‰āđ„āļ›āļŦāļēāļ„āđˆāļēāđ‚āļ”āļĒāđƒāļŠ āđ‰index āļ˜āļĢāļĢāļĄāļ”āļē

Hashed Page Tables

Memory Management

55

Hashed Page Table

Memory Management

56

Shared code āļŦāļĨāļēāļĒāđ†āđ‚āļ›āļĢāđāļāļĢāļĄāđƒāļŠāļŠāđ‰āđˆāļ§āļ™āļ—āļĩāđˆāđ€āļ›āđ‡āļ™ text āļĢāđˆāļ§āļĄāļāļ™āļą āļ—āļēāđāđƒāļŦāļĨāđ‰āļ”āļāļēāļĢāđƒāļŠ āđ‰

memory āđāļ•āđˆāļĨāļ°āđ‚āļ›āļĢāđāļāļĢāļĄāļˆāļ°āļĄāļĩ page table āļ‚āļ­āļ‡āļ•āļ§āļąāđ€āļ­āļ‡āļ—āļĩāđˆāļŠāļĩāđ‰āđ„āļ›āļĒāļ‡āļą

Shared code āļ—āļĩāđˆāđ€āļ›āđ‡āļ™ page āđ€āļ”āļĩāļĒāļ§āļāļ™āļąāđƒāļ™ memory Private code and data

āđāļ•āđˆāļĨāļ°āđ‚āļ›āļĢāđāļāļĢāļĄāļĄāļĩāļŠāđˆāļ§āļ™āļ—āļĩāđˆāđ€āļ›āđ‡āļ™ data āđāļĨāļ° private code āļ‚āļ­āļ‡āļ•āļ§āļąāđ€āļ­āļ‡āļ‹āļķāđˆāļ‡āđ„āļĄāđˆāļŠāļēāļĄāļēāļĢāļ–āđƒāļŠāļĢāđ‰āđˆāļ§āļĄāļāļ™āļąāđ„āļ”āđ‰

Pages Sharing

Memory Management

Page 15: 6 Memory Management 2 2552.ppt

57

āļ•āļ§āļąāļ­āļĒāđˆāļēāļ‡ Pages Sharing

Memory Management

58

āđ€āļ›āđ‡āļ™āļāļēāļĢāđāļšāđˆāļ‡ memory āļ­āļ­āļāđ€āļ›āđ‡āļ™āļŠāđˆāļ§āļ™āđ† āļ•āļēāļĄāļ—āļĩāđˆāđ‚āļ›āļĢāđāļāļĢāļĄāļ–āļđāļāđāļšāđˆāļ‡āđ„āļ§āđ‰āđ‚āļ”āļĒāļœāļđāđ€āđ‰āļ‚āļĩāļĒāļ™ āđ‚āļ›āļĢāđāļāļĢāļĄāļŦāļ™āļķāđˆāļ‡āđ† āļ­āļēāļˆāļˆāļ°āļ›āļĢāļ°āļāļ­āļšāļ”āļ§āļąāļĒ main program,

function, local variables, global variables, common block, stack

Segment āđ„āļĄāđˆāđ€āļŦāļĄāļ·āļ­āļ™ paging āļ•āļĢāļ‡āļ—āļĩāđˆ memory āļ‚āļ­āļ‡āđāļ•āđˆāļĨāļ° segment āļˆāļ°āļĄāļĩāļ‚āļ™āļēāļ”āđ€āļ—āđˆāļēāđ„āļĢāļāđ„āđ‡āļ” āđ‰āđāļĨāļ°āđ„āļĄāđˆāļˆāļēāđāđ€āļ›āđ‡āļ™āļ•āļ­āđ‰āļ‡āļĄāļĩāļ‚āļ™āļēāļ”āđ€āļ—āđˆāļēāļāļ™āļą

Hierarchical Page Tables

Memory Management

59āļ āļēāļžāđāļŠāļ”āļ‡āļŠāđˆāļ§āļ™āļ›āļĢāļ°āļāļ­āļšāļ‚āļ­āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄ

Memory Management

4. Segmentation Memory Management

60

Memory Management

1

3

2

4

1

4

2

3

user space physical memory space

āļ āļēāļžāļāļēāļĢāļˆāļ”āļąāļāļēāļĢāļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļēāđāļŦāļĨāļāļąāđāļšāļš Segmentation

Page 16: 6 Memory Management 2 2552.ppt

61

Logical address āļˆāļ°āļ›āļĢāļ°āļāļ­āļšāđ„āļ›āļ”āļ§āđ‰āļĒāļŠāļ­āļ‡āļŠāđˆāļ§āļ™ <segment-number, offset> Segment table – āđ€āļ›āđ‡āļ™āļ•āļēāļĢāļēāļ‡āļšāļ­āļāļ–āļķāļ‡ physical addresses āļ‚āļ­āļ‡āđāļ•āđˆāļĨāļ° segment base – āđ€āļ›āđ‡āļ™āļˆāļļāļ”āđ€āļĢāļīāđˆāļĄāļ•āļ™āđ‰āļ‚āļ­āļ‡ segment āđƒāļ™ memory

limit – āđ€āļ›āđ‡āļ™āļ‚āļ™āļēāļ”āļ‚āļ­āļ‡ segment āļ™āļąāđ‰āļ™

Memory Management

Segmentation Architecture

62

Segment-table base register (STBR) āđ€āļāļšāđ‡āļ•āļēāđāđāļŦāļ™āđˆāļ‡āđ€āļĢāļīāđˆāļĄāļ•āļ™āđ‰āļ‚āļ­āļ‡ segment table āđƒāļ™ memory

Segment-table length register (STLR) āļšāļ­āļāļˆāļēāđāļ™āļ§āļ™ segment āļ—āļĩāđˆāđ‚āļ›āļĢāđāļāļĢāļĄāļĄāļĩāļ­āļĒāļđāđˆ

Memory Management

Segmentation Architecture

63

Memory Management

āļ•āļ§āļąāļ­āļĒāđˆāļēāļ‡ Segmentation

64

Memory Management

āļāļēāļĢāļ—āļēāđāļ‡āļēāļ™āļ‚āļ­āļ‡ Segmentation

Page 17: 6 Memory Management 2 2552.ppt

65

Protection: āđāļ•āđˆāļĨāļ° segment āđƒāļ™ segment table āļˆāļ°āļĄāļĩ: validation bit = 0 illegal segment read/write/execute privileges

Relocation: āđ€āļ›āļĨāļĩāđˆāļĒāļ™ base āđāļĨāļ° limit āļ‚āļ­āļ‡āđāļ•āđˆāļĨāļ° segment āđ€āļžāļ·āđˆāļ­āļĒāļēāđ‰āļĒ segment āđƒāļ™ memory

Memory Management

Protection and Relocation

66

Memory Management

Segments Sharing

67

MULTICS āđāļāļ›āđ‰āļąāļāļŦāļē external fragmentation āđāļĨāļ°segment table āļ‚āļ™āļēāļ”āđƒāļŦāļāđˆāđ‚āļ”āļĒāļāļēāļĢāđƒāļŠāđ‰ paging āļ‚āļ­āļ‡ segments āđāļ•āđˆāļĨāļ° segment āļˆāļ°āļ–āļđāļāđāļšāđˆāļ‡āđ€āļ›āđ‡āļ™ pages āđāļ—āļ™āļ—āļĩāđˆāļˆāļ°āđƒāļŦ āđ‰segment table āđ€āļāļšāđ‡ base āđāļĨāļ° limit āļ‚āļ­āļ‡āđāļ•āđˆāļĨāļ° segment āļāđƒāđ‡āļŦāđ€āđ‰āļāļšāđ‡ base address āļ‚āļ­āļ‡ page table āļŠāļēāđāļŦāļĢāļąāļš segment āļ™āļąāđ‰āļ™āđ†

Memory Management

Segmentation with Paging – MULTICS

68

Memory Management

MULTICS Address Translation

Page 18: 6 Memory Management 2 2552.ppt

69

Intel 386 āđƒāļŠāđ‰ segmentation with paging āđ€āļŠāđˆāļ™āđ€āļ”āļĩāļĒāļ§āļāļšāļą MULTICS āļ•āđˆāļēāļ‡āļāļ™āļąāļ•āļĢāļ‡āļ—āļĩāđˆ paging āļˆāļ°āđ€āļ›āđ‡āļ™āđāļšāļš hierarchical āđāļšāļš 2 āļĢāļ°āļ”āļšāļą

Memory Management

Segmentation with Paging – Intel 386

70

Memory Management

Intel 30386 Address Translation

71

Question ?