Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
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
āļ āļēāļāđāļŠāļāļāļāļēāļĢāđāļāļĨāļ·āđāļāļāļĒāļēāđāļĒāļāļāđāļĄāļđāļĨāļāļāļāļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļēāđāļāļĢāļ°āđāļ āļāļāđāļēāļāđ
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
9
Memory Management
2. āļāļēāļĢāļāđāļāļāļāļāļąāļāļ·āļāđāļāļĩ āđ(Protection)
āļĢāļ°āļāļāļāļ§āļĢāļĄāļĩāļāļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļāđāļāļāļēāļĢāļāđāļāļāļāļąāļāđāļĄāđāđāļŦāđāđāļāļĢāđāļāļŠāđāļāđāļĨāļ°āļāļēāļāļāļđāļāļĢāļāļāļ§āļāļāļēāļāđāļāļĢāđāļāļŠāļāļ·āđāļāđ āđāļāļĒāļāļēāļĢāđāļĄāđāļāļāļļāļāļēāļāđāļŦāđāđāļāļĢāđāļāļŠāļāļ·āđāļāđāļĢāļĩāļĒāļāđāļāļāđāļ·āđāļāļāļĩāđāļāļāļāļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāđāļēāļŦāļĨāļąāļ āļāļķāđ āļāļāđāļē āđ āļāđāļāļāļ°āļāđāļāļāđāļāđāļ§āļī āļāļĩāļ āļēāļĢāļĒāđāļēāļĒāļāđāļēāđāļŦāļāđāļ (relocation)
10
Memory Management
3. āļāļēāļĢāđāļāđāļāļ·āļāđāļāļĩāļĢāđāđāļ§āļĄāļāļāļą (Sharing)
āļāļēāļĢāļāļĩāđāļāļāļļāļāļēāļāđāļŦāđāđāļāļĢāđāļāļŠāļŦāļĨāļēāļĒāđ āļāļ§āļąāļĄāļēāđāļāļāđāļ·āđāļāļāļĩāđāļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļēāđāđāļāļĩāļĒāļ§āļāļāļąāđāļ āđāđāļāļĒāļĢāļ°āļāļāļāļāļąāļāļēāļĢāļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļēāđāļāļ°āļāļāđāļāļāļāļļāļāļēāļāđāļŦāļāđāļ§āļąāļāļ§āļāļāļļāļĄ āļŠāļēāļĄāļēāļĢāļāđāļāļēāđāļāļķāļāļāļ·āđāļāļāļĩāđāļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļēāđāļāļĩāđāđāļāđāļāļŠāđāļ§āļāļāļĩāđāđāļāļĢāđāđāļ§āļĄāļāļāļąāđāļ āđāđāļāļĒāđāļĄāđāļāļāđāļāđāļāļ§āđāļāļīāļĩāļāļēāļĢāļāđāļāļāļāļāļąāļāļ·āđāļāļāļĩāđ
11
Memory Management
4. āļāļēāļĢāļāļāļąāļāļēāļĢāđāļāđāļāđāļāļĢāđāļāļĢāļĄāļĒāđāļāļĒ (Logical Organization)
āđāļāļĢāđāļāļĢāļĄāļŠāđāļ§āļāđāļŦāļāđāļāļ°āļāļđāļāđāļāđāļāļāļāļāđāļāđāļāđāļāļĢāđāļāļĢāļĄāļĒāļāđāļĒāđ āļŦāļĢāļ·āļ moduleāđāļāļ·āđāļāđāļŦāđāļŠāļēāļĄāļēāļĢāļāđāļāļāđāļēāļāļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļēāđāđāļāļāđāļĒāđāļēāļāļĄāļĩāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļ āđāļāļĒāļĄāļĩāļ§āļīāļāļĩ āļāļ·āļ āļāļ°āđāļĄāđāļāļēāđāđāļāļĢāđāļāļĢāļĄāļĒāļāđāļĒāļĨāļāļŠāļđāđāļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļēāđāļāļĢāđāļāļĄāļāļāļąāđāļāļĢāđāļāļĢāļĄāļŦāļĨāļāļą āđāļāđāļāļ°āļāļēāđāļĨāļāđāļĄāļ·āđāļāļĄāļĩāļāļēāļĢāđāļĢāļĩāļĒāļāđāļāļāđāļēāļāđāļāđāļēāļāļąāđāļ
12
āļĨāļāļāļēāļĢāļŠāļīāđāļāđāļāļĨāļ·āļāļāļāļ·āđāļāļāļĩāđāļāļāļāļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļēāđ āđāļāļĒāđāļāļĢāđāļāļĢāļĄāļĒāļāđāļĒāļāļĩāđāđāļĄāđāđāļāđāđāļāļāđāļēāļ āļāļ°āđāļĄāđāļŠāļēāļĄāļēāļĢāļāļĨāļāļŠāļđāđāļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļēāđāđāļāđ āđāļāļĢāđāļāļĢāļĄāļĒāļāđāļĒāđāļāđāļĨāļ°āļāļ§āļąāļŠāļēāļĄāļēāļĢāļāļāļāļĄāđāļāļĨāđāđāļĒāļāļāļāļąāđāļāđ āđāļāļĢāđāļāļĢāļĄāļĒāļāđāļĒāđāļāđāļĨāļ°āļāļ§āļąāļŠāļēāļĄāļēāļĢāļāļĄāļĩāļĢāļ°āļāļāļąāļāļēāļĢāļāđāļāļāļāļāļąāļāļĩāđāđāļāļāļāđāļēāļāļāļāļąāđāļāđ āđāļāļĢāđāļāļĢāļĄāļŦāļĨāļāļąāļŠāļēāļĄāļēāļĢāļāđāļĢāļĩāļĒāļāđāļāđāđāļāļĢāđāļāļĢāļĄāļĒāļāđāļĒ āđāļŦāļĨāđāļēāļāļĩāđāļĢāđāļ§āļĄāļāļāļąāđāļāđ
āļāļĢāļ°āđāļĒāļāļāđāļāļāļāļ§āļāļīāļĩāļāļēāļĢāļāļāļąāļāļēāļĢāđāļāļĢāđāļāļĢāļĄāļĒāđāļāļĒ
Memory Management
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
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
āđāļāļ·āđāļāļāļāļēāļāļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāđāļēāļŦāļĨāļąāļāļĄāļĩāļāļāļēāļāļāđāļēāļāļąāļ āļāļēāļāļāļĢāļąāđāļāļĢāļ°āļāļāļāđāļēāđāļāđāļāļāļ°āļāđāļāļāļāđāļēāļāļēāļāđāļāļĢāđāļāļŠāļāļāļāļāļēāļāļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāđāļēāļŦāļĨāļąāļ āđāļāļ·āđāļāđāļŦāđāļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāđāļēāļŦāļĨāļąāļāļĄāļĩāļāļ·āđāļāļāļĩāđāļĄāļēāļāļāļāļāļĩāđāļāļ°āđāļŦāļĨāļāđāļāļĢāđāļāļŠāļāļ·āđāļāđāļāđāļēāļĄāļēāļāļĢāļ°āļĄāļ§āļĨāļāļĨ
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
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
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
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)
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
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
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
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
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
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
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
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
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 ?