Memory management is the process of managing computer memory. The memory management subsystem of the operating system carries out this task. Since the beginning of computing, there has always existed the need for more memory than the existing physical memory in the system. Both Windows and Linux are operating systems. These operating systems perform basic tasks, such as tracking of directories and files on the disk, sending output to the screen for display, recognizing input from the keyboard and controlling peripheral devices such as drives and printers. The following are the differences in memory management between Linux and Windows (Godbole & Kahate, 2011).
Windows uses a data structure in which it keeps data in a tree form instead of a linked list. The nodes of the tree are known as virtual address descriptors (VAD). The VAD denotes a range of address that has the same protection bounds and commit state information. The VAD marks each node as committed, reserved, or free. Committed nodes are the ones, which are in use that is, code or data has been mapped onto them. Nodes that are unused are marked reserved and are not available for mapping until the removal of reservation (Godbole & Kahate, 2011).
Linux maintains a linked list of virtual memory area structures. These structures represent continuous memory areas, which have the same protection parameters. One searches this list whenever a page is to be found that consists of a given location. The structure records addresses it is mapping onto protection mode, and it records whether the area is private or public. If the number of entries grows greater than 32 it is converted into a tree.
In conclusion, the two systems have a lot in common and few differences technically speaking. Although, they were developed in a different setting that is windows in a commercial setting and Linux in a hacker setting (Godbole & Kahate, 2011).