We will be comparing the Memory Management (MM) Sub-Systems of theseoperating systems - Linux 2.4 and Windows. Windows was chosen since it is avery popular operating system for use as a desktop especially with beginners, andhas now evolved into a mature operating system. Linux was chosen because it isgrowing more and more popular by the day, and seems to have an important placein the future.
MEMORY MANAGEMENT SYSTEM
The Memory Management System is one of the important core parts of anoperating system. Its basic function is to manage the memory hierarchy of RAMand hard disks available on a machine. Its important tasks include allocation anddeallocation of memory to processes taking care of logistics, and implementationof Virtual Memory by utilizing hard disk as extra RAM. The Memory systemshould be optimized as far as possible, since its performance greatly affects theoverall performance and speed of the system.
An important concept in the context of MM Systems is Virtual Memory. Back inthe early days of computing, researchers sensed the ever growing memoryrequirements of application programs, so the idea of Virtual Memory was born.The idea is to provide an application program the illusion of the presence of a verylarge amount of memory available for its use. The kernel will provide such afacility by making use of secondary storage - the hard disk - to fulfill the extraspace requirements.For the virtual memory system to work, we require some mapping function whichwill perform address translation, converting the virtual address to the physicaladdress. The virtual address is the address which the application uses to refer to amemory location, and the physical address is the actual memory location passedout to the local memory bus. This function is generally one of Paging, or Segmentation, or both - depending on the kernel, processor architecture and itsstate.