16-bit console apps, priority and idle sensitivity

  • Thread starter Thread starter Gordon Peterson II
  • Start date Start date
G

Gordon Peterson II

Many of our clients are running 16-bit console apps (often
accounting back-end applications) in large systems. These
run beautifully for a while, then performance drops to
near zero (printing slows to a crawl, etc)... brining up
the Task Manager graph gives the "devil's tower"
phenomenon... 100% CPU for a while (even when busily
talking to the Novell server's shared hard drive) and then
CPU utilization goes to near-zero.

I've found that by reducing the "Idle Sensitivity" slider
on the .EXE file for the high-level-language interpreter,
I can eliminate the "devil's tower"... I have to slide it
ALL the way to the left... but then the other jobs running
on the machine are impacted.

What I'm looking for is a way to reliably start the
interpreter for these users so that it has BOTH
an "infinitely low" idle sensitivity, AND a below-normal
priority (so that any 'other' app will run but the
accounting stuff will still execute otherwise).

I thought maybe the START command could be used to start
the interpreter with 'below normal' priority, but even
when I've set the 'idle sensitivity' in the Properties
field for the interpreter .EXE file, that doesn't seem to
be respected when START launches the interpreter (although
it does indeed come up with below-normal priority).
Apparently Win2K (these machines all have SP4 installed,
if that makes a difference) still decides that these (very
busy) tasks are "idle" and throttles back their access to
CPU...

And even reducing their priority wouldn't be a big problem
(the machines are new and fast, and aren't very busy) but
what *I* think is a bug in Win2K Pro is that such "idle
detected" processes are apparently run with a **lower**
priority than the System Idle Task... and that strikes me
as inexcusable. What would be reasonable would be to have
them go ahead and consume 100% CPU resources, usurping the
System Idle Task, and otherwise divvying up the CPU among
themselves.

In fact, I can achieve what I'm trying to do (but
clumsily) by creating an icon for the interpreter, setting
its idle sensitivity to max-low, then going in with the
Task Manager, sorting the processes by CPU usage, find the
copy of NTVDM.EXE that has the "full" machine, then set
its priority (by right-clicking) to "below normal"... this
works *great* (3 such interpreters get 33% each, etc, and
other apps still run at 'full' speed) and together they
lock out the system idle task which gets 0%.

The problem is that this needs to be something that I can
make transparent to the typical accounting type users and
data entry people that work in the office. I'd like to
set it as a configuration option somehow; otherwise to be
able to specify NOT JUST priority but also idle
sensitivity in the START console command... or, for that
matter, the problem would be solved if Microsoft would fix
their "idle sensitivity" detection such that "detected
idle" tasks still shared a priority greater than that of
the system idle task (but I'm not holding my breath).

I'd even consider writing a 'wrapper' or something (START-
like) but I can't seem to find any details on how an
invoking process can determine the 'idle sensitivity' of a
significant-running back end process, along with its
priority...

Anyone have any ideas? Please get back to me by E-mail,
as I don't usually monitor this newsgroup. Thanks!!
 
Back
Top