Memory management is a complex field of computer science and there are many techniques being developed to make it more efficient. A deeper understanding about the memory management approaches on a specific system has become an important issue for a programmer or system designer. Memory management is the process of controlling and coordinating computer memory, assigning portion called block to various running program to optimize overall system performance. It resides in hardware in Operating System, and in programs and applications.Proper management of memort is vital for every computer operating system.
Modern advance operating system has adequate rules to allocate their memory to different task during execution of any program. Failure to obey these rules can lead to bugs, poor performance, and at worst taken over by viruses and malicious software. Unix is a machine independant so its memory management scheme will vary from one system to next. Early versions of Unix used variable partitioning with no virtual memory scheme. Current implementations of Unix make use of paged virtual memory.
Solaris has a reputation for being well-suited to symmetric multiprocessing, supporting a large number of CPUs. Virtual memory system is the core for a Solaris system. Linux implements the virtual memory data structure just like Unix.
Linux is modern and have good theoretical concepts, and are all suitable for production environments. linux often favours simplicity against performance. For Windows, an allocation of resources are not fixed, but are dynamically adjusted according to operational requirements. The implementation of these new technologies such as Address Space Layout Randomization are mostly due to the hacker threat of an advanced knowledge of the location of key system components, and are partly due to the Window’s goal of using memory allocation more efficiently by allocation on an as needed basis. In order to understand these new technologies better and be able to use them as a developer, device driver writer, or system’s administrator.
Android has a default security mechanism that sets a hard limit on the heap size in order to prevent apps from using all available memory. Android can also kill a process; any application component, including any background threads can all be consequently destroyed at any moment to release resources as needed. The Android system does not allow the machine to be overcommitted and will terminate idle apps to free memory.