0% found this document useful (0 votes)
12 views6 pages

Main Memory

Uploaded by

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

Main Memory

Uploaded by

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

The term Memory can be defined as a collection of data in a specific format.

It
is used to store instructions and process data. The memory comprises a large
array or group of words or bytes, each with its own location. The primary motive
of a computer system is to execute programs. These programs, along with the
information they access, should be in the main memory during execution. The
CPU fetches instructions from memory according to the value of the program
counter.
To achieve a degree of multiprogramming and proper utilization of memory,
memory management is important. Many memory management methods exist,
reflecting various approaches, and the effectiveness of each algorithm depends
on the situation.
Here, we will cover the following memory management topics:
 What is Main Memory
 What is Memory Management
 Why memory Management is required
 Logical address space and Physical address space
 Static and dynamic loading
 Static and dynamic linking
 Swapping
 Contiguous Memory allocation
 Memory Allocation
 First Fit
 Best Fit
 Worst Fit
 Fragmentation
 Internal Fragmentation
 External Fragmentation
 Paging

Now before, We start memory management let us know what is main


memory.

What is Main Memory:

The main memory is central to the operation of a modern computer. Main


Memory is a large array of words or bytes, ranging in size from hundreds of
thousands to billions. Main memory is a repository of rapidly available
information shared by the CPU and I/O devices. Main memory is the place
where programs and information are kept when the processor is effectively
utilizing them. Main memory is associated with the processor, so moving
instructions and information into and out of the processor is extremely fast.
Main memory is also known as RAM(Random Access Memory). This memory is
a volatile memory.RAM lost its data when a power interruption occurs.

What is Memory Management :

In a multiprogramming computer, the operating system resides in a part of


memory and the rest is used by multiple processes. The task of subdividing the
memory among different processes is called memory management. Memory
management is a method in the operating system to manage operations
between main memory and disk during process execution. The main aim of
memory management is to achieve efficient utilization of memory.

Why Memory Management is required:

 Allocate and de-allocate memory before and after process execution.


 To keep track of used memory space by processes.
 To minimize fragmentation issues.
 To proper utilization of main memory.
 To maintain data integrity while executing of process.
Now we are discussing the concept of logical address space and Physical
address space:

Logical and Physical Address Space:

Logical Address space: An address generated by the CPU is known as a


“Logical Address”. It is also known as a Virtual address. Logical address space
can be defined as the size of the process. A logical address can be changed.
Physical Address space: An address seen by the memory unit (i.e the one
loaded into the memory address register of the memory) is commonly known as
a “Physical Address”. A Physical address is also known as a Real address. The
set of all physical addresses corresponding to these logical addresses is known
as Physical address space. A physical address is computed by MMU. The run-
time mapping from virtual to physical addresses is done by a hardware device
Memory Management Unit(MMU). The physical address always remains
constant.

Static and Dynamic Loading:

Loading a process into the main memory is done by a loader. There are two
different types of loading :
 Static loading:- loading the entire program into a fixed address. It requires
more memory space.
 Dynamic loading:- The entire program and all data of a process must be in
physical memory for the process to execute. So, the size of a process is
limited to the size of physical memory. To gain proper memory utilization,
dynamic loading is used. In dynamic loading, a routine is not loaded until it is
called. All routines are residing on disk in a relocatable load format. One of
the advantages of dynamic loading is that unused routine is never loaded.
This loading is useful when a large amount of code is needed to handle it
efficiently.

Static and Dynamic linking:

To perform a linking task a linker is used. A linker is a program that takes one or
more object files generated by a compiler and combines them into a single
executable file.
 Static linking: In static linking, the linker combines all necessary program
modules into a single executable program. So there is no runtime
dependency. Some operating systems support only static linking, in which
system language libraries are treated like any other object module.
 Dynamic linking: The basic concept of dynamic linking is similar to dynamic
loading. In dynamic linking, “Stub” is included for each appropriate library
routine reference. A stub is a small piece of code. When the stub is
executed, it checks whether the needed routine is already in memory or not.
If not available then the program loads the routine into memory.

Swapping :

When a process is executed it must have resided in memory. Swapping is a


process of swapping a process temporarily into a secondary memory from the
main memory, which is fast as compared to secondary memory. A swapping
allows more processes to be run and can be fit into memory at one time. The
main part of swapping is transferred time and the total time is directly
proportional to the amount of memory swapped. Swapping is also known as
roll-out, roll in, because if a higher priority process arrives and wants service,
the memory manager can swap out the lower priority process and then load and
execute the higher priority process. After finishing higher priority work, the lower
priority process swapped back in memory and continued to the execution
process.
swapping in memory management

memory management with monoprogramming(without swapping):


this is the simplest memory management approach the memory is divided into
two sections:
 one part for operating system
 second part for user program

fence register

operating
system user program

 in this approach operating system keep tracks of first and last location
available for allocation of user program
 operating system is loaded either at bottom or at top
 interrupt vector are often loaded in low memory therefore it makes sense to
load operating system in low memory
 sharing of data and code does not make much sense in single process
environment
 operating system can be protected from user program with the help of fence
register.
Advantage
it is simple management approach
Disadvantage
it does not support multiprogramming
memory is wasted
multiprogramming with fixed partitions(without swapping):
 memory partitions scheme with fixed number of partitions was introduced to
support multiprogramming. this scheme is based on contiguous allocation
 each partition is block of contiguous memory
 memory is partition into fixed number of partition
 each partition is of fixed size

You might also like