

Memory is the important part of the computer that is used to store the data. Its management is critical to the computer system because the amount of main memory available in a computer system is very limited. to increase performance, several processes are executed simultaneously. For this, we must keep several processes in the main memory, so it is even more important to manage them effectively.Memory manager is used to keep track of the status of memory locations, whether it is free or allocated.The memory manager is responsible for protecting the memory allocated to each process from being corrupted by another process. Memory managers should enable sharing of memory space between processes.memory manager permits computers with a smaall amount of main memory to execute programs larger than the size or amount of available memory.it does thiss by moving information back and forth between primary memory and secondary memory by using the concpt of swapping.memory managers should enable sharing of memoey spacebetween processss.thus two programs can reside at same memory location although at different times.
there are two types of memory management techniques:
Contiguous memory management and Non-Contiguous memory management.
In a Contiguous memory management scheme, each program occupies a single contiguous block of storage locations, i.e., a set of memory locations with addresses.
In a Non-Contiguous memory management scheme, the program is divided into different blocks and loaded at different portions of the memory that need not necessarily be adjacent to one another. This scheme can be classified depending upon the size of blocks and whether the blocks reside in the main memory or not.
memory mannagment is requried for following reasons:
1.allocate and reallocate memory before and after program execution.
2.To keep track of used memory space by processes.
3.To properly utilie main memory.
4.To maintain data integrity while executing process.