Memory Limits (Hardware Support) | Linux | Windows |
Maximum RAM - 32bit, no PAE | <4GB40 | 1GB (Starter) |
Maximum RAM - 32bit, PAE | 64GB' | 1GB (Starter) |
Maximum RAM - 64bit | 1024GB-8589934592GB | - (Starter)
8GB (Home Basic) 16GB (Home Premium) 128GB (others)' |
Virtual Memory (limits) | Linux | Windows |
split user-mode/kernel-mode 32bit - default | static 3GB/1GB | dynamic 4GB/0GB-0GB/4GB |
split user-mode/kernel-mode 32bit - static 1GB/3GB40 | Y | N |
split user-mode/kernel-mode 32bit - static 2GB/2GB40 | Y | N |
split user-mode/kernel-mode 32bit - static 3GB/1GB40 | Y | N |
split user-mode/kernel-mode 32bit - dynamic 4GB/0GB-0GB/4GB | Y | Y |
i.e. maximum memory per process 32bit, no PAE | 3GB (default)
<4GB40 (dynamic 4GB/0GB-0GB/4GB) |
<4GB40
2.5GB-3.5GB (typically) |
maximum memory per process 32bit, PAE | 64GB' | <4GB40
2.5GB-3.5GB (typically)' |
split user-mode/kernel-mode 64bit | 8388608 TB/8388608 TB' | 8 TB/8 TB' |
i.e. maximum memory per process 64bit | 8388608 TB' | 8 TB' |
Memory (Hardware Features) | Linux | Windows |
Page Attribute Table (PAT) | Y | Y |
x86 MTRR (Memory Type Range Registers) | Y | Y |
Cyrix ARR (Address Range Registers) | Y | Y |
ECC | Y | Y |
Virtual Memory (working sets) | Linux | Windows |
working sets | global | per process |
working set management uses "clock" algorithm | Y | Y |
i.e. working set management - no set cap | Y | N |
i.e. working set management - LRU memory page | used on the entire system | removed for that process |
i.e. working set management - tuner adjusts sets according to memory needs | - | Y |
swapper | N' | N |
Virtual Memory (page size) | Linux | Windows |
IA-32 page size - default (4KB arch) | 4KB | 4KB |
Virtual Memory (priorities) | Linux | Windows |
memory priorities | N
Y (patch) |
Y |
priority levels | 0 | 8 "0-7" |
priority level - default | - | "5" |
priority level based on process/thread | N | Y |
Virtual Memory (features) | Linux | Windows |
lock pages in memory | Y | Y |
copy-on-write executables (COW) | Y' | Y' |
demand paging | Y' | Y' |
Virtual Memory (multiprocessor) | Linux | Windows |
per-CPU kernel memory buffers | Y | Y |
NUMA Memory Manager Support | Y' | Y |
Virtual Memory Management (swap) | Linux | Windows |
swap prefetch | N
Y (with patch) |
N
Y (if preload app) |
swap speculative | N
Y (with patch) |
N |
swap performance - amount used | less15 | more15 |
Stack (kernel) | Linux | Windows |
kernel stack size | 8KB' | 12KB' |
Remote Direct Memory Access | Linux | Windows |
Remote Direct Memory Access (RDMA) | Y | Y |
InfiniBand | Y | N |
iWARP | Y | Y |
<-Prev|Next->
Johnathon Weare © Johnny Weare 2009