A critical component of all computer operating systems is memory management. This component is also an integral piece of the Linux computer architecture that enables allocation of the physical memory available between multiple processes. Memory management structures and algorithms in different operating systems (such as Windows and Linux) have much in common (for example, facilitating memory address space expansion beyond physical memory limits via virtual memory addressing coordinated with available and used physical memory space). Though, the overall concept behind memory management differs tremendously among operating systems in areas such as data structure format, process address space distribution, paging management, memory address structure, and the algorithm used for page swapping or replacement.
Since operating systems must manage memory space carefully, each essentially possesses a specific strategy tailored to the system and expected operation. The two most common operating system memory management strategies are uni-programming and multi-programming. Operating systems that employ uni-programming divide main memory into an operating system space and space for the presently executing program (user space). The multi-programming strategy (employed by Linux) differs in that the operating system subdivides user space dynamically to manage more than one process simultaneously. In both strategies, assigned tasks determine exactly how memory allocation and subdivision occurs and memory management delivers protection, organization (both physical and logical), and data sharing between processes.
Although the Linux platform is a Unix variant, Linux is unique regarding memory management implementation as compared to other Unix platforms because the memory management employed by Linux is more complex than other Unix variants and applies kernel memory allocation and virtual memory much different from standard Unix platforms. The Linux kernel memory management component is also quite different from Microsoft Windows and the Mac OS X platforms as well, which both manage memory through a process that involves controlling memory allocation and paging in a way that optimizes the user interface experience rather that resource utilization and process performance as is the case with Linux.
Memory is a big piece of what sets each OS apart from each other. The final post in this series explores Linux file system management features and benefits. Contact us for information on how cloud based Linux platforms can help your organization succeed.