Skip to main content

Introduction to Memory Management in Operating System

Introduction to Memory Management
Main Memory refers to a physical memory that is the internal memory to the computer. The word main is used to distinguish it from external mass storage devices such as disk drives. Main memory is also known as RAM. The computer is able to change only data that is in main memory. Therefore, every program we execute and every file we access must be copied from a storage device into main memory.

All the programs are loaded in the main memeory for execution. Sometimes complete program is loaded into the memory, but some times a certain part or routine of the program is loaded into the main memory only when it is called by the program, this mechanism is called Dynamic Loading, this enhance the performance.

Also, at times one program is dependent on some other program. In such a case, rather than loading all the dependent programs, CPU links the dependent programs to the main executing program when its required. This mechanism is known as Dynamic Linking.


A process needs to be in memory for execution. But sometimes there is not enough main memory to hold all the currently active processes in a timesharing system. So, excess process are kept on disk and brought in to run dynamically. Swapping is the process of bringing in each process in main memory, running it for a while and then putting it back to the disk.

Contiguous Memory Allocation

In contiguous memory allocation each process is contained in a single contiguous block of memory. Memory is divided into several fixed size partitions. Each partition contains exactly one process. When a partition is free, a process is selected from the input queue and loaded into it. The free blocks of memory are known as holes. The set of holes is searched to determine which hole is best to allocate.

Memory Protection

Memory protection is a phenomenon by which we control memory access rights on a computer. The main aim of it is to prevent a process from accessing memory that has not been allocated to it. Hence prevents a bug within a process from affecting other processes, or the operating system itself, and instead results in a segmentation fault or storage violation exception being sent to the disturbing process, generally killing of process.

Memory Allocation

Memory allocation is a process by which computer programs are assigned memory or space. It is of three types :
  1. First Fit:The first hole that is big enough is allocated to program.
  2. Best Fit:The smallest hole that is big enough is allocated to program.
  3. Worst Fit:The largest hole that is big enough is allocated to program.


Fragmentation occurs in a dynamic memory allocation system when most of the free blocks are too small to satisfy any request. It is generally termed as inability to use the available memory.

In such situation processes are loaded and removed from the memory. As a result of this, free holes exists to satisfy a request but is non contiguous i.e. the memory is fragmented into large no. Of small holes. This phenomenon is known as External Fragmentation.

Also, at times the physical memory is broken into fixed size blocks and memory is allocated in unit of block sizes. The memory allocated to a space may be slightly larger than the requested memory. The difference between allocated and required memory is known as Internal fragmentation i.e. the memory that is internal to a partition but is of no use.


A solution to fragmentation problem is Paging. Paging is a memory management mechanism that allows the physical address space of a process to be non-contagious. Here physical memory is divided into blocks of equal size called Pages. The pages belonging to a certain process are loaded into available memory frames.

Page Table

A Page Table is the data structure used by a virtual memory system in a computer operating system to store the mapping between virtual address and physical addresses.

Virtual address is also known as Logical address and is generated by the CPU. While Physical address is the address that actually exists on memory.


Segmentation is another memory management scheme that supports the user-view of memory. Segmentation allows breaking of the virtual address space of a single process into segments that may be placed in non-contiguous areas of physical memory.

Segmentation with Paging

Both paging and segmentation have their advantages and disadvantages, it is better to combine these two schemes to improve on each. The combined scheme is known as 'Page the Elements'. Each segment in this scheme is divided into pages and each segment is maintained in a page table. So the logical address is divided into following 3 parts :
  • Segment numbers(S)
  • Page number (P)
  • The displacement or offset number (D)


Popular posts from this blog

What is the difference between a direct and an indirect address instruction ?

Direct addressing means the instruction refers directly to the address being accessed. That is, the instruction encoding itself contains the address of the location. Depending on the instruction set, it may also allow computing a small index relative to the address. When used that way, you can think of that as a direct-indexed mode. (Note: Some processors call ‘direct’ mode ‘absolute’, such as the 6502.)   Indirect addressing uses an address held in a register or other location to determine what memory location to read or write. The idea here is that the instruction itself isn’t directly telling you the address to access, but rather indirectly telling the CPU where to find that address. The processor may also allow you to add a small offset to the indirect address, giving an indirect-indexed addressing mode. Also Read : 5 Best Terminal Emulators for Linux The 6502 one is a little quirky: The 6502 doesn’t have general-purpose registers large enough to store add

What Are The Benefits Of Working As a Freelancer

Let’s assume that you know what freelancer is, working as a  Freelancer  has so many advantages but they have some disadvantages too. But in this post, we’ll focus on the benefits of working as a freelancer. Ok ok, enough intro, let’s get right on the main stuff. 😊 What Are The Benefits Of Working As a Freelancer You’re Your Own Boss Freelancers are essentially their own bosses and can avoid all the stress that comes from working for someone difficult. You Control Your Workload As a freelancer, you get to say when enough is enough. You can control the number of clients and projects. You’re Less Likely To Get Sick Most Freelancers  work  from home & deal with all their clients remotely. This working situation keeps away many diseases. You Work Whenever You Want As a freelancer, whenever you need a break, you can get one. And you can take naps whenever you need one. You Work Wherever You Want Freelancers  can work from  anywhere  in the world as long a

What is ASP.NET? and it's ARCHITECTURE

What is ASP.Net? ASP.Net is a web development platform provided by Microsoft . It is used for creating web-based applications. ASP.Net was first released in the year 2002. The first version of ASP.Net deployed was 1.0. The most recent version of ASP.Net is version 4.6. ASP.Net is designed to work with the HTTP protocol. This is the standard protocol used across all web applications. ASP.Net applications can also be written in a variety of .Net languages. These include C#, VB.Net, and J#. In this chapter, you will see some basic fundamental of the .Net framework. The full form of ASP is Active Server Pages, and .NET is Network Enabled Technologies. ASP.NET Architecture and its Components ASP.Net is a framework which is used to develop a Web-based application. The basic architecture of the ASP.Net framework is as shown below. ASP.NET Architecture Diagram  he architecture of the.Net framework is based on the following key components Language – A variet