delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1999/02/25/00:39:11

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 <pderbysh AT usa DOT net>
Subject: Re: Does Windows 98 lose DMPI descriptors?
In-Reply-To: <Pine.GSO.3.95.990222192041.24379D-100000@holyrood.ed.ac.uk
>
References: <Pine DOT SUN DOT 3 DOT 91 DOT 990221131457 DOT 6539H-100000 AT is>
Mime-Version: 1.0
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|

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019