Unit-Iv: Memory Management
Unit-Iv: Memory Management
org
UNIT-IV
Memory Management
Address binding of instructions and data to memory addresses can happen at three different stages
Compile time: If memory location known a priori, absolute code can be generated; must recompile
code if starting location changes
Load time: Must generate relocatable code if memory location is not known at compile time
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)
www.specworld.in 1 www.smartzworld.com
www.jntuworldupdates.org
www.specworld.in 2 www.smartzworld.com
www.jntuworldupdates.org
Dynamic Loading
Routine is not loaded until it is called
Better memory-space utilization; unused routine is never loaded
Useful when large amounts of code are needed to handle infrequently occurring cases
No special support from the operating system is required implemented through program design
Dynamic Linking
Linking postponed until execution time
Small piece of code, stub, used to locate the appropriate memory-resident library routine
Stub replaces itself with the address of the routine, and executes the routine
Operating system needed to check if routine is in processes memory address
Dynamic linking is particularly useful for libraries
System also known as shared libraries
Swapping
A process can be swapped temporarily out of memory to a backing store, and then brought back into memory
for continued executionnBacking store fast disk large enough to accommodate copies of all memory images
for all users; must provide direct access to these memory imagesnRoll out, roll in swapping variant used for
priority-based scheduling algorithms; lower-priority process is swapped out so higher-priority process can be
loaded and executednMajor part of swap time is transfer time; total transfer time is directly proportional to the
www.specworld.in 3 www.smartzworld.com
www.jntuworldupdates.org
amount of memory swappednModified versions of swapping are found on many systems (i.e., UNIX, Linux,
and Windows)
System maintains a ready queue of ready-to-run processes which have memory images on disk
Schematic View of Swapping
Contiguous Allocation
Multiple-partition allocation
Hole block of available memory; holes of various size are scattered throughout memory
When a process arrives, it is allocated memory from a hole large enough to accommodate it
www.specworld.in 4 www.smartzworld.com
www.jntuworldupdates.org
OS OS OS OS
process 8 process 10
Fragmentation
External Fragmentation total memory space exists to satisfy a request, but it is not contiguous
Internal Fragmentation allocated memory may be slightly larger than requested memory; this size
difference is memory internal to a partition, but not being used
Reduce external fragmentation by compaction
Shuffle memory contents to place all free memory together in one large block
Compaction is possible only if relocation is dynamic, and is done at execution time.
I/O problem
Latch job in memory while it is involved in I/O
Do I/O only into OS buffers
Paging
Logical address space of a process can be noncontiguous; process is allocated physical memory
whenever the latter is available
www.specworld.in 5 www.smartzworld.com
www.jntuworldupdates.org
Divide physical memory into fixed-sized blocks called frames (size is power of 2, between 512 bytes
and 8,192 bytes)
Divide logical memory into blocks of same size called pagesnKeep track of all free frames
To run a program of size n pages, need to find n free frames and load program
Set up a page table to translate logical to physical addresses
Internal fragmentation
Paging Hardware
www.specworld.in 6 www.smartzworld.com
www.jntuworldupdates.org
Paging Example
www.specworld.in 7 www.smartzworld.com
www.jntuworldupdates.org
Free Frames
Associative Memory
Associative memory parallel search
Address translation (p, d)
If p is in associative register, get frame # out
Otherwise get frame # from page table in memory
Page #
Frame #
www.specworld.in 8 www.smartzworld.com
www.jntuworldupdates.org
www.specworld.in 9 www.smartzworld.com
www.jntuworldupdates.org
Shared Pages
Shared code
One copy of read-only (reentrant) code shared among processes (i.e., text editors, compilers, window
systems).
Shared code must appear in same location in the logical address space of all processes
Private code and data
Each process keeps a separate copy of the code and data
The pages for the private code and data can appear anywhere in the logical address space
www.specworld.in 10 www.smartzworld.com
www.jntuworldupdates.org
www.specworld.in 11 www.smartzworld.com
www.jntuworldupdates.org
where pi is an index into the outer page table, and p2 is the displacement within the page of the outer
page table
12 10 10
Address-Translation Scheme
www.specworld.in 12 www.smartzworld.com
www.jntuworldupdates.org
www.specworld.in 13 www.smartzworld.com
www.jntuworldupdates.org
Segmentation
Memory-management scheme that supports user view of memory
A program is a collection of segments
A segment is a logical unit such as:
main program
procedure function
method
object
local variables, global variables
common block
stack
symbol table
arrays
www.specworld.in 14 www.smartzworld.com
www.jntuworldupdates.org
1 4
4 2
Segmentation Architecture
Logical address consists of a two tuple:
o <segment-number, offset>,
Segment table maps two-dimensional physical addresses; each table entry has:
base contains the starting physical address where the segments reside in memory
limit specifies the length of the segment
Segment-table base register (STBR) points to the segment tables location in memory
Segment-table length register (STLR) indicates number of segments used by a program;
segment number s is legal if s < STLR
Protection
With each entry in segment table associate:
validation bit = 0 illegal segment
www.specworld.in 15 www.smartzworld.com
www.jntuworldupdates.org
read/write/execute privileges
Protection bits associated with segments; code sharing occurs at segment level
Since segments vary in length, memory allocation is a dynamic storage-allocation problem
A segmentation example is shown in the following diagram
Segmentation Hardware
Example of Segmentation
www.specworld.in 16 www.smartzworld.com
www.jntuworldupdates.org
www.specworld.in 17 www.smartzworld.com
www.jntuworldupdates.org
www.specworld.in 18 www.smartzworld.com
www.jntuworldupdates.org
www.specworld.in 19 www.smartzworld.com