The difference between Windows and Linux memory management starts with understanding the requirements of memory management in today’s multiprogramming systems. Memory management requirements are relocation, protection, sharing, local organization, and physical organization. These requirements play a vital role in the processing speed response when using the computer. Windows and Linux have several similarities in regards to memory management but also differ especially with Windows being a sophisticate system and Linux being open sourced. “Linux shares UNIX characteristics but has its own features and is very complex” (Stallings, 2012, p. 384). Linux virtual memory uses a three- level page structure. The first part is the page structure which is an active process having the size of one page. The entry goes to the page directory and the page directory must be in the main memory to be active.
Next is the page middle directory which can span multiple pages. Each entry will point to one page of the table. Last is the page table and refers to one virtual page of the process. A virtual address is used consisting of four fields which are the index into the page directory, index into the page middle directory, index into the page table, and the offset in the selected page of memory. The table structure was designed for 64-bit Alpha processor and is independent. Linux uses the buddy system for efficiency of reading in and writing out pages to and from memory. The buddy system splits and merges pages which are allocated and deallocated in the main memory. The page replacement algorithm in Linux deals with a simple clock which gives each page an age variable. The more times the page is accessed, the age variable is increased. A page that is old would be replaced since it has not been accessed in quite a long time. Linux kernel memory allocation manages the main memory page frames which allocates and deallocates frames for the virtual memory management.
When the minimum amount of allocation is less than a page, Linux uses a slab allocation for these smaller chunks making the system more efficient. Windows memory manager is designed to use 4 to 64 Kbytes page sizes and controls how memory is allocated. On 32-bit systems, the Windows process shows a 32-bit address which allows 4 Gbytes of virtual memory for each process which half is for the operating system and half is for the virtual address space when running in kernel-mode. With the introduction of 64-bit, systems can run more efficiently with larger memory intensive programs. Windows paging can make use of the entire space which can then be brought into the main memory. The operating system manages the address in three regions; available references the address not currently used, reserved for setting aside the process through the virtual memory manager, and committed address for processes to access virtual memory page.
When virtual memory is high, the processes increase, and when they are low, older pages are swapped out. In conclusion, Windows and Linux have a few similarities. Both swaps out older pages that are no longer needed to improve the processes Window memory management is more secure and performance orientated, but is more complex. Linux is simpler and easier to maintain but is not secured due to being open sourced and need improvement. Linux was originated in a hacker’s environment while Windows is in a commercial environment. Windows has more effort through design and Linus was favored for simplicity. Each one has their own positives and negatives and the final decision is what system is he and she more comfortable with.
Stallings, W. (2012). Operating Systems: Internals and Design Principles (7th ed.). Retrieved from The University of Phoenix eBook Collection database.