 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
| |
How
can we improve memory utilization and system
|
|
|
performance
|
|
|
|
Processes
have parts
|
|
|
|
Code
program and maybe shared libraries
|
|
|
|
Data
pre-allocated and heap
|
|
|
|
|
Stack
|
|
|
|
Solution
slightly more Memory Management hardware
|
|
|
|
Multiple
sets of base and limit registers
|
|
|
|
Divide
process into logical pieces called segments
|
|
|
| |
Segmentation
advantages
|
|
|
|
Code
segments dont need to be swapped out and may be shared
|
|
|
|
Stack
and heap can be grown may require segment swap
|
|
|
|
With
separate I and D spaces can have larger virtual address spaces
|
|
|
I
= Instruction (i.e., code, always read-only)
|
|
|
|
D =
Data (may be read-write)
|
|