How to get child processes to also run at high priority?

V

Vanguard

While I can use Task Manager to change the priority of a running
process, I have to do that *after* the program has loaded. I also have
to do it on every child process that this parent process will start.
For example, if program1 loads program2 then program2 uses Normal
priority despite using High priority for program1.

I can use "start /b /high <program>" to load the program at High
priority. However, any child processes started by program1 will still
end up running at Normal priority. This is not my software so I cannot
go in to modify the code. I'd like all [child] programs started by a
specific parent program to also run at the same priority as the parent.
In other words, in the environment in which program1 executes, high
priority would be the default priority assigned to any further program
loads so program 2 and so on would also run at the same high priority.
 
V

Vanguard

This inquiry was prompted for playing games in Windows 2000. Often they
end up jerky. Tweaking in the game or in the OS has not helped. The
basic game runs passable but users have gotten over zealous in creating
huge fan missions with lots of AI and huge panoramic scenes or just too
many objects to render. Reducing the resolution helps. Using
msconfig.exe to eliminate startup programs after a reboot helps. But
the jerkiness remains. What helps a lot is to up the priority of the
processes shown in Task Manager for the game (there are 2 processes; one
is the loadup executable and another is the library from which all the
calls are made). I can use the start command with its priority
parameter to up the priority for the loadup executable but that the
library that gets loaded and where lots of functions will execute from
will still run at normal priority.

But then I started thinking about how users can allocate priority to any
program. I would presume that any threads within a process will execute
at the same priority so using "start /b /high <program>" would probably
work. However, if that program loads another program (and which is
sometimes true for some programs that get loaded by a Run registry key),
you want that other program to also run at the same priority so the
product runs at that priority. The default priority is Normal in the
typical environment under which they get loaded (through the GUI). So I
was wondering if another environment could be used or started that would
instead use a default priority of High so any programs started within
that environment would always start at High priority. Or maybe some
means of assigning a priority to an executable file so that whenever it
gets loaded then it runs at that priority.

--
____________________________________________________________
** Share with others. Post replies in the newsgroup.
** If present, remove all "-NIX" from my email address.
____________________________________________________________


Rick said:
While I can use Task Manager to change the priority of a running
process, I have to do that *after* the program has loaded. I also have
to do it on every child process that this parent process will start.
For example, if program1 loads program2 then program2 uses Normal
priority despite using High priority for program1.

I can use "start /b /high <program>" to load the program at High
priority. However, any child processes started by program1 will still
end up running at Normal priority. This is not my software so I cannot
go in to modify the code. I'd like all [child] programs started by a
specific parent program to also run at the same priority as the parent.
In other words, in the environment in which program1 executes, high
priority would be the default priority assigned to any further program
loads so program 2 and so on would also run at the same high
priority.

Win2K does not have this option built into its GUI, and I'm
unaware of any third-party utilities that can do this.

Just out of curiosity, which software are you talking about?
Do the child processes show separately in Task Manager?

Rick
 
J

Jisha

"However, if that program loads another program (and which is
sometimes true for some programs that get loaded by a Run registry key),
you want that other program to also run at the same priority so the
product runs at that priority."

hmm.... is it possible to edit the Run registry key to reset the priority?

Chris






---snip---
 
V

Vanguard

If the situation were to run a startup program at a higher priority, and
if the program did NOT start another program, then I could edit the Run
key so that items that it loaded used "start /b /high <program>".
However, some programs will open secondary programs. They may also
execute "programs" from with libraries. Those secondary programs will
not run at the high priority.

The situation that started my inquiry was in trying to get a game's
executables, all of them that get loaded, to run at high priority. The
Run registry key was just one example where I've seen one executable
load another. Games also do this. In fact, many games use an .exe that
reads another file in which resides the *real* executable. This is part
of their copy protection. I think Safedisk does this by checking for a
signature or thumbprint in the encoded second file while loads and runs
as though it were an executable.

I don't know if there is a way for a string of programs started by a
parent one to always load and run at the same priority given to the
parent program. Perhaps it is possible to start the parent and anything
it starts in an environment or shell in which the default is to load and
run all programs at high priority (instead of the default you usually
get of normal priority). However, I didn't see any command-line
parameters to cmd.exe that would alter that particular instance's
default priority for processes started within it.
 
V

Vanguard

Well, Priority Master III almost was a solution. However, it only
monitors for executable files getting loaded (.exe, .com, .bat). In my
case, it was an .icd file getting loaded and which the .exe calls to
execute the game (someone said this is how SafeDisc work, by loading an
..exe that looks for a signature in an .icd file and then loads and runs
the .icd file). The author was immediately responsive and said that he
could add the .icd file extension to the list but wants me to buy it
first instead of testing using the demo version. Instead I will request
that he provide an "All file types" when browsing for the file so the
product can be used with whatever file another program will load and
uses as a child or subordinate program. Then I'll consider the $20 well
spent if the product actually works as advertised.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top