Memory Management ()
Download
Report
Transcript Memory Management ()
Chapter 3.1 : Memory
Management
Storage hierarchy
Important memory terms
Earlier memory allocation schemes
Contiguous memory allocation
Fixed partitions
Dynamic partitions
Managing free & allocated Memory Space
1
Storage Hierarchy
Main Memory
• Cache on Chip (internal cache)
• External Cache memory
• RAM
Secondary Storage
Access time decreases
Capacity decreases
• Hard Disk
Tertiary Storage
• CD ROM
• Floppy
• Tape
Cost increases
2
Important Memory Terms
Term
Meaning
Contiguous
Stored in consecutive memory
addresses
NOT stored in consecutive memory
addresses
Memory area limited to actual
physical RAM
Logical memory area created using a
combination of RAM and hard disk
What software thinks
What hardware knows
Smallest amount of information
transferred by a disk
Program tend to access memory
within some localized area
Splitting of memory into little bits
Non-contiguous
Real memory
Virtual memory
Logical
Physical
Block
Principle of locality
Fragmentation
3
Contiguous Memory Allocation
OS &
drivers
User Program
After loading OS, the rest of the memory is
available for user program
Size of user program is fixed by available
memory
Use of overlays for larger programs
4
Dos Memory Layout
16MB
Extended
Memory
1M+64KB
HMA
1MB
Upper Memory
Area
640KB
Conventional
Memory
Buffer cache, RAM Disk,
Memory for protected mode OS
I/O boards, ROMs, MS-DOS and
Device drivers
MS-DOS, Device drivers, programs
0
5
Basic Memory Management
(Monoprogramming)
Three simple ways of organizing memory
- an operating system with one user process
6
Multiprogramming with Fixed
Partitions
OS
Process 1
F
r
a
g
m
e
n
t
Partition 1
Process 2
Partition 2
F
r
a
g
m
e
n
t
Process 3
F
r
a
g
m
e
n
t
Partition 3
Partition numbers and sizes (equal or unequal) are set by
operator at system start up based on workload statistics
Used by IBM’s MFT (Multiprogramming with a Fixed Number
of Tasks) OS for IBM 360 systems long time ago
7
Modeling Multiprogramming
Degree of multiprogramming
CPU utilization as a function of number of processes in memory
8
Multiprogramming with
Dynamic Partitions
Partitions are created at load times
OS
Memory at system start up
OS
Process 1
Process 2
Three processes started
OS
Process 1
Second processes is finished
Process 3
Process 3
OS
Process 1
Process 3
Process 4
A large fourth process arrives. Process 3 is relocated
9
Problems with Dynamic
Partitions
Fragmentation occurs due to creation and
deletion of memory space at load time
Fragmentation is eliminated by relocation
Relocation has to be fast to reduce overhead
Free (unused) memory has to be managed
Allocation of free memory is done by a
placement algorithm
10
Question:
11
How to Keep Track of Unused
Memory
Bit Maps
Memory is divided into allocation units of fixed
size. A bit map with “0” bits for free and “1” bits
for allocated units
Memory allocation units: Green - used, Yellow - unused
1
1
0
1
0
1
0
0
1
1
0
1
0
1
Bit map of the above memory
12
How to Keep Track of Unused
Memory (Cont.)
Linked Lists
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Memory allocation units: Green - used, Yellow - unused
U
1
5
F
6
3
U
9
2
F
11
4
Linked list memory map
13
Placement Algorithms
First fit
Next fit
Process is placed in the first hole it can fit in
Start searching from the point where the last
search has ended and perform first fit
Best fit
Process is placed in a hole which is closest to the
process size
14
Performance Issues
Best Fit usually performs the worst, since it
leaves behind the smallest possible hole
First Fit is simplest to implement and usually
fastest and best
Next fit is usually a little worse than First Fit
15
Another Allocation scheme:
Buddy System
Memory is allocated in powers of 2 sized
units during load time
Initially
1 MB
90 KB request
90KB 128KB
256KB
512KB
300 KB request
90KB 128KB
256KB
300KB
90 KB returned
512KB
300KB
16
Buddy System (Cont.)
This method makes de-allocation fast. If a block
of size 2k is released then the memory manager
checks only the list of 2k holes to merge them
into a 2k+1 sized partition
Internal fragmentation is caused since memory
requests are fitted in 2k sized partitions
17
Problems with Memory
Management Techniques so far
Unused memory due to fragmentation
Memory may contain parts of program which
are not used during a run (ie., some routines may
not be accessed in that particular run)
Process size is limited with the size of physical
memory
Process needs contiguous space in real memory
for execution
18
Can We Get Rid of These
Problems?
YES!
19