Windows replaces redundantly?

This may not be strictly related to programming, but more related to the OS structure.

Running Vista 32 bit on a new laptop with 3 GB of memory, when working in standby mode, the system consumes about 40% of its memory. In addition, the fact that this is outrageous in itself, the OS should be able to easily enter all the processes into memory and do not need to change them to a disk EVER. However, looking at the task manager, I see processes having page errors all the time. Not much, but still. for example, explorer.exe has approximately every second.

Why? Why does the OS feel the need to replace pages, although it has a lot of physical memory?

+3
source share
6 answers

, - . , , , Windows, , , , . ( , , .) , ? , , , - , "" . .

, , , . , , . , , ​​ "Please page fault, - ", , - .

, , , .

+3

, , , . , . explorer.exe, . , , taskmgr.exe, . ( )

, "" , . , - .

+3

40% .

, , , , . , , 40% ( , ) ; , ( ), .

, ( ), . ( 1 , Visual Studio 4 , VM ), , . , , .

+1

, Vista , . / , .

ressource, , ?

, . , : http://blogs.msdn.com/oldnewthing/archive/2008/08/21/8880075.aspx

( , .) , . )

0

, . Windows XP.

, Windows " " : , , . , , , . , .
, . XP 3 . , !
: , , . , , .

Linux, : swap, . Linux, , ( - ), , "". , , .

0

" " - . , , . , - 2 , -. . , , " " ( - ) " " (.. ).

Obviously, for technical reasons, you cannot have all the bytes both on disk and in RAM. But you, of course, should not eject bytes from RAM just because they are also on disk. And if you have both a spinning disk and RAM pages that have not changed in a minute, it makes sense to pre-write bytes. You want the OS to do this with low priority, but I / O priority is less common on Windows (new with Vista and, to be honest, implementation 1.0)

0
source

Source: https://habr.com/ru/post/1698134/


All Articles