Message-Id: <3.0.6.32.19990225003612.009253e0@pop.globalserve.net> X-Sender: derbyshire AT pop DOT globalserve DOT net X-Mailer: QUALCOMM Windows Eudora Light Version 3.0.6 (32) Date: Thu, 25 Feb 1999 00:36:12 -0500 To: djgpp AT delorie DOT com From: Paul Derbyshire Subject: Re: Does Windows 98 lose DMPI descriptors? In-Reply-To: References: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Reply-To: djgpp AT delorie DOT com At 07:34 PM 2/22/99 +0000, you wrote: >There were no crashes during this experiment. I was not talking about >invalid page faults, access violations or any kind of illegal operation. I >meant page faults as monitored by Windows 98's System Monitor. I assume >these occur, harmlessly but with a speed penalty, when memory is accessed >at widely differing addresses. It is my experience on other systems that >such page faults occur at a high rate on launching a new process. Since >the shell script in question was doing little other than launch "expr" >once per iteration, the rate of program launches was high. I assume this >caused the high rate of occurrence of page faults. I was surprised at the >high rate of page faults, 50 to 100 times the rate when a single, fairly >small binary is running continuously. But I did (and do) not regard it as >a sign of trouble, merely a point of general interest. There are two kidns of page faults. A plain-jane page fault is an attempt to access a logical address that's swapped out to disk. It causes a signal that is silently handled by the paging manager (on windows, vmm.dll IIRC, or maybe it's vmm.exe) which swaps the page in (possibly swapping another out to free up a physical frame); this happens transparently, unless the address is actually invalid, in which case a signal 11 appears in your program -- segmentation violation. That's when a DJGPP app will bomb with a message like "SIGSEGV" ... "Invalid page fault" or a Windoze app will produce the oh so familiar error box saying "This program has performed an illegal operaiton and will be terminated. Foobar.exe caused an invalid page fault in module ......." The invalid page fault is the crash, SIGSEGV sort of page fault. Access to a bogus logical address. The regular page fault like System Monitor reports is the silent access to a valid but physically absent logical address and subsequent disk swapping. So, sysmon page fault numbers getting high are a sign of something gobbling memory (perhaps because of a memory leak or a descriptor leak), as is a lot of disk activity and slow operation ("thrashing") which is another symptom of excessiove swapping. BTW you should see the page fault number jump up when you launch Internet Exploder. It kicks about fifty-some-odd of other apps' frames out of physical memory to make room for itself. What a load of bloatware... -- .*. "Clouds are not spheres, mountains are not cones, coastlines are not -() < circles, and bark is not smooth, nor does lightning travel in a `*' straight line." ------------------------------------------------- -- B. Mandelbrot |http://surf.to/pgd.net _____________________ ____|________ Paul Derbyshire pderbysh AT usa DOT net Programmer & Humanist|ICQ: 10423848|