KEMBAR78
contiguous memory allocation.pptx
Contiguous Memory Allocation
By
S.RAJAPRIYA, MS(IT).,
Assistant Professor of IT
We discuss about various ways to manage memory.
Logical Address -> An address generated by the CPU is commonly
referred as logical address.
We usually refer the logical address as Virtual address
Physical address -> The address that is loaded into the memory
address register of the memory is referred as physical address.
This is one most common way to allocate different parts of the main
memory in a most efficient way.
The memory is usually divided into two partitions:
Resident operating system User processes
We may place the operating system in either low memory or high
memory.
we shall consider only the situation where the operating system
resides in low memory.
We want several user processes to reside in memory at the same
time.
We therefore need to consider how to allocate available memory to
the processes that are in the input queue waiting to be brought into
memory.
Protecting the operating system from user processes, and protecting
user processes from one another.
We can provide this protection by using a relocation register.
The relocation register contains the value of the smallest physical
address; the limit register contains the range of logical addresses.
With relocation and limit registers, each logical address must be less
than the limit register;
The MMU maps the logical address dynamically by adding the value in
the relocation register.
This mapped address is sent to memory
Hardware support for relocation and limit registers
When the CPU scheduler selects a process for execution, the
dispatcher loads the relocation and limit registers with the correct values
as part of the context switch.
The relocation-register scheme provides an effective way to allow the
operating-system size to change dynamically.
 For example, the operating system contains code and buffer space for
device drivers.
If a device driver is not commonly used, we do not want to keep the
code and data in memory, as we might be able to use that space for
other purposes.
Such code is sometimes called transient operating-system code; it
comes and goes as needed.
One of the simplest methods for memory allocation is to divide
memory into several fixed-sized partitions.
Each partition may contain exactly one process. Thus, the degree of
multiprogramming is bound by the number of partitions.
In this multiple-partition method, when a partition is free, a process is
selected from the input queue and is loaded into the free partition.
When the process terminates, the partition becomes available for
another process.
This method was originally used by the IBM 0S/360 operating
system (called MFT)
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
 If the hole is too large, it is split into two: One part is allocated to the
arriving process; the other is returned to the set of holes.
When a process terminates, it releases its block of memory, which is
then placed back in the set of holes.
 If the new hole is adjacent to other holes, these adjacent holes are
merged to form one larger hole.
First-fit: Allocate the first hole that is big enough. Searching can
start either at the beginning of the set of holes or where the
previous first-fit search ended. We can stop searching as soon as
we find a free hole that is large enough.
 Best-fit: Allocate the smallest hole that is big enough; must
search entire list, unless ordered by size
• Produces the smallest leftover hole
 Worst-fit: Allocate the largest hole; must also search entire list
• Produces the largest leftover hole
How to satisfy a request of size n from a list of free holes?
As processes are loaded and removed from memory, the free
memory space is broken into little pieces.
External fragmentation exists when enough total memory space
exists to satisfy a request, but it is not contiguous; storage is
fragmented into a large number of small holes.
This fragmentation problem can be severe.
Memory fragmentation can be internal as well as external.
The selection of the first-fit versus best-fit strategies can affect the
amount of 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
First fit analysis reveals that given N blocks allocated, 0.5 N blocks
lost to fragmentation
1/3 may be unusable -> 50-percent rule
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
 The simplest compaction algorithm is simply to move all
processes toward one end of memory.
all holes move in the other direction, producing one large hole
of available memory. This scheme can be expensive.
Another possible solution to the external-fragmentation problem is to
permit the logical-address space of a process to be noncontiguous,.
Thus allowing a process to be allocated physical memory wherever the
latter is available.
contiguous memory allocation.pptx

contiguous memory allocation.pptx

  • 1.
    Contiguous Memory Allocation By S.RAJAPRIYA,MS(IT)., Assistant Professor of IT
  • 2.
    We discuss aboutvarious ways to manage memory. Logical Address -> An address generated by the CPU is commonly referred as logical address. We usually refer the logical address as Virtual address Physical address -> The address that is loaded into the memory address register of the memory is referred as physical address.
  • 3.
    This is onemost common way to allocate different parts of the main memory in a most efficient way. The memory is usually divided into two partitions: Resident operating system User processes We may place the operating system in either low memory or high memory. we shall consider only the situation where the operating system resides in low memory. We want several user processes to reside in memory at the same time. We therefore need to consider how to allocate available memory to the processes that are in the input queue waiting to be brought into memory.
  • 4.
    Protecting the operatingsystem from user processes, and protecting user processes from one another. We can provide this protection by using a relocation register. The relocation register contains the value of the smallest physical address; the limit register contains the range of logical addresses. With relocation and limit registers, each logical address must be less than the limit register; The MMU maps the logical address dynamically by adding the value in the relocation register. This mapped address is sent to memory
  • 5.
    Hardware support forrelocation and limit registers
  • 6.
    When the CPUscheduler selects a process for execution, the dispatcher loads the relocation and limit registers with the correct values as part of the context switch. The relocation-register scheme provides an effective way to allow the operating-system size to change dynamically.  For example, the operating system contains code and buffer space for device drivers. If a device driver is not commonly used, we do not want to keep the code and data in memory, as we might be able to use that space for other purposes. Such code is sometimes called transient operating-system code; it comes and goes as needed.
  • 7.
    One of thesimplest methods for memory allocation is to divide memory into several fixed-sized partitions. Each partition may contain exactly one process. Thus, the degree of multiprogramming is bound by the number of partitions. In this multiple-partition method, when a partition is free, a process is selected from the input queue and is loaded into the free partition. When the process terminates, the partition becomes available for another process. This method was originally used by the IBM 0S/360 operating system (called MFT)
  • 8.
    Hole – blockof 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  If the hole is too large, it is split into two: One part is allocated to the arriving process; the other is returned to the set of holes. When a process terminates, it releases its block of memory, which is then placed back in the set of holes.  If the new hole is adjacent to other holes, these adjacent holes are merged to form one larger hole.
  • 9.
    First-fit: Allocate thefirst hole that is big enough. Searching can start either at the beginning of the set of holes or where the previous first-fit search ended. We can stop searching as soon as we find a free hole that is large enough.  Best-fit: Allocate the smallest hole that is big enough; must search entire list, unless ordered by size • Produces the smallest leftover hole  Worst-fit: Allocate the largest hole; must also search entire list • Produces the largest leftover hole How to satisfy a request of size n from a list of free holes?
  • 10.
    As processes areloaded and removed from memory, the free memory space is broken into little pieces. External fragmentation exists when enough total memory space exists to satisfy a request, but it is not contiguous; storage is fragmented into a large number of small holes. This fragmentation problem can be severe. Memory fragmentation can be internal as well as external. The selection of the first-fit versus best-fit strategies can affect the amount of fragmentation.
  • 11.
    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 First fit analysis reveals that given N blocks allocated, 0.5 N blocks lost to fragmentation 1/3 may be unusable -> 50-percent rule
  • 12.
    Reduce external fragmentationby 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  The simplest compaction algorithm is simply to move all processes toward one end of memory. all holes move in the other direction, producing one large hole of available memory. This scheme can be expensive.
  • 13.
    Another possible solutionto the external-fragmentation problem is to permit the logical-address space of a process to be noncontiguous,. Thus allowing a process to be allocated physical memory wherever the latter is available.