5. MemoryManagement
5. MemoryManagement
Memory Management
Patricia Roy
Manatee Community College, Venice, FL
©2008, Prentice Hall
Roadmap
• Basic requirements of Memory
Management
• Memory Partitioning
• Basic blocks of memory management
– Paging
– Segmentation
The need for memory
management
• Memory is cheap today, and getting
cheaper
– But applications are demanding more and
more memory, there is never enough!
• Memory Management, involves swapping
blocks of data from secondary storage.
• Memory I/O is slow compared to a CPU
– The OS must cleverly time the swapping to
maximise the CPU’s efficiency
Memory Management
Term Description
Frame Fixed-length block of main
memory.
Page Fixed-length block of data in
secondary memory (e.g. on disk).
Segment Variable-length block of data that
resides in secondary memory.
Requirements: Protection
• Processes should not be able to reference
memory locations in another process
without permission
• Impossible to check absolute addresses at
compile time
• Must be checked at run time
Requirements: Sharing
• Allow several processes to access the
same portion of memory
• Better to allow each process access to the
same copy of the program rather than
have their own separate copy
Requirements: Logical
Organization
• Memory is organized linearly (usually)
• Programs are written in modules
– Modules can be written and compiled
independently
• Different degrees of protection given to
modules (read-only, execute-only)
• Share modules among processes
• Segmentation helps here
Requirements: Physical
Organization
• Cannot leave the programmer with the
responsibility to manage memory
• Memory available for a program plus its
data may be insufficient
– Overlaying allows various modules to be
assigned the same region of memory but is
time consuming to program
• Programmer does not know how much
space will be available
Swapping
• A process can be swapped temporarily out of
memory to a backing store, and then brought
back into memory for continued execution.
• Similar to round-robin CPU-scheduling
algorithm , when a quantum expires, the
memory manager will swap out that process
to swap another process into the memory
space that has been freed.
Swapping Cont…
Swapping Cont…
• Backing store – fast disk large enough to
accommodate copies of all memory images for
all users and provide direct access to these
memory images.
• Roll 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 executed.
Swapping Cont…
• The swapped out process will be swapped
back into the same memory space it
occupied previously due to the restriction
by the method of address binding
(assembly or load time).
• A process can be swapped into a different
memory space If execution-time binding is
used since physical addresses are
computed during execution time.
Swapping Cont…
• System maintains a ready queue of ready-to-
run processes which have memory images on
disk.
• The dispatcher swaps out a process in memory
if there is no free memory
region and swaps in the desired process from a
ready queue
• Major part of swap time is transfer time; total
transfer time is directly
proportional to the amount of memory swapped
Swapping Cont…
• Example : User process is 10 MB
Backing store is a hard disk with a transfer rate
of 40 MB per sec
• Transfer time = 10/40 MB per sec. = 250
milliseconds
• Swap time = transfer time+ Seek time(latency 8
millisec)= 258 millisec.
• Total swap time = swap out + swap in = 516
milliseconds
•
Partitioning
• An early method of managing memory
– Pre-virtual memory
– Not used much now
• But, it will clarify the later discussion of
virtual memory if we look first at
partitioning
– Virtual Memory has evolved from the
partitioning methods
Types of Partitioning
• Fixed Partitioning
• Dynamic Partitioning
• Simple Paging
• Simple Segmentation
• Virtual Memory Paging
• Virtual Memory Segmentation
Fixed Partitioning
• Equal-size partitions (see fig 7.3a)
– Any process whose size is less than
or equal to the partition size can be
loaded into an available partition
• The operating system can swap a
process out of a partition
– If none are in a ready or running
state
Fixed Partitioning Problems
• A program may not fit in a partition.
– The programmer must design the program
with overlays
• Main memory use is inefficient.
– Any program, no matter how small, occupies
an entire partition.
– This results in internal fragmentation.
Solution – Unequal Size
Partitions
• Lessens both problems
– but doesn’t solve completely
• In the figure,
– Programs up to 16M can be
accommodated without overlay
– Smaller programs can be placed in
smaller partitions, reducing internal
fragmentation
Placement Algorithm
• Equal-size
– Placement is trivial (no options)
• Unequal-size
– Can assign each process to the smallest
partition within which it will fit
– Queue for each partition
– Processes are assigned in such a way as to
minimize wasted memory within a partition
Fixed Partitioning
Remaining Problems with
Fixed Partitions
• The number of active processes is limited
by the system
– I.E limited by the pre-determined number of
partitions
• A large number of very small process will
not use the space efficiently
– In either fixed or variable length partition
methods
Dynamic Partitioning
• Partitions are of variable length and
number
• Process is allocated exactly as much
memory as required
Dynamic Partitioning
Example
OS (8M)
• External Fragmentation
• Memory external to all
P2
P1
(14M) processes is fragmented
(20M)
Empty (6M) • Can resolve using
Empty
P4(8M)
P2 compaction
(56M)
(14M)
Empty (6M) – OS moves processes so
that they are contiguous
P3
(18M) – Time consuming and
wastes CPU time
Empty (4M)