I don't bloody believe this. I wrote a full answer, just pressed delete to correct a word and Safari went one page back erasing everything.





In any case, fast answer: it doesn't work like you say. The confusion lies elsewhere.





1. Check what it happens with the inactive memory in the kernel:





Page Out:

If a page in the active list is not recently touched, it is moved to the inactive list.

If a page in the inactive list is not recently touched, the kernel finds the page’s VM object.





Page In:

When any type of fault occurs, the kernel locates the map entry and VM object for the accessed region. The kernel then goes through the VM object’s list of resident pages. If the desired page is in the list of resident pages, the kernel generates a soft fault. If the page is not in the list of resident pages, it generates a hard fault.









The kernel has to search for the VM objects. The VM objects are not referenced by the physical pages. Even less the processes, then. Thus it knows nothing about the processes "owning" the inactive pages unless it goes looking for it. A process to know its inactive pages should make some system calls that through an API ask the kernel to do a job that isn't implemented. Those system calls are simply non existent.





2. The inactive memory is not a cache either. It is the physical memory that has been already used by the processes and got old. Which means sooner or later it will cause page outs which is undesireable or become active again keeping stealing RAM to the other processes. Unless the process decides to release some on its own, sure. The speculative memory instead is a kind of "pre-cache". The speculative pages are reassigned at no cost to the free list as soon as free memory is needed. While the inactive pages may require a disk page out Thus to have Safari or any other process raising constantly in memory isn't good for the whole performances of the system.





I don't really understand how anyone can say otherwise.





Oh, btw. The BSD's man page for man is stating that man can be used as a concise reference, especially when programming, but it can not substitute a manual. Nowhere it is stated that they are incomplete on purpose. Unless in English concise and incomplete are synonymous. But it wasn't so the last time I checked. And since they are words with a Latin root, I am sure that isn't the case anyway.