0% found this document useful (0 votes)
66 views60 pages

OS - Chapter 4 MM Part 1

Uploaded by

Shubham Gupta
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
66 views60 pages

OS - Chapter 4 MM Part 1

Uploaded by

Shubham Gupta
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 60

Memory Management

Chapter 4
What is Memory Management?

•Memory Management is the process of controlling and


coordinating computer memory, assigning portions
known as blocks to various running programs to
optimize the overall performance of the system
•It is the most important function of an operating
system that manages primary memory.
•It helps processes to move back and forward between
the main memory and execution disk.
• It helps OS to keep track of every memory location,
irrespective of whether it is allocated to some process
or it remains free.
Why Use Memory Management?

•It allows you to check how much memory needs to


be allocated to processes that decide which processor
should get memory at what time.
•It allocates the space to application routines.
•It also make sure that these applications do not
interfere with each other.
•Helps protect different processes from each other
•It places the programs in memory so that memory is
utilized to its full extent.
What is logical and physical address?

•Logical Address is generated by CPU while a program is


running.
•The logical address is virtual address as it does not exist
physically, therefore, it is also known as Virtual Address.
•This address is used as a reference to access the physical
memory location by CPU.
•The hardware device called Memory-Management Unit is used
for mapping logical address to its corresponding physical
address.
What is logical and physical address?

•Physical Address identifies a physical location of


required data in a memory.
•The user never directly deals with the physical
address but can access by its corresponding logical
address.
•The user program generates the logical address and
thinks that the program is running in this logical
address but the program needs physical memory for
its execution, therefore, the logical address must be
mapped to the physical address by MMU before they
are used.
Mapping logical address to physical address
Memory Management Techniques
Contiguous memory allocation

•Contiguous memory allocation is basically a method


in which a single contiguous section/part of memory
is allocated to a process or file needing it.
•Because of this all the available memory space
resides at the same place together
•Which means that the freely/unused available
memory partitions are not distributed in a random
fashion here and there across the whole memory
space.
Contiguous memory allocation
Non-Contiguous memory allocation

•Non-Contiguous memory allocation is basically a


method which allocates the memory space present in
different locations to the process as per it’s
requirements.

•This technique of memory allocation helps to reduce


the wastage of memory, which eventually gives rise to
Internal and external fragmentation.
Non-Contiguous memory allocation
Contiguous Memory Management Techniques

•Contiguous Technique can be divided into:


–Fixed (or static) partitioning
–Variable (or dynamic) partitioning
Fixed (or static) partitioning

•This is the oldest and simplest technique used.


• In this partitioning, number of partitions in RAM
are fixed but size of each partition may or may not be
same.
•As it is contiguous allocation, hence no spanning is
allowed.
• Here partition are made before execution or during
system configure.
Fixed (or static) partitioning contd..
Fixed (or static) partitioning contd..

Disadvantages of Fixed Partitioning –

•Internal Fragmentation:
Main memory use is inefficient. Any program, no matter how
small, occupies an entire partition. This can cause internal
fragmentation.

•External Fragmentation:
The total unused space of various partitions cannot be used to
load the processes even though there is space available but
not in the contiguous form (as spanning is not allowed).
What is Fragmentation?

•Processes are stored and removed from memory, which


creates free memory space, which are too small to use by
other processes.

•After sometimes, that processes not able to allocate to


memory blocks because its small size and memory blocks
always remain unused is called fragmentation.

•When free blocks are quite small, so it is not able to fulfill any
request.
What is Fragmentation? Contd..

Fragmentation is of two types


1. External fragmentation
Total memory space is enough to satisfy a request or
to reside a process in it, but it is not contiguous, so it
cannot be used.
2. Internal fragmentation
Memory block assigned to process is bigger. Some
portion of memory is left unused, as it cannot be used
by another process.
Internal and External fragmentation

If a new process P3, requiring a 8 kb of memory comes, it can


not be loaded because of fragmentation, although there is
enough total space
Variable Partitioning

•Variable Partitioning is a part of Contiguous


allocation technique.
•It is used to alleviate the problem faced by Fixed
Partitioning.
•In contrast with fixed partitioning, partitions are not
made before the execution or during system
configure.
Variable Partitioning

Various features associated with variable Partitioning-

•Initially RAM is empty and partitions are made during the run-
time according to process’s need instead of partitioning during
system configure.
•The size of partition will be equal to incoming process.
•The partition size varies according to the need of the process so
that the internal fragmentation can be avoided to ensure
efficient utilization of RAM.
•Number of partitions in RAM is not fixed and depends on the
number of incoming process and Main Memory’s size.
Variable Partitioning
Advantages of Variable Partitioning

1. No Internal Fragmentation:
In variable Partitioning, space in main memory is allocated strictly according
to the need of process, hence there is no case of internal fragmentation.
There will be no unused space left in the partition.
2. No restriction on Degree of Multiprogramming:
More number of processes can be accommodated due to absence of
internal fragmentation. A process can be loaded until the memory is empty.
3. No Limitation on the size of the process:
In Fixed partitioning, the process with the size greater than the size of the
largest partition could not be loaded and process can not be divided as it is
invalid in contiguous allocation technique.
Here, In variable partitioning, the process size can’t be restricted since the
partition size is decided according to the process size.
Disadvantages of Variable Partitioning

1. Difficult Implementation:
Implementing variable Partitioning is difficult as compared to
Fixed Partitioning as it involves allocation of memory during
run-time rather than during system configure.

2. External Fragmentation:
There will be external fragmentation inspite of absence of
internal fragmentation.
Disadvantages of Variable Partitioning

Now P5 of size 3 MB cannot be


accommodated in spite of
required available space because
in contiguous no spanning is
allowed.
Compaction

•It is a method to overcome external fragmentation


•All free blocks are brought together to as one large
block of free space
•It requires dynamic free allocation
•It has cost and selection of optimal compaction
strategy is difficult
•One method for compaction is swapping
Compaction
How fragmentation can cause waste of memory
and a compaction technique can be used to create
more free memory out of fragmented memory
What is Swapping?

•Swapping is a method in which the process should


be swapped temporarily from the main memory to
the backing store.
•It will be later brought back into the memory for
continue execution.
•Backing store is a hard disk or some other
secondary storage device that should be big enough
inorder to accommodate copies of all memory
images for all users.
•It is also capable of offering direct access to these
memory images.
What is Swapping?
Benefits of Swapping

•It offers a higher degree of multiprogramming.


•Allows dynamic relocation. Processes can be swap in
different locations.
•It helps to get better utilization of memory.
•Minimum wastage of CPU time on completion so it can
easily be applied to a priority-based scheduling method
to improve its performance.
What is Memory allocation?

•Memory allocation is a process by which computer


programs are assigned memory or space.
Here, main memory is divided into two types of
partitions
•Low Memory - Operating system resides in this type
of memory.
•High Memory- User processes are held in high
memory.
Memory allocation technique/
Partition Allocation algorithm

•Memory is divided into different blocks or partitions.


Each process is allocated according to the requirement.
Below are the various partition allocation schemes :
•First Fit: In this type fit, the partition is allocated, which is
the first sufficient block from the beginning of the main
memory.
•Best Fit: It allocates the process to the partition that is
the first smallest partition among the free partitions.
•Worst Fit: It allocates the process to the partition, which
is the largest sufficient freely available partition in the
main memory.
Ex. Assume a process P4 comes with a memory requirement 3 KB.
Locate this process.
Non-Contiguous Memory
Allocation Technique
•In the non-contiguous memory allocation technique,
different parts of the same process are stored in
different places of the main memory.

Types:
•Paging [Fixed partitioning]
•Segmentation[Variable partitioning]
What is Paging?

•In Operating Systems, Paging is a storage mechanism used to


retrieve processes from the secondary storage into the main
memory in the form of pages.
•The main idea behind the paging is to divide each process in
the form of pages.
•The main memory will also be divided in the form of equal
size frames.
•One page of the process is to be stored in one of the frames
of the memory.
What is Paging? Contd..

•The pages can be stored at the different locations of the


memory but the priority is always to find the contiguous
frames or holes.
•Pages of the process are brought into the main memory
only when they are required otherwise they reside in the
secondary storage.
•The pages are mapped to the frames in Paging, page size
needs to be as same as frame size.
Paging concept
Address Mapping
Translation of logical Address into
physical Address

•As a CPU always generates a logical address and we


need a physical address for accessing the main
memory.
•This mapping is done by the MMU(memory
management Unit) with the help of the page table.
Translation of logical Address
into physical Address contd..

Logical Address: The logical address consists of two


parts page number and page offset.

1. Page Number: It tells the exact page of the process


which the CPU wants to access.
2. Page Offset: It tells the exact word on that page
which the CPU wants to read.

Logical Address = Page Number + Page Offset


Translation of logical Address into
physical Address contd..

Physical Address: The physical address consists of two


parts frame number and page offset.

1. Frame Number: It tells the exact frame where the page is


stored in physical memory.
2. Page Offset: It tells the exact word on that page which the
CPU wants to read. It requires no translation as the page size
is the same as the frame size.

Physical Address = Frame Number + Page Offset


Translation of logical Address into
physical Address contd..

Page table:
•A page table contains the frame number corresponding to
the page number of some specific process.

•The page table maps the page number to its actual location
(frame number) in the memory.

•So, each process will have its own page table. A register
called Page Table Base Register(PTBR) which holds the base
value of the page table.
How is the translation done?

•The CPU generates the logical address which


contains the page number and the page offset.
•The PTBR register contains the address of the page
table.
• Now, the page table helps in determining the frame
number corresponding to the page number.
• Now, with the help of frame number and the page
offset the physical address is determined and the
page is accessed in the main memory.
Advantages of Paging

•There is no external fragmentation as it allows us


to store the data in a non-contiguous way.

•Swapping is easy between equal-sized pages and


frames.
Disadvantages of Paging

•As the size of the frame is fixed, so it may suffer from internal
fragmentation. It may happen that the process is too small
and it may not acquire the entire frame size.
•The access time increases because of paging as the main
memory has to be now accessed two times. First, we need to
access the page table which is also stored in the main memory
and second, combine the frame number with the page offset
and then get the physical address of the page which is again
stored in the main memory.
•For every process, we have an independent page table and
maintaining the page table is extra overhead.
What is Segmentation?

Segmentation method works almost similarly to


paging. The only difference between the two is that
segments are of variable-length, whereas, in the
paging method, pages are always of fixed size.
What is Segmentation? Contd..

•In paging, we were blindly diving the process into


pages of fixed sizes but in segmentation, we divide
the process into modules for better visualization of
the process.
•Here each segment or module consists of the same
type of functions.
• For example, the main function is included in one
segment, library function is kept in other segments,
and so on.
•As the size of segments may vary, so memory is
divided into variable size parts.
Translation of logical Address into
physical Address

•As a CPU always generates a logical address and we


need a physical address for accessing the main
memory.
•This mapping is done by the MMU(memory
management Unit) with the help of the segment
table.
•The OS maintains a segment map table for all the
processes.
Translation of logical Address into
physical Address contd..

Logical Address: The logical address consists of two


parts segment number and segment offset.

1. Segment Number: It tells the specific segment of


the process from which the CPU wants to read the
data.
2. Segment Offset: It tells the exact word in that
segment which the CPU wants to read.

Logical Address = Segment Number + Segment Offset


Translation of logical Address
into physical Address contd..

Physical Address:
The physical address is obtained by adding the base
address of the segment to the segment offset.
Translation of logical Address into
physical Address contd..

Segment table:
A segment table stores the base address of each
segment in the main memory. It has two parts
i.e. Base and Limit.

Base indicates the base address or starting address of


the segment in the main memory.
Limit tells the size of that segment.

A register called Segment Table Base Register(STBR)


which holds the base value of the segment table.
How is the translation done?

•The CPU generates the logical address which contains the


segment number and the segment offset.

•STBR register contains the address of the segment table. Now,


the segment table helps in determining the base address of
the segment corresponding to the segment number.

•Now, the segment offset is compared with the limit


corresponding to the Base.
How is the translation done? Contd..

•If the segment offset is greater than the limit then it is an


invalid address.
•This is because the CPU is trying to access a word in the
segment and this value is greater than the size of the segment
itself which is not possible.
• If the segment offset is less than or equal to the limit then
only the request is accepted.
•The physical address is generated by adding the base address
of the segment to the segment offset.
Advantages of Segmentation

•The size of the segment table is less compared to the


size of the page table.

•There is no internal fragmentation.


Disadvantages of Segmentation

•When the processes are loaded and removed ( during


swapping ) from the main memory then free memory spaces
are broken into smaller pieces and this causes external
fragmentation.
•Here also the time to access the data increases as due to
segmentation the main memory has to be now accessed two
times. First, we need to access the segment table which is
also stored in the main memory and second, combine the
base address of the segment with the segment offset and
then get the physical address which is again stored in the
main memory.

You might also like