WOW so many things to talk about, and it is impossible to answer everything.
I'll use some quotes just to make it easier to read. Consider that i'm not trying to prove anything like i know beter than you, or something else.
In the past, i had the some questions and i used the MS knowledge base to find answers.
Let's start, but before this, if you think that something of the below is wrong please ask for it. It is easier for me to answer for specific subjects and no for general things like how the os reacts.
half of my post was about reasoning what TaskManager actually shows under "Swap file" (or Paging file, I translated it from Dutch), with the conclusion that that should read as Virtual Memory
I disagree again with the process you describe to find out what it is inside virual memory. I insist that you can't be able to know, what virtual memory have as data, especially after some time (10 min) after boot that the applications have allready occupy the space of vm. Don't forget that most of the people who uses the xxhe, have also many other programs installed that requires some of the space in vm.
Of course if you have a clean installation and you modify some services, then you can say that you leave free space for xxhe but this needs many changes and it is not the default situation.
my earlier statement that Vista always keeps on using some swap file was wrong. Instead, it always keeps on paging to another part of memory.
For this statement and some others i started to explain how the os reacts because it was very important to understand the difference between swap file and virtual memory. As you can see from the taskmanager if you disable swap file you still have virtual memory. So i was trying to explain what is the role of vm.
but this is so because the OS can't directly use the full available physical memory
Another thing to disangree.
Of course os can directly use full of the AVAILIABLE memory.
If you mean that this availiable memory is smaller than the installed on the system is wrong cause you don't consider something else. Some hardware devices like motherboard, vga, network card, soundcards etc...
needs some space on physical memory to operate. this space is given from the system even before the os boots.
Lets say for example that you have a vga card with 512 mb memory. this memory is installed on vga's pcb BUT it requires the SAME space availiable to os memory to cooperate. For this reason MS decided to reduce the availiable physical memory to 3,12gb in a 4gb system, so that there will be no problem for all this devices, that could cause BSOD. (blue screeens).
What you describe as "the kernel determines its size" (similar), is therefore only partly true. What will happen is that the kernel is able to determine unused memory space, and dedicate as paging area.
When i said about the kernel of os, i speak about the memory management part of windows that is very complicated to understand how it works.To understand this we need very specialized knowledge.
Also note that not in all cases the memory can be fully utilized, which again is a matter of (wrongish) drivers.
This is also wrong, as i said before it has nothing to do with drivers, it has to do with the devices that are attached on the system.
Now, correct me if I'm wrong, but from your orginal subject we both seem to have our own subject. And oh, they are both as important I think.
Thus, your subject seems to be the explanation of how the OS deals with available physical memory vs. not available physical memory but which can extend to virtual memory ...
while my subject is the stupidity of that, and that it can't work (the other half of the large post from yesterday tries to explain that).
No reason to disangree with the first, but i told you the reasons why it was better to explain how it works.
I talk for availiable physical memory because when this come close to its low limits then we have this procedure.
I think that the only change to the above that i could make is to delete the word stupidity and write sophisticated, for the way the os acts. If it wasn't worked that way then everytime that a application asks for much memory, then we 'll have a crash of the system.
Of course one thing changed : you *can* shut off paging to disk, hence no disk IO will occur after that for this reason.
OK but this is the reason that start all this conversation after my post. And of course to prove what is the benefit for it.
When you said that obviously the CPU is involved when the additional (!) virtual memory gets full, I claim that what happens there is b*llsh*t, and the CPU activity there is unnecessary and besides that *has* to work with the highest priority because of the processes happening.
when the system translate the addresses from vm to physical, one part of cpu cooperates and it is unavoidable. This is called mmu. I dont' know how fast is this but it can creates click and pops.
This all is rather unrelated to any theory of operations, because this happens with the normal swap file just the same. That is, this is what I expect but cannot see without additional investigation. So, what I expect is that when the additional virtual memory gets full, the swap file is in order, and any additionally needed memory in the paging area then goes to the swap file.
i don't know if i understand the above, but with swap file enabled, while we have paging for an application some data goes to physical memory and some others to swap file. This is controlled by the central memory managment of windows. It has the role to predict which data are going to be used soon and send them to physical memory space, as virtual memory, for faster processing when it transalte them to physical addresses.
I know, you said something like "you can't know what's in that area", but please trust me, I do. -> each byte which is user data which is necessary in the normal physical memory is copied to that additional memory as well (low priority) just in case the normal physical memory gets full.
But how do you know what is the priority that is given for apps, by the memory management. You can't control that. Plus it is a ramdom procedure. You can only control the priority given by the cpu for a process.
As I told in the long post from yesterday, the 700MB or so which can't be utilized in my system (and which is so because of driver/mobo issues), actually is an advantage
It is wrong to say, that they can't be utilized. Os works in a way that it leaves them free, so that it has the space (in user mode apps) to translate virtual memory to physical. As i said before this is not stupid, but the only way to utilize memory without getting blue screens, when the physical memory get close to it's limiits.
Yes, I think so; Where my system starts off with 600MB used memory by the OS (could be 500MB depening on things) I have 700MB spare in there.
Now, coincidentally, I have another 700MB of additional virtual memory, so both balance out. And keep in mind : each user byte in normal available physical memory goes to the additional virtual memory as well and I have 700 MB of memory for playing music without the stress of the additional virtual memory getting full and the operations to solve that
Right if no application is running you can have all this space and more, until 2gb for a system with 4 gb physical memory.
is that the less additional virtual memory you have, the earlier stress time applies.
when the swap file is just active, stress time does not occur (ok, unless the set limit of the swap file is reached).
the right is the opposite.
The less physical you have available the earlier stress time applies, because the translate to physical memory take place when it is going to finish.
... in order to judge these phenomena you get nowhere at proving the theory of operations to be right (or wrong for that matter); Instead you must do what I did, and just start playing tracks keeping in mind that one minute 44.1/16 takes around 10MB, and watch and watch and watch (TaskManager).
I don't know for me it is more important to understand how it works, and not to try to guess. As a matter of fact i 've try it and i don't get clicks at playback.
Now, two happenings mat break the linearity :
1. Normal available physical memory gets full
2. Additional virtual memory gets full.
both of them are imposible to get full. If there is no much space then a proess just don't start!
Looking closely, you can see that (somehow) the OS is not "smart" right after XX started playing (better : right after a reboot, and this *always* has bugged me no matter what kind of sound engine I used, no matter XP or Vista);
Os have to take care of other processes as well. If for example a defragment starts, it needs both virtual memory and physical space that it has to remove it from the upper limit of 2 gb for user mode apps.
Side note : so, so many users (an I am one of them) reported (let alone those who did not report it) that things go wrong somewhere somehow at track 4 or 5 or 6 at a first playing session. In all cases there is no explanation (by me). But, I *know* the hard way of the OS needing to get rid of obsolete memory is in order there ...
So this is the time that memory managment of windows starts to change the data of physical memory. this needs cpu resources.
However :
I think this (Swap file not used) only applies for those who have an amount of additional virtual memory that is at least as large as the normal availabe physical memory, hence who have poor systems like mine.
This is true, and i recommend to disable the swap file only if there is 2gb or more. But think smt else. With 4 gb memory and SWAP OFF i can play about 1,8 gb (170 min) without clicks. with 2 gb which means 1gb for system and 1 for apps, for sure you can play about 90 min of 44.1/16 without clicks in a system that have modified processes with the above tweaks. 90 min is not so little. When i say without clicks i mean for systems that don't have latency problems, because this is another story.
When we talk about 96/24 i think, that only if the program runs in native x64 can handle this situation and if we have enough physical memory 4gb or more.
I need more than a coffe right now