Sunday, September 28, 2008

Memory management in operating systems

Hello friends this is my first post and in this post i am going to told you about memory management in operating systems.

If we talk about the memory management then it simply means that we are going to manage only the main memory(RAM) not secondary memory(Hard disk).As all we know that main memory is central to the operation of a modern computer system.The main task of a memory manager is to made available the memory first to the primary process then to the other.If we talk about the main memory we know that it is a large array of words or bytes ranging from millions to billions.Each word or byte has its own address.The central processor reads instructions from the main memory during the instruction fetch cycle and both reads and writes data from the from the main memory during the fetch cycle.

The main memory is only the memory that a CPU can access directly otherwise for accessing any instruction from disk then it first transferred to the main memory then CPU executes it.For a program to be executed it must be mapped to the absolute address and loaded into memory.Now as the CPU executes this program the its accessing instructions and data by generating their absolute addresses.Eventually when this program terminates it releases its occupied main memory and this memory is allocated to the next program and loaded in it.Now to improve both CPU utilization's and its speed of computer response to its users,general purpose computers keep several programs in memory,creating a need for memory management.Today there exists a lot of memory management schemes but to select a particular management scheme is totally depends on the situation or sometimes it depends on the hardware design of the system.

Each algorithm requires its own hardware support.Now in addition to memory management CPU is also engaged in various activities of memory.

  • Keeping track of which part of memory are currently being used and by whom.

  • Deciding which process or data to move into and out of memory.

  • Allocating and Deallocating memory space as needed.