You are on page 1of 69

Chapter 2 *****

Memory Management:
Early Systems

After completing this chapter, you should


be able to describe:
The basic functionality of the three
memory allocation schemes presented in
this chapter: fixed partitions, dynamic
partitions, relocatable dynamic partitions
Best-fit memory allocation as well as
first-fit memory allocation schemes
How a memory list keeps track of
available memory
Understanding Operating Systems, Sixth
Edition

The importance of deallocation of


memory in a dynamic partition system
The importance of the bounds register in
memory allocation schemes
The role of compaction and how it
improves memory allocation efficiency

Understanding Operating Systems, Sixth


Edition

Management of main memory is critical.


The performance of the entire system has
been directly dependent on two things:
How much memory is available
How it is optimization while jobs are being
processed.

This chapter introduces:


The memory manager (RAM)
Core memory (primary storage)

Understanding Operating Systems, Sixth


Edition

This chapter introduces:

Four types of memory allocation schemes

Single-user systems
Fixed partitions
Dynamic partitions
Relocatable dynamic partitions

These early memory management schemes


are seldom used by todays OSs but are
important to study because each one
introduced fundamental concepts that helped
memory management evolve.
Understanding Operating Systems, Sixth
Edition

Commercially available in 1940s and 1950s


Each program was loaded in its entirety into
memory and allocated as much contiguous
memory space allocated as it needed.

If the program was too large and didnt fit the


available memory space, it couldnt be executed,

Although early computers were physically


large, they had very little memory.
Computers have only a finite amount of
memory.
Understanding Operating Systems, Sixth
Edition

If a program doesnt fit, then either the


size of the main memory must be
increased or the program must be
modified.
Making it smaller
Using methods that allow program segments
(partitions made to the program) to be
overlaid.

Transfer segments of a program from secondary

storage into main memory for execution


Two or more segments take turns occupying the
same memory locations.
Understanding Operating Systems, Sixth
Edition

Program Segmentation Slides

Understanding Operating Systems, Sixth


Edition

Developed when the amount of available


memory was limited.
Divide the program into logically
independent modules.
Module 1 holds the main control logic and key
data common to the entire program.
Module 2 processes valid input data.
Module 3 processes errors.
Module 4 generates end-of-program statistics.

M o d u le 1 : M a in c o n tr o l a n d k e y d a ta

M o d u le 2 : N o r m a l d a ta p r o c e s s in g lo g ic

M o d u le 3 : E r r o r p r o c e s s in g

M o d u le 4 : E n d -o f-jo b s u m m a r y c o m p u ta tio n s

M o d u le 1 : M a in c o n tr o l a n d k e y d a ta

M o d u le 2 : N o r m a l d a ta p r o c e s s in g lo g ic

M o d u le 1 : M a in c o n tr o l a n d k e y d a ta

M o d u le 3 : E r r o r p r o c e s s in g

M o d u le 1 : M a in c o n tr o l a n d k e y d a ta

M o d u le 4 : E n d -o f-jo b s u m m a r y c o m p u ta tio n s

A program cannot process data it does


not have.
A program spends more time waiting for
I/O than processing data.

The amount of work performed by the


Memory Manager is minimal.
Only two hardware items are needed:
A register to store the base address
An accumulator to keep track of the size of
the program as its being read into memory.

Once the program is entirely loaded into


memory, it remains there until execution
is complete, either through normal
termination or by intervention of the OS.
Understanding Operating Systems, Sixth
Edition

16

Disadvantages
There is no support for multiprogramming or
networking
It can handle only one job at a time.
This configuration was first used in research
institutions but proved unacceptable for the
business community.
It was not cost effective to spend almost
$200,000 for equipment that could be used by
only one person ay a time.

Understanding Operating Systems, Sixth


Edition

17

The first attempt to follow


multiprogramming used fixed partitions
(static partitions) within main memory.

One partition for each job.

The size of each partition was designated


when the system was powered on.
Each partition could only be reconfigured
when the system was shut down.
Once the system was in operation, the
partition sizes remained static.

Understanding Operating Systems, Sixth


Edition

18

Introduced protection of the jobs memory


space

Once a partition was assigned to a job, no other job


could be allowed to enter its boundaries, either
accidentally or intentionally.
Not a problem in single-user contiguous allocation

schemes.

Fixed Partitions is more flexible than the SingleUser scheme because it allows several
programs to be in memory at the same time.
Fixed Partitions still requires that the entire
program be stored contiguously and in memory
from the beginning to the end of its execution.
Understanding Operating Systems, Sixth
Edition

19

In order to allocate memory spaces to


jobs, the OSs Memory Manager must
keep a table which shows:
Each memory partition size
Its address
Its access restrictions
Its current status (free or busy)

As each job terminates, the status of its


memory partition is changed from busy
to free so an incoming job can be
assigned to that partition.
Understanding Operating Systems, Sixth
Edition

20

Memory manager allocates memory space to jobs

Uses a table

Understanding Operating Systems, Sixth


Edition

21

Understanding Operating Systems, Sixth


Edition

22

Disadvantages
The Fixed Partition scheme works well if all the
jobs run on the system are of the same size or
if the sizes are known ahead of time and dont
vary between reconfiguration.
If the partition sizes are too small:

larger jobs will be rejected if theyre too big to fit

into the largest partition.


Large jobs will wait if the large partitions are
busy.
Large jobs may have a longer turnaround time as
they wait for free partitions of sufficient size or
may never run.
Understanding Operating Systems, Sixth
Edition

23

Disadvantages

If the partition sizes are too big, memory is


wasted.
If a job does not occupy the entire partition, the

unused memory in the partition will remain idle.


It cant be given to another job because each
partition is allocated to only one job at a time.

Partial usage of fixed partitions and the


coinciding creation of unused spaces within
the partition is called internal
fragmentation and is a major drawback to
the fixed partition memory allocation scheme.
Understanding Operating Systems, Sixth
Edition

24

With Dynamic Partitions available memory


is still kept in contiguous blocks but jobs are
given only as much memory as they request
when they are loaded for processing.
A dynamic partition scheme fully utilizes
memory when the first jobs are loaded.
As new jobs enter the system that are not the
same size as those that just vacated memory,
they are fit into the available spaces on a
priority basis.

First Come First Serve priority


Understanding Operating Systems, Sixth
Edition

25

The subsequent allocation of memory creates


fragments of free memory between blocks of
allocated memory.
External fragmentation

Lets memory go to waste

Understanding Operating Systems, Sixth


Edition

26

Understanding Operating Systems, Sixth


Edition

27

For both fixed and dynamic memory


allocation schemes, the OS must keep
lists of each memory location noting
which are free and which are busy.
As new jobs come into the system, the
free partitions must be allocated.
These partitions may be allocated on the
basis of:

First-fit memory allocation:


First partition fitting the requirements

Best-fit memory allocation:


Smallest partition fitting the requirements
Understanding Operating Systems, Sixth
Least wasted spaceEdition

28

For both schemes, the Memory Manager


organizes the memory lists of the free
and used partitions either by size or by
location.
The Best-fit allocation method keeps the

free/busy lists in order by size, smallest to


largest.
Makes the best use of memory space.

The first-fit method keeps the free/bust list

organized by memory locations, low-order


memory to high-order memory.
Faster in making the allocation.
Understanding Operating Systems, Sixth
Edition

29

Understanding Operating Systems, Sixth


Edition

30

Understanding Operating Systems, Sixth


Edition

31

Algorithm for first-fit

Assumes memory manager keeps two lists


One for free memory blocks
One for busy memory blocks

The operation consists of a simple loop that


compares the size of each job to the size of
each memory block until a block is found that
is large enough to fit the job.
The job is stored into that block of memory
and the Memory Manager moves out of the
loop to fetch the next job from the entry queue

Understanding Operating Systems, Sixth


Edition

32

Algorithm for first-fit (cont'd.):


If the entire list is searched in vain, then the
job is placed into a waiting queue.
The Memory Manager then fetches the next
job and repeats the process.

Understanding Operating Systems, Sixth


Edition

33

Understanding Operating Systems, Sixth


Edition

34

Algorithm for best-fit


The goal is to find the smallest memory block
into which the job will fit
The entire table must be searched before the
allocation can be made because the memory
blocks are physically stored in sequence
according to their location in memory.

Understanding Operating Systems, Sixth


Edition

35

Understanding Operating Systems, Sixth


Edition

36

Hypothetical allocation schemes

Next-fit:
Starts searching from last allocated block, for

next available block when a new job arrives

Worst-fit:
Allocates largest free available block to new job
Opposite of best-fit
Good way to explore theory of memory

allocation
Not best choice for an actual system

Understanding Operating Systems, Sixth


Edition

37

There eventually comes a time when


memory space must be released or
deallocated.
For a fixed-partition system:
When the job is completed, the Memory
Manager resets the status of the memory
block where the job was stored to free.
Any code may be used.

Example code: binary values with zero indicating

free and one indicating busy.


Understanding Operating Systems, Sixth
Edition

38

For dynamic-partition system:


A more complex Algorithm is used because
the algorithm tries to combine free areas of
memory whenever possible.
The system must be prepared for three
alternative solutions:

Case 1: When the block to be deallocated is

adjacent to another free block


Case 2: When the block to be deallocated is
between two free blocks
Case 3: When the block to be deallocated is
isolated from other free blocks
Understanding Operating Systems, Sixth
Edition

39

Using the deallocation algorithm, the system


sees that the memory to be released is next to
a free memory block (Location 7800).
The List must be changed changes to reflect
the starting address of the new free block
(7600) which was the address of the first
instruction of the job that just released this
block.
In addition, the memory block size for this new
free space must be changed to show its new
size, which is the combined total of the two free
partitions (200 + 5).
Understanding Operating Systems, Sixth
Edition

40

Understanding Operating Systems, Sixth


Edition

41

Understanding Operating Systems, Sixth


Edition

42

When the deallocated memory space is


between two free memory blocks:
Using the deallocation algorithm, the system
learns that the memory to be deallocated is
between two free blocks of memory.
The sizes of the three free partitions (20 + 20
+205) must be combined and the total stored
with the smallest beginning address, 7560.
Because the entry at location 7600 has been
combined with the previous entry, we must
empty out this entry.
Understanding Operating Systems, Sixth
Edition

43

We do that by changing the status to null


entry, with no beginning address and no
memory block size as indicated by an asterisk.
This negates the need to rearrange the list at
the expense of memory.

Understanding Operating Systems, Sixth


Edition

44

Understanding Operating Systems, Sixth


Edition

45

Understanding Operating Systems, Sixth


Edition

46

The third alternative is when the space to be


deallocated is isolated from all other free
areas.
Using the deallocation algorithm, the system
learns that the memory block to be released is
not adjacent to any free blocks of memory
It is between two other busy areas
The system must search the table for a null entry.
When the null entry is found:

The beginning memory location of the terminating

job is entered in the beginning address column.


Understanding Operating Systems, Sixth
Edition

47

The job size is entered under the memory block

size column
The status is changed from a null entry to free to
indicate that a new block of memory is available.

Understanding Operating Systems, Sixth


Edition

48

Understanding Operating Systems, Sixth


Edition

49

Understanding Operating Systems, Sixth


Edition

50

Understanding Operating Systems, Sixth


Edition

51

Understanding Operating Systems, Sixth


Edition

52

Both the fixed and dynamic memory


allocation schemes described thus far
shared some unacceptable fragmentation
characteristics that had to be resolved
before the number of jobs waiting to be
accepted became unwieldy.
In addition, there was a growing need to use
all the slivers of memory often left over.
The solution to both problems was the
development of relocatable dynamic
partitions.
Understanding Operating Systems, Sixth
Edition

53

Relocatable Dynamic Partitions

The Memory Manager relocates programs to


gather together all of the empty blocks and
compact them to make one block of memory
large enough to accommodate some or all of
the jobs waiting to get in.

The compaction of memory is performed


by the OS to reclaim fragmented sections
of the memory space.

Every program in memory must be relocated so


theyre contiguous.
Understanding Operating Systems, Sixth
Edition

54

The compaction of memory


Every address, and every reference to an
address, within each program must be
adjusted to account for the programs new
location in memory.
All other values within the program must be
left alone.

Understanding Operating Systems, Sixth


Edition

55

Understanding Operating Systems, Sixth


Edition

56

Understanding Operating Systems, Sixth


Edition

57

Understanding Operating Systems, Sixth


Edition

58

Understanding Operating Systems, Sixth


Edition

59

Compaction Issues:
What goes on behind the scenes when
relocation and compaction take place?
What keeps track of how far each job has
moved from its original storage area?
What lists have to be updated?

Understanding Operating Systems, Sixth


Edition

60

What lists have to be updated?

After relocation and compaction, both the free


list and the busy list are updated.
Free list is changed to show the partition for the

new block of free memory


The one formed as a result of compaction that will
be located in memory starting after the last location
used by the last job.

Busy list is changed to show the new locations

for all of the jobs already in process that were


relocated.

Understanding Operating Systems, Sixth


Edition

61

Special-purpose registers used for relocation:


Bounds register
Used to store the highest (or lowest) location in
memory accessible by each program.
This ensures that, during execution, a program
wont try to access memory locations that dont
belong to it.
Relocation register
Contains the value that must be added to each
address referenced in the program so that the
system will be able to access the correct memory
addresses after relocation.
If the program isnt relocated, the value, zero is
stored in the programs relocation register.
Understanding Operating Systems, Sixth
Edition

62

By compacting and relocating, the


Memory Manager optimizes use of
memory and, thus, Improves throughput.
An unfortunate side effect is that more
overhead is incurred than with the two
previous memory allocation schemes.
The crucial factor is the timing of the
compaction.

When and how often should it be done.

Understanding Operating Systems, Sixth


Edition

63

There are three options for the timing of


compaction:

One approach is to do it when a certain


percentage of memory becomes busy 75%
The disadvantage of this approach is that the

system would incur unnecessary overhead if no jobs


were waiting to use the remaining 25%.

A second approach is to compact memory only


when there are jobs waiting to get in.
This would entail constant checking of the entry

queue, which might result in unnecessary overhead


and slow down the processing of the jobs in the
system.
Understanding Operating Systems, Sixth
Edition

64

There are three options for the timing of


compaction:

A third approach is to do it after a prescribed


amount of time has elapsed.
If the amount of time chosen is too small, the

system will spend more time on compaction than


on processing.
If the amount of time is too large, too many jobs
will congregate in the waiting queue and the
advantages of compaction are lost.

Understanding Operating Systems, Sixth


Edition

65

There are three options for the timing of


compaction:

The best choice for any system is decided by


the OS designer who, based on the job mix
and other factors, tries to optimize both
processing time and memory use while
keeping overhead as low as possible.

Understanding Operating Systems, Sixth


Edition

66

Four memory management techniques


Single-user systems
Fixed partitions
Dynamic partitions
Relocatable dynamic partitions

Common requirements of four memory


management techniques
Entire program loaded into memory
Contiguous storage
Memory residency until job completed

Understanding Operating Systems, Sixth


Edition

67

Each places severe restrictions on job


size
Sufficient for first three generations of
computers which processed jobs in batch
mode.

Turnaround time was measured in hours.

Understanding Operating Systems, Sixth


Edition

68

New modern memory management


trends in late 1960s and early 1970s
Discussed in next chapter
Common characteristics of memory schemes

Programs are not stored in contiguous memory


Not all segments reside in memory during job

execution

Understanding Operating Systems, Sixth


Edition

69

You might also like