|
|
Did you make it visual or with write the code?
|
|
|
|
|
Sorry i've been away for a while. Mine i made it with visual. Then added events. I'm still going to be away for quite some time i'm just hoping i can help you more.
Wamuti: Any man can be an island, but islands to need water around them!
Edmund Burke: No one could make a greater mistake than he who did nothing because he could do only a little.
|
|
|
|
|
Of course it was not my question.
|
|
|
|
|
I almost forgot. Anyway, i knew that
Wamuti: Any man can be an island, but islands to need water around them!
Edmund Burke: No one could make a greater mistake than he who did nothing because he could do only a little.
|
|
|
|
|
|
Hello everyone,
I can understand hard page fault is we need to load from page file into working set (RAM). But what is a soft page fault? I am confused.
thanks in advance,
George
|
|
|
|
|
|
Thanks Hamid,
Great links. My question is more about soft page fault. As mentioned in the links,
--------------------
If a process requests a page in memory and the system cannot find the page at the requested location, a page fault occurs. If the page is elsewhere in memory, the fault is a soft page fault.
--------------------
What means can not find a page at specified address but the page is located somewhere in the memory? I am confused. Could you provide more information please?
regards,
George
|
|
|
|
|
On this link you can find your answer of course I think your questions are dependent together(do you want to make a program ).
http://lwn.net/Articles/257209/[^]
|
|
|
|
|
Thanks Hamid,
Great link. Do you have any ideas what is soft page fault in your minds?
regards,
George
|
|
|
|
|
If you need to values of memory that its not on the Main memory that it usualy goes to place that its name is page pool,but if you want to have more info about it Page fault notes[^] good for you.
|
|
|
|
|
Thanks Hamid!
Great note! I read through is and do not understand what the 2 situations below mean when there is soft page fault. Could you give more information please?
1. wants to be zero (called ‘demand zero’ pages)
2. when a page is written to for the first time (‘copy on write’ pages)
regards,
George
|
|
|
|
|
|
Great link, Hamid!
I have the parts which I had question and for the demand zero page fault, here is what the article saying,
What means "a process first references newly allocated virtual memory pages"? And "These do not involve the pagefile at all"? I am confused if it does not involve any pagefile at all? Why there is something called page fault?
Any ideas? Could you some some pseudo code about this scenario please?
--------------------
Demand Zero Page Faults – these happen when a process first references newly allocated virtual memory pages. These do not involve the pagefile at all. Any process that does frequent memory allocations and de-allocations will experience a significant number of Demand Zero Page Faults. Processing these events is a very low overhead activity and does not indicate that demand for memory has exceeded the amount of available RAM. Very high Demand Zero Page Fault rates are quite common for some applications but this by itself has little affect on performance. The design and implementation of the application affects the rate of Demand Zero Page Faults the application experiences, so this can not be changed by adding RAM or reconfiguring the pagefile.
--------------------
regards,
George
|
|
|
|
|
George_George wrote: for the demand zero page fault, here is what the article saying,
What means "a process first references newly allocated virtual memory pages"? And "These do not involve the pagefile at all"? I am confused if it does not involve any pagefile at all?
There is no need to use the paging file because the memory page has not been used by the process yet. If the process hasn't touched the page, there is nothing to save to the paging file. The page in question has been allocated but not yet used. When it is first touched, all the memory paging system has to do is zero-fill the page and make it valid for the process'es address space. Once the process has touched the page, any page fault on that page will be something other than a demand zero page fault.
Judy
|
|
|
|
|
Thanks Judy, great!
Your reply is great! I have made some self-study as well. There is a situation which we missed when there is soft page fault, which is not included in any case we mentioned before.
Do you agree? Any comments about my new findings?
This new case is mentioned here,
http://support.microsoft.com/kb/108449/en-us
--------------------
Process pages that are paged out of your process space are moved into the "standby list," where they remain until sufficient free RAM is available, or until system memory is low and they need to be reused. If these pages are accessed by your process while they are still on the standby list and more RAM has become available, they will be "soft-faulted" back into the working set. This does not require any disk access, so it is very quick. Therefore, even though you have an upper limit to the size of your working set, you can still have quite a few process pages in memory that can be pulled back into your working set very quickly.
--------------------
regards,
George
|
|
|
|
|
What new findings? The whole thread has been a description of what a demand zero page fault is. Memory management is a complex subject and each subsequent answer to more and more detailed questions will take you deeper into the nitty gritty details. If you're looking for a description at that level of the entire functioning of the Memory Manager, find a copy of "Microsoft Windows Internals, 4th edition" by Russinovich and Solomon. Their memory manager chapter is excellent. That chapter alone is over 100 pages long - as I said, memory management is not a simple subject. In fact, the whole book is excellent but it is very much geared toward those working at the bottom edge of user mode and driver writers.
Judy
|
|
|
|
|
Thanks for your comments, Judy!
Sorry that I have not made myself understood. My point is, beyond demond for zero, there is another situation as I mentioned above which will cause soft page fault. I am not sure whether you agree or not.
regards,
George
|
|
|
|
|
My copy of the aforementioned book lists the following as reasons for a page fault
1) accessing a page that isn't resident in memory but is on disk in a page file or a mapped file
2) accessing a page that is on the standby or modified list
3) accessing a page that isn't committed (for example, reserved address space or address space that isn't allocated)
4) accessing a page from user mode that can be accessed only in kernel mmode
5) writing to a page that is read-only
6) accessing a demand-zero-page
7) writing to a guard page
8) writing to a copy-on-write page
9) referencing a page in system space that is valid but not in the process space directory (for example, if paged pool expanded after the proces page directory was created)
10) on a multiprocessor system, writing to a page that is valid but hasn't yet been written to
11) executing code in a page thatis marked as no execute
1 is a hard page fault
2, 6, 8, 9, 10 are soft page faults
3, 4, 5, 7, 11 are access violation page faults
I'd trust that these guys have the complete list. The break-down into types of faults is my own.
Judy
|
|
|
|
|
Cool, Judy!
regards,
George
|
|
|
|
|
|
Hi Hamid,
Is it for Windows? I ask this question because I saw some Linux OS like configuration in this article. You know, the memory management logics are general on Wnidows/Linux, but there are too many specific things.
regards,
George
|
|
|
|
|
Each link has new things that is helpful for you.
|
|
|
|
|
Thanks Hamid,
Each link? There is only one link in your previous reply.
regards,
George
|
|
|
|