

-memory is collection of data in a specific format. The instructions are stored and processed in memory. When the memory is subdivided among different processes it is called memory management. Memory management is important for effective utilization of memory since memory is the most important thing in operating system. Basic terms used in memory management:
1. Frame- fixed length block in main memory
2. Page- fixed length block in secondary memory
3. Segment- variable length block in secondary memory
Memory management requirements include:
1. Reallocation: In multiprogramming system, the main is shared by multiple processes so a programmer cannot predict which programs will be stored in memory while program runs.
Processes are swapped in and out of main memory to maximize processor utilization. When program is swapped out of disk it may be placed in different memory back in requiring relocation.
2. Protection: To protect processes from unwanted interference it is essential to make sure other programs don’t access the memory without proper authorization.
3. Sharing: Any mechanism must have the flexibility to allow several processes to share same memory space. The memory management should allow shared memory with controlled access and with protection.
4. Logical organization: To handle programs the operating system and computer hardware must support fundamental module that enables sharing and protection. This has following advantages:
· Modules can be written and compiled independently.
· Different modules can be assigned varying levels of protection.
· Various mechanism exists to facilitate sharing of modules among different processes.
5. Physical organization: The computer’s memory structure consists of main memory and secondary memory. Main memory is faster but volatile while secondary memory is used for long term storage. The main concern is the flow of information between these memory levels. The complexity of managing the information flow between main and secondary memory along with challenges of overlaying and uncertain space availability makes it difficult for programmers to fully understand and optimize memory usage.