> From: Morten Due Jorgensen
> At home I run W98, and I have not tested this on NT, but
> my observation is, that when two or more "busy" programs run at
> various priorities ("busy" here meaning a program that can use
> all the CPU it can get), the lowest priority program _will_ be
> given a small amount of clock cycles, and thus in fact MORE than
> the available idle time. Given two programs, one running at
> normal priority, the other at the lowest possible priority (idle
> priority), the second program will get around 1-2% of the CPU,
> while the first will take up ninety-some %, giving away only the
> mandatory few % to other system tasks, the amount will rise as
> the priority rise. (Luckily this is NOT the case for the built-in
> idle thread!)
Good points, and NT is roughly the same way. I think it's good to let the
priority 1 applications get a few CPU cycles, even when a normal or even
realtime priority CPU intensive task is running, since the programs screen
paint routines should be given, at least, the chance to repaint their window
when you drag something across it (since Windows itself doesn't seem to do
that in the OS' priority). But that's aesthetics...
> In the case of only one busy low priority program, like what is
> usually the case with Prime95, and no other programs wanting to
> hog the CPU, it is not easy to tell, whether these other programs
> actually are delayed because of the low priority program, but in
> this case, I claim that it simply doesn't matter, since the
> programs are not "busy" anyway. However, if the other programs
> have enough to do, they will still need to give away a little to
> the idle priority program. With the 1-2% as seems to be the case,
> it will appear to be a P98 instead of a P100, you're running...
For the particulars of my experience, I'll explain some (for the benefit of
George and Scott who may want to take such things into account in the
future, though I think the current implementation of the priority settings
is just fine):
The US WEST machines in question are merely running an XWindows server.
They don't even have Office or anything loaded on them...about the only
things they could run are the XWindow emulator and Notes for email.
Those programs don't have their default priority changed at all, and as such
they run with a normal priority (7). I didn't change NTPrime's default
priority, so it runs at 1. I think the workstation team may have removed
the 3D OpenGL screensavers, so the only screensavers they had available were
the boring ones that run at a priority of 3 I think, but they're not CPU
intensive.
One way I was able to tell how many cycles (roughly) NTPrime was able to use
during the day was by watching the rollingaverage value change. They
generally lowered to around 920-980 or so, indicating they had given up some
CPU time during the course of their operation...
But perhaps George can provide more info on just how the rolling average is
calculated anyway.
Regardless, I think it's safe to say that for most people, they'll only be
running one idle time cpu grabber on their computer at once :-). XWindows
emulators are fairly benign, as is Lotus Notes. What tickles me is that
they (US WEST) somehow assumed that even if NTPrime was grabbing excessive
CPU cycles from higher priority programs (impossible in the structure of
NT's multi-tasking, unless the program raised it's priority), US WEST's
claims revolve around network access to mainframe databases, something that
NTPrime doesn't even bother itself with. What I'd like to know is, did the
US WEST "slowdown" involve merely taking a long time to retrieve this
database info, or were there actual, noticable, delays in the running of the
programs on the PC itself. e.g. were screen repaints slow, other programs
slow to load, etc. Of course there wasn't any such problems.
So you US WEST and FBI people reading this (trust me folks, they read this),
consider that information please. And I apologize to the mersenne
subscribers who may feel I'm using this forum as a platform to speak
indirectly to them. :-) But I feel that the legal ramifications of running
spare CPU time programs is something that hasn't fully been considered
before, and desperately needs attention, especially given the increasing
popularity of distributed computing projects, such as the upcoming SETI
program.
> Like I said, these are observations on W98, someone else would
> perhaps do some experiments on NT?
I can say that NT's tasking core is similar to that of 95/98 in that regard.
Even a priority 1 program will receive *some* CPU time when a processor
heavy higher priority (2 or more) program is running. To test it out,
simply install two instances of NTPrime or Prime95 on NT, setting one to a
priority of 2 or more. Both will get some CPU time, but the priority 1
receives very little overall (1-2% is a reasonable value).
It's also interesting to note that if you leave an NT system running for a
week or so, take a glance at the CPU time that the idle cycle
receives...even it shows some CPU time, and it's (for all intents and
purposes) a priority 0 process. I'm looking at a quad Pentium Pro that's
been running for 5 days now. It has 4 instances of NTPrime going, and the
idle time over that 5 days has accumulated over 5 hours. Maybe George could
explain why so much time was given up to do, essentially, nothing. I
suppose some of that is when NTPrime writes to disk, or is communicating
with the Primenet server since the calculations, I assume, pause for a
moment, but that wouldn't account for 5 hours over 5 days.
Aaron