2
1
Linux OS:es will typically allow overcommit of memory. For example a process can allocate 100GB memory, even though the machine only has 8GB physical memory and no swap.
As long as all the allocated memory isn't actually used, the process will work. If the program tries to use it all, the OOM-killer will kill processes to free up memory.
How does this work in Windows? Will Windows refuse to give processes virtual memory unless it can guarantee that this memory can be backed by actual memory (physical RAM or swap)?
1Historically Windows has never allowed overcommit and as far as I know this has not changed in Windows 10. Overcommit has it's advantages but also some potentially serious problems. It can cause a process that has done nothing wrong and made only modest memory allocations to crash with no possibility of recovery. Windows designers took the more cautions decision of never allowing overcommit. – LMiller7 – 2017-03-31T18:17:10.447
Thanks! Do you know if this is documented somewhere? – avl_sweden – 2017-04-01T22:36:51.610
1The Microsoft publication "Windows Internals" 6th edition, covering up to Windows 7, describes memory management. Overcommit is not supported. The 7th edition, covering Windows 10, I believe is not yet released. But I am sure as big a change as overcommit would have been mentioned somewhere. These books can be tough reading if you do not have the background. – LMiller7 – 2017-04-01T22:59:48.647
Thanks again! Maybe you could put this as an answer so I can accept it? – avl_sweden – 2017-04-03T07:53:12.253
@avl_sweden you can write an answer youself. This will at least allow closing duplicate questions. – Dmitry Grigoryev – 2017-07-07T18:14:31.790