Memory
I Background I Swapping I Contiguous Allocation I Paging I Segmentation I Segmentation with Paging
Operating System Concepts
9.1
Silberschatz, Galvin and Gagne 2002
Background
I Program must be brought into memory and placed within
a process for it to be run.
I Input queue – collection of processes on the disk that are
waiting to be brought into memory to run the program.
I User programs go through several steps before being
run.
Operating System Concepts
9.2
Silberschatz, Galvin and Gagne 2002
Binding of Instructions and Data to Memory
Address binding of instructions and data to memory addresses can happen at three different stages.
I Compile time: If memory location known a priori,
absolute code can be generated; must recompile code if starting location changes. I Load time: Must generate relocatable code if memory location is not known at compile time. I Execution time: Binding delayed until run time if the process can be moved during its execution from one memory segment to another. Need hardware support for address maps (e.g., base and limit registers).
Operating System Concepts
9.3
Silberschatz, Galvin and Gagne 2002
Multistep Processing of a User Program
Operating System Concepts
9.4
Silberschatz, Galvin and Gagne 2002
Logical vs. Physical Address Space
I The concept of a logical address space that is bound to a
separate physical address space is central to proper memory management.
✦ Logical address – generated by the CPU; also referred to as
virtual address.
✦ Physical address – address seen by the memory unit.
I Logical and physical addresses are the same in compile-
time and load-time address-binding schemes; logical (virtual) and physical addresses differ in execution-time address-binding scheme.
Operating System Concepts
9.5
Silberschatz, Galvin and Gagne 2002
Memory-Management Unit (MMU)
I Hardware device that maps virtual