Memory Management – beyond Partitions
• 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 don’t 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)