Week 1: Memory Management Paper
Differences in memory management between Windows® and Linux®.
Before I discuss the differences in memory management between Windows & Linux lets understand what memory management really is; Memory management is the function of a computer operating system responsible for managing the computer's primary memory. The management function keeps track of the status of each memory location if it’s allocated or free. It determines how memory is used among competing processes, deciding who gets memory, when they receive it, and how much they are allowed. When memory is allocated it determines which memory locations will be assigned. Then it tracks when memory is freed up or unallocated and updates the status accordingly.
In Windows OS the memory manager implements virtual memory provides a core set of services such as memory mapped files, copy-on-write memory, large memory support, and underlying support for the cache manager. According to Microsoft each process on 32-bit Microsoft Windows has its own virtual address space that enables addressing up to 4 gigabytes of memory. Each process on 64-bit Windows has a virtual address space of 8 terabytes. All threads of a process can access its virtual address space. However, threads cannot access memory that belongs to another process, which protects a process from being corrupted by another process.
Virtual Memory management: Windows
32-bit versions split user mode/kernel mode from 2GB/2GB to 3GB/1GB
Demand-paged virtual memory * 32 or 64 bits * Copy-on-write * Shared memory * Memory mapped files
Physical memory management: Windows
Per-process working sets
Working set tuner adjust sets according to memory needs using the clock algorithm.
Now in Linux OS the memory manager implements demand paging with a copy-on-write strategy relying on the 386's paging support. A process acquires its page tables