home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: SysTools
/
SysTools.zip
/
pm25demo.exe
/
primast2.HLP
(
.txt
)
< prev
next >
Wrap
OS/2 Help File
|
1999-01-29
|
113KB
|
3,649 lines
ΓòÉΓòÉΓòÉ 1. About PRIORITY MASTER II ΓòÉΓòÉΓòÉ
CONGRATULATIONS! You have made an excellent decision to purchase a
revolutionary product which may set the user interface standards for all
priority preemptive operating systems.
The novelty and usefulness of the concepts in the PRIORITY MASTER II
application are protected by the US Patent and Trademark Office # 5,428,789
which was granted on June 27, 1995.
With PRIORITY MASTER II - YOU are in control of how you want your programs run.
You decide which application is more important and can prioritize applications
to YOUR needs. In heavy memory overload with multiple applications, the
performance benefit of using PRIORITY MASTER II can reduce processing times
significantly for background applications.
PRIORITY MASTER II was designed to enhance the OS/2 operating system by giving
it what virtually all priority preemptive systems already have - the capability
to set the priority of user applications.
PRIORITY MASTER II is a 32 Bit multi-threaded Presentation Manager application
which allows the USER to select the priority of an OS/2 Full Screen or Window.
Once the priority is selected, any programs that are run in that session will
start with the selected priority. The Find Program and Prioritize option allows
you to select the priority and run it using a standard Open File Dialog to
locate the executable.
PRIORITY MASTER II is more than just a user friendly method to set the priority
of user applications. It is a total performance package designed to enhance
user response time and total system throughput in ALL scenarios.
ScheduPerformance, Inc. Product Line
The company markets the Priority Master application and multitasking related
consulting services.
PRIORITY MASTER I (Discontinued - Information only)
This product gives 32 priority levels for OS/2 programs in Full Screen or
Window mode in the Regular Class. The lowest level (Regular Class level 0) is
the SAME as DOS and Windows. The other 31 levels are higher than the DOS and
Windows but less than levels used by the LAN type programs. It is generally not
desirable to run Background OS/2 programs with default priorities on the same
priority level as DOS and Windows. The OS/2 operating system defaults to
placing them ALL on the same level and this gives you a way to increase the
priority of the well behaved OS/2 programs. This enables you to recover some of
the lost CPU cycles due to DOS pooling applications and actually run OS/2
applications which do real work.
There are also 32 priority levels equal to and above the LAN in the Server
class and an additional 32 priority levels in the Time Critical Class. The Time
Critical Class was intended to be used for cases in which human life is at
stake and robotics/process control environments. There are a total of 96
priority levels.
PRIORITY MASTER II
This product contains everything in PRIORITY MASTER I and an additional 32
priority levels in the Idle Class and contains the auto scanning logic option
to find an Idle level. Using Idle Class programs insures "healthy" total system
performance, promotes the auto memory overload protection and insures zero
processor loss due to pooling applications in the Regular or higher classes.
There are a total of 128 priority levels.
Why use the Priority Master Applications?
The primary purpose for the ScheduPerformance, Inc product offerings is to
provide superior performance and control for OS/2 applications.
Virtually every priority preemptive operating system provides some way for the
user to set the priority of their applications. The extremely powerful priority
preemptive scheduler on OS/2 always runs the highest priority thread in the
system. Any application that "locks on" to the CPU prevents all lower priority
applications from running. DOS and Windows applications inherently "lock on" to
the CPU and so the OS/2 scheduler gives them each a time-slice to execute and
then round-robins them. Unfortunately, DOS, Windows and default priority OS/2
applications all share the same level. That means that when you mix an OS/2
application in the background with DOS or Windows, the OS/2 application gets
very little CPU time. This has the effect of poor performance of background
OS/2 applications when DOS or Windows are running. All of ScheduPerformance,
Inc. products allow the user to raise the priority of the well behaved OS/2
applications and to give the remaining CPU cycles to the single and cooperative
tasking model applications.
ΓòÉΓòÉΓòÉ 2. Copyright and Trademark ΓòÉΓòÉΓòÉ
COPYRIGHT Information
The PRIORITY MASTER II software is licensed property of ScheduPerformance, Inc.
and is copyright 1993 - 1999.
ScheduPerformance, Inc. considers a single use of the product for the purchased
price and may at any time revoke the license without reimbursement. The license
may be revoked for abusing the product, intentionally attempting to hang a
machine, publicly speaking or writing anything against the product or any
reason so deemed by ScheduPerformance, Inc.
PRIORITY MASTER II
The PRIORITY MASTER II software and Online Help ("documentation") are licensed
property of ScheduPerformance, Inc. Use of the software and documentation
indicates your acceptance of the following LICENSE STATEMENT, DISCLAIMER OF
WARRANTY, and CHOICE OF LAW.
The PRIORITY MASTER II application is an extremely powerful and revolutionary
product. Every effort has been made to provide a useful and powerful product at
an excellent bargain. Please read the entire contents of the Online Help
Information before proceeding. Your honesty will help ScheduPerformance, Inc.
stay in business.
License Statement
PRIORITY MASTER II ("this software and documentation") is licensed for the
exclusive use of the original purchaser ("you") for use on one computer system
only.
This software is not copy protected. ScheduPerformance, Inc. authorizes you to
make any number of backup copies of PRIORITY MASTER II for archives only.
PRIORITY MASTER II may be moved from one computer system to another computer
system so long as there is no possibility of its being used at two or more
locations at the same time.
The documentation contained in the Online Help of all ScheduPerformance, Inc.
products may not copied or reproduced in whole or part, without prior written
permission.
Disclaimer of Warranty
ScheduPerformance, Inc. has made every reasonable effort to insure that the
PRIORITY MASTER II software and documentation is accurate and defect free.
However, given the enormous complexity involved in the dynamic prioritization
of a large potential number of concurrently executing applications, complete
testing is not possible. Therefore, you must be aware the PRIORITY MASTER II is
sold to you "as is", without warranty of any kind. The only exception is the
30-day money back guarantee.
IN NO EVENT SHALL ScheduPerformance, Inc. BE LIABLE OR RESPONSIBLE FOR ANY
PROBLEMS THAT ARISE FROM USING THE PRIORITY MASTER II SOFTWARE AND
DOCUMENTATION.
Choice of Law
This statement shall be construed, interpreted, and governed by the laws of the
state of Texas.
TRADEMARK Information
The following are trademarks of the International Business Machines Corporation
OS/2
Presentation Manager
Other TRADEMARKS
Windows is a trademark of the Microsoft Corporation.
ΓòÉΓòÉΓòÉ 3. Help Menu ΓòÉΓòÉΓòÉ
Use the choices on the Help pull-down to display:
Help index
Displays the index of help menu.
General Help
Provides detailed information on the types of help available and how to use
help.
Using Help
Displays some information about PRIORITY MASTER II program.
Keys Help
Displays a list of keys usage.
ΓòÉΓòÉΓòÉ 4. General Help ΓòÉΓòÉΓòÉ
Use this choice to obtain information on how to use the Help facility.
ΓòÉΓòÉΓòÉ 5. Extended ΓòÉΓòÉΓòÉ
Use this choice to get general help for the program. This provides general
information about the PRIORITY MASTER II program.
ΓòÉΓòÉΓòÉ 6. Tutorial of Keys ΓòÉΓòÉΓòÉ
Use this choice to see a list of keys and a description of the function of the
keys.
ΓòÉΓòÉΓòÉ 6.1. Key Assignments ΓòÉΓòÉΓòÉ
The list of keys is arranged in groups.
ACCELERATOR KEYS
HELP KEYS
F1
Get help
Esc
Previous Help Panel, or End help if only one panel
Alt
Switch TO/OUT Action Bar
Alt+F4
End help or End program
SYSTEM KEYS
Alt+Esc
Switch to the next program, including full-screen programs
Ctrl+Esc
Switch to the Task List
WINDOW KEYS
Underlined letter
Move among the choices on the action bar and pull-downs submenu or
execute the function chosen.
Alt+Underlined letter
Execute the function chosen immediately
ΓòÉΓòÉΓòÉ 7. Index ΓòÉΓòÉΓòÉ
Use this choice to display the help index.
The help index lists the titles of the help information that is available.
ΓòÉΓòÉΓòÉ 8. Information ΓòÉΓòÉΓòÉ
This dialog displays information about the application, such as version number
and copyright notice.
ΓòÉΓòÉΓòÉ 9. Information ΓòÉΓòÉΓòÉ
The OK button will close dialog box.
ΓòÉΓòÉΓòÉ 10. Options Menu ΓòÉΓòÉΓòÉ
The Options menu allows you to find a DOS or OS/2 program, start an OS/2 Full
Screen or Window, select information or warning messages and selectively Close
any generated programs at exit time.
Auto Start Prioritized CMD.EXE
Automatically starts a prioritized CMD.EXE when PRIORITY MASTER II is loaded.
Prioritized OS/2 Window/Full Screen
Starts another OS/2 Window with a standard command prompt
Generate Multiple Sessions
Automatically generates up to 32 prioritized OS/2 Windows or Full Screens.
Find Program and Prioritize
This will present a standard open file dialog to find an EXE and then run the
program at the priority in the main window title bar.
Run Prioritized Programs From List
Runs stored program names created from the Find Program and Prioritize option.
Run Prioritized Hot List
Runs stored programs that are frequently used.
Auto Close Launched Programs on Exit
Any program started using this option will automatically close when Priority
Master II exits.
Auto Close Program Status List
Shows programs that were started using the Auto Close Launched Programs on Exit
Option.
Overwrite Window Title with Priority
Shows programs priority in the main window title by overwriting when the title
is over 60 characters.
Information Messages
Provides information messages where appropriate in normal operation.
Warning Messages
Provides warning messages where appropriate in normal operation.
Warning Beeps
Select ON or OFF the warning beeps associated with some warning messages.
Auto Recovery Window
Generates a Time Critical 31 OS/2 window when there are no Idle cycles for 15
seconds.
Select User Option to Reset
Dialog box with options to reset to install state separated into groups for
easy selection.
Banner
Test that appears in the main window when the program is started.
Priority - Graphic Overview - Web Site
Quick overview for those who do not wish to read the Online Help in any detail
to get started.
Exit
Terminates the program. Alternatively, F3 may be used.
ΓòÉΓòÉΓòÉ 11. Auto Start Prioritized OS/2 Window ΓòÉΓòÉΓòÉ
When set, this option will start a Prioritized OS/2 Window or Full Screen when
PRIORITY MASTER II is loaded.
You must select the Activate the Session check box from the Misc Options group
to start the OS/2 Window or Full Screen.
This is an independently controlled OS/2 Window or Full Screen that gives
immediate access to a prioritized session.
The default Class is Server and the Level is 15.
The various options are explained as follows:
Optional Title Identifier:
Choose up to 32 characters for the session title and it will appear in the
window title and in the CTRL+ESC Task list. You should always enter a title and
this title is saved and restored.
Session Type:
Select OS/2 Window or Full Screen session.
Execute in the.
Select Foreground if you want the generated OS/2 Window or Full Screen session
to have the input focus when Priority Master is started or select Background if
you want the Priority Master II program to have the input focus when it is
started.
Priority/Override.
Select Set New Priority if you want the generated OS/2 Window or Full Screen
to be prompted for a title and priority when started.
Select Auto Increment if you want the generated OS/2 Window or Full Screen to
use the Class and Level stored plus one.
Select Auto Decrement if you want the generated OS/2 Window or Full Screen to
use the Class and Level stored minus one.
Class.
Select Idle, Regular, Server or Critical for the Class. Additional information
about the Class is available from the main help menu.
Level.
Select 0 to 31 for the Level. Higher levels execute ahead of lower levels.
CMD Override.
The Warp 3 and Warp 4 CMD.EXE are the same ones that are shipped with their
corresponding versions. The installed CMD.EXE is the one on the boot drive in
the OS/2 directory. This is intended to give you a choice if you are using a
command replacement shell.
Misc Options.
The Class and Level in the Title Bar is always selected so that you can know
that this is the startup window.
Information Messages are global.
Warning Messages are global.
Auto Close Launched Programs on Exit closes the session when Priority Master II
exits and is specific to the this session.
Activate the Session is required to be set if you want the session to be
started when Priority Master II is started.
Prompt for Class and Level starts a dialog to set the title, class and level at
startup.
ΓòÉΓòÉΓòÉ 12. Prioritized OS/2 Window/Full Screen ΓòÉΓòÉΓòÉ
This option will start another OS/2 WINDOW or FULL SCREEN at the Class and
Level specified in the main window title bar or set a new Class and Level.
Do NOT run any programs from the prioritized Widow or Full Screen especially in
the Critical Class. Use this option only to run commands recognized the CMD.EXE
processor. Use the Find Program an Prioritize or Run Prioritized Programs From
List to launch OS/2 programs.
You may start as many PRIORITY MASTER OS/2 Window/Full Screen sessions as your
system can handle. Simply select the option again.
For best results, increment the level by one for higher priority programs. This
will allow 32 levels per CLASS to prioritize the background programs.
NOTE: Using the START command to start another Window or Full Screen session
will set the priority of the new Window or Full Screen to SAME priority as the
PRIORITY MASTER II window. However, it will NOT have the CLASS and LEVEL
identifiers on the top of the screen. Therefore, DO NOT use the START command
to avoid confusion. Instead, use the PRIORITY MASTER II to start ALL Full
Screen and Window sessions.
The priority of a Foreground Window will always be higher than a Full Screen
when session in the default mode (ie REGULAR CLASS). A PRIORITY MASTER II
SERVER Class Level 31 Full Screen is still less than a PM foreground window.
Applications using the PM Message Queue are inherently higher in priority than
applications that do not use the PM Message Queue. The PM Message Queue is
higher than SERVER class LEVEL 31.
Use MYPRI (found in the PRIMAST2 directory of the installed drive) to verify
the priority of any given window. This will give the Class and Level associated
with the current window.
The various options are explained as follows:
Sessions Type:
Select a Window or Full Screen.
Execute in the:
Select foreground or background.
Priority/Override:
Select Set New Priority if you want to change the priority.
The Auto Increment increment the level by one.
The Auto Decrement decreases the level by one.
Class:
Select a class using the drop down box at the right side of the control.
Level:
Select a level using the spin button at the right side of the control.
CMD Override.
The Warp 3 and Warp 4 CMD.EXE are the same ones that are shipped with their
corresponding versions. The installed CMD.EXE is the one on the boot drive in
the OS/2 directory. This is intended to give you a choice if you are using a
command replacement shell.
Misc Options:
Class and Level in title bar also displays in the CTRL+ESC Task list.
Information Messages display if any additional information is needed.
Warning Messages should always be turned on for a new user.
Auto Close Launched Programs on Exit will close the Window or Full Screen when
you close Priority Master II. You may start some sessions with this option ON
and some with the option turned OFF. All sessions started with Auto Exit ON are
tracked and checked when Priority Master II exits if either the Information or
Warning Messages are ON.
ΓòÉΓòÉΓòÉ 13. Generate Multiple Sessions ΓòÉΓòÉΓòÉ
Automatically generates up to 32 prioritized OS/2 Full Screens or Windows.
The Starting Priority, Class, Class and Level in Title, Auto Increment, Same
Priority, Information Messages and Warning Messages options reset corresponding
options set from the Option Menu for the generated sessions.
The various options are explained as follows:
Number of Sessions:
The maximum number of sessions that can be generated is 32.
Starting Priority Level:
Generated sessions will begin with the selected level.
Class:
Sets the Class in which the generated sessions will reside.
Session Type:
Windows:
Selects all generated sessions to be prioritized OS/2 Windows.
Full Screens:
Selects all generated sessions to be prioritized OS/2 Full Screens.
Last In Foreground:
Last session generated is automatically made the foreground session.
Class and Level in Title:
Allows an extended title to appear in the main window title bar.
Level Options:
Set Individually:
Presents a Dialog box to set the Class and Level individually. Also, it allows
an extended title for the generated session.
Auto Increment:
Automatically increments the level of each newly created session.
Same Priority:
All generated sessions will be of the same Class and Level.
Beep on Creation:
Each newly generated session will beep after creation. Large numbers of
generated sessions may be hidden behind other windows. This is a mechanism to
determine when all generated sessions have completed via when the beeping
stops. This is especially useful when generating large numbers of full screens.
Information:
Turns on information messages for the generated sessions and sets global
information messages on or off as selected.
Warning Messages:
Turns on warning messages for the generated sessions and sets global warning
messages on or off as selected.
ΓòÉΓòÉΓòÉ 14. Find Program and Prioritize ΓòÉΓòÉΓòÉ
A graphic sample on how to prioritize your programs can be found on the web at
http://www.prioritymaster.com/tour.html
This option will present a standard open file dialog to locate a program and
then to run the program at the priority in the main window title bar. Note that
the Increment/Decrement option (or lack of) applies to the new program to be
started.
You can get the pathname from any OS/2 applications that you normally launch
using an icon. Simply select the icon and open the Settings/Properties. The
pathname is on the first page of the notebook. However, if the
Settings/Properties do not show the executables path, you can add or run the
program because it actually runs from the PM Shell.
This option will run ANY type of program, however, only the priority of OS/2
programs can be set. The selected file is verified to be an executable before
it is run. If the file selected is not a valid executable, then an error
message will be presented and and a graceful exit from only the option will
occur.
If the file selected is a DOS program and the warning messages are turned ON,
then a warning message dialog will be presented. The program will still be run.
The program to be run may be started in the Foreground or the Background as
desired.
When the background option is specified, a message box will allow you to run
another OS/2 program using the current drive and directory.
Note that some OS/2 programs (ie KLONDIKE.EXE) will take the foreground even
though a background was requested. The programs will also take the foreground
when started using the START command and specifying the background option. In
that event, the message box asking to run another OS/2 program may be behind
the foreground application. Simply move the foreground aside and select OK to
continue or CANCEL.
OS/2 VIO programs will automatically have their priority class and level in
their window title and in the CTRL+ESC task list.
OS/2 PM programs which do not set their window text title will have their
priority class and level in the window title and in the CTRL+ESC task list.
Prioritizing command files:
Select CMD.EXE in the OS/2 subdirectory in the drive letter that OS/2 was
installed onto for the executable. Use the name (or path+name if it is not in
your PATH line from CONFIG.SYS) in the parameters dialog.
ΓòÉΓòÉΓòÉ 15. Run Prioritized Programs From List ΓòÉΓòÉΓòÉ
NOTE: The demo only allows 6 entries and the retail version allows 128.
Tip - This should be the most often used option of the program.
Programs selected from the Find Program and Run Option build up to 128 entries
into the Run Prioritized Programs From List option.
You may enter the same program multiple times with different priorities to
avoid having to set the priority.
If you entered any data in the Parameters and/or Working Directory, then they
are stored internally and will be used when you select the program.
You can double click the icon to start the prioritized application or just
double click the highlighted entry to run a single program.
Multiple selection is also supported. The order in which you select the program
is the order in which the programs will be started. In most cases, it is faster
to start multiple programs using this feature than it is to start them from the
desktop.
The number of items selected is displayed at the top of the dialog as a read
only field.
The Scanning Logic is automatically disabled if two or more programs are
selected. This is done to prevent detection of lockout levels which is likely
due to the overlapping of processing involved in the launching of multiple
programs.
The Scanning Logic can be used when launching a single program only if it is a
VIO or non-Presentation Manager(PM) program. This is because the system boost
applied to PM program is already higher than Server 31 and less than Time
Critical 0. However, if PRIORITY=ABSOLUTE is specified in the CONFIG.SYS, the
priority scanning logic will be active for launching a single PM program.
Note that the state of the Scanning Logic is only reliable the first time a
selection is made. You must clear all selections and then the state is correct.
The Processing field displays the program's path in launch order when launching
multiple programs at once.
The selected program's icon will be displayed at the top of the dialog to
provide visual confirmation of the selected program.
The various options are explained as follows:
Priority Options:
Set Individually:
Use this option if you want to run the program at different priority from the
one already stored in the entry. A dialog will prompt for the class, level and
optional title. The newly entered priority will automatically replace the old
one. This option is automatically disabled when two or more programs selected.
Use Last Priority:
Run the selected program at the previously stored priority Class and Level that
appears in the window.
Sort List by:
Select program to sort the list by the program's name (not by path name).
Select Priority to sort the list by priority.
Select Higher on top for higher priorities or descending alphabetic sort.
Select Lower on top for lower priorities or ascending alphabetic sort.
Select Sort Now and the list will be resorted and the new list will overwrite
the old list in the window.
Misc Options:
Auto Close Launched Programs on Exit will automatically close the session when
Priority Master II closes without any notification. You may start some sessions
with this option ON and some with the option turned OFF. All sessions started
with Auto Exit ON are tracked and checked when Priority Master II exits if
either the Information or Warning Messages are ON.
Information MSG's:
Turns ON information messages associated with the option.
Warning Messages:
Turns ON warning messages associated with the option.
Pop Up on Startup will start the Run Prioritized Programs From List dialog when
Priority Master II is executed. You should use this option once you have
selected your programs to run using the Find Programs and Prioritize option.
Push Buttons:
Run:
Run the selected program in the foreground.
Run and Select Again:
Run the selected program in the background and returns back to the dialog box
to run another program. You may select several programs and still use this
option. This is useful if you need a time delay between starting applications.
Cancel or Exit:
Use Cancel if you wish to cancel running a program with its stored priority,
use the button as an exit when only deleting entries from the list.
Edit:
This activates another dialog that enables you to edit the class, level,
title, parameters and working directory.
Delete Marked Entry:
Deletes the selected entry from the list box. If you do not want to run any
programs, use the Cancel or Exit option.
Selecting multiple entries can also be deleted all at once.
Note that the entry will not be deleted until the PRIORITY MASTER II program
exits. You must select YES to saving the options to actually delete the entries
from the list.
Add to Hot List:
Adds selected entried directly to the Hot List. The current count of entries is
also displayed.
Application Notes
When launching several programs at once, do not attempt to minimize or maximize
any of the programs while other programs are being started. This could result
in one or more of the program titles being incorrect.
Netscape is more likely than most programs to have it's title in other programs
main window title bar. Therefore, do not attempt anything until the other
programs have completed loading.
This problem occurs because the CTRL+ESC task list entries are constructed
using a template of the previously launched program or the contents of Priority
Master II's main window. This appears to depend on a number of nondeterministic
factors. Sometimes, the window reporting is faster than the actual main
window's contents are reflected into the Switch List Entry. As a result, an
incorrect title is first displayed and then followed by the correct title. This
problem has been left to another release rather than delay the title reporting
for several seconds.
ΓòÉΓòÉΓòÉ 16. Edit Run Prioritized Programs From List Parameters ΓòÉΓòÉΓòÉ
This allows you to edit the the Run Prioritized Programs From List parameters
This is useful if you want to change the priority, parameters or working
directory. The working directory path is verified to insure that a valid path
was entered.
It is not neccessary to append a ":" to the working directory.
Additional directories may be added.
Note that the Dynamically Constructed Environment has the working directory
prepended to the major CONFIG.SYS settings. This includes the PATH, DPATH,
HELP, BOOKSHELF, and INCLUDE directories. This was provided to give better file
system performance, especially in systems with very long paths.
Notes for using prioritized command files:
When you entered the program name, the path for CMD.EXE was entered. For
example, D:\OS2\CMD.EXE and at the Optional Parameters you entered the command
file (eg. F:\TOOLS\MYCMD.CMD). Now enter the path for the command file in the
working directory (eg. F:\TOOLS).
Just a few application notes:
Add the working directory for In-Joy.
Add the working directory for PMMAIL (you will be prompted as a new user if you
do not).
The -3 is automatically added for Netscape (this enables Version 3 features).
Also, add the web page address if you want to go directly to that web page. For
example, use -3 prioritymaster to engage Version 3 features and go directly to
the Priority Master II home page. Note that you do not have to enter the www or
the .com, that is done automatically.
ΓòÉΓòÉΓòÉ 17. Prioritized Hot List Programs ΓòÉΓòÉΓòÉ
NOTE: The demo only allows 3 entries and the retail version allows 10.
This allows you to run up to 10 of your commonly used programs at once or
select from the list and run them in the order selected.
The Pop Up on Start Up option will load this dialog when the program loads so
that the Hot List programs can be instantly accessed.
Run All on Startup will start all of the Programs in the Hot List as soon as
Priority Master II is executed. You can also include Priority Master II to the
Start Up Folder and have all of the programs in the Hot List loaded while the
system is booting. Note that for unattended operation turn the warning and
information messages off so as to avoid having to respond to those panels. Once
the system is booted, turn this option off if you do not want to run the same
programs again. You should use this option once you have selected your programs
to run using the Find Programs and Prioritize option.
This method is far faster than selecting the individual icons from the desktop
due to overlapping the of the loading process.
Select an entry in the list and the program's icon will appear.
The processing field displays programs when activated using the Run All, Run
Selected and Delete buttons.
The buttons are explained as follows:
Run All:
Run all of the programs contained in the list at once.
Run Selected:
Run the programs selected in the order selected.
Cancel/Exit:
Cancel or Exit the dialog. Changes are saved for the session and can be made
permanent when the program closes.
Delete:
Delete selected entries and multiple selections are supported.
Edit:
Edit the Hot List programs parameters.
Store Prioritized Programs:
Loads the list of stored prioritized programs so that you can select directly
from list. The list is automatically refreshed when you close the Run
Prioritized Programs from List dialog box.
ΓòÉΓòÉΓòÉ 18. Edit Hot List Programs Parameters ΓòÉΓòÉΓòÉ
This allows you to edit the the Hot List Programs parameters
This is useful if you want to change the priority, parameters or working
directory. The working directory path is verified to insure that a valid path
was entered.
It is not neccessary to append a ":" to the working directory.
Additional directories may be added.
Note that the Dynamically Constructed Environment has the working directory
prepended to the major CONFIG.SYS settings. This includes the PATH, DPATH,
HELP, BOOKSHELF, and INCLUDE directories. This was provided to give better file
system performance, especially in systems with very long paths.
Notes for using prioritized command files:
When you entered the program name, the path for CMD.EXE was entered. For
example, D:\OS2\CMD.EXE and at the Optional Parameters you entered the command
file (eg. F:\TOOLS\MYCMD.CMD). Now enter the path for the command file in the
working directory (eg. F:\TOOLS).
Just a few application notes:
Add the working directory for In-Joy.
Add the working directory for PMMAIL (you will be prompted as a new user if you
do not).
The -3 is automatically added for Netscape (this enables Version 3 features).
Also, add the web page address if you want to go directly to that web page. For
example, use -3 prioritymaster to engage Version 3 features and go directly to
the Priority Master II home page. Note that you do not have to enter the www or
the .com, that is done automatically.
ΓòÉΓòÉΓòÉ 19. Auto Close Launched Programs on Exit ΓòÉΓòÉΓòÉ
Automatically Closes selected any sessions started when PRIORITY MASTER II
exits. Any sessions started while using this option will close when closing
PRIORITY MASTER II. You may start some sessions with this option ON and some
with the option turned OFF. All sessions started with Auto Exit ON are tracked
and checked when Priority Master II exits if either the Information or Warning
Messages are ON.
Note that the normal OS/2 pop-up which asks you to verify that you want to
close the the session with an active program will NOT be displayed. Using this
option on all of your programs will give you a much faster shutdown.
Note that sessions started using the Find Program and Prioritize or the Run
Prioritized Programs From List need to have this option ON to display their
priorities in the TASK LIST (CTRL+ESC) and the Main Window Title.
Not using this option allows you to close the PRIORITY MASTER II application
and leave the generated Full Screens or Windows running.
The Information Messages or Warning messages must be ON when using the Auto
Close Launched Programs on Exit option and exiting Priority Master II to search
for active launched programs. Otherwise, the exit will close all programs
without notification.
In general, do not keep any open Full Screens or Windows that do not have
applications running in them because they consume memory.
ΓòÉΓòÉΓòÉ 20. Auto Close Program Status List ΓòÉΓòÉΓòÉ
This dialog is intended to allow you you to view the program names and icons of
the programs that were started with the Auto Close Launched Programs on Exit
option specified so that you may open the program to save options before you
exit the Priority Master II application.
Most programs are OK to just close them. However, new programs may need their
option setting saved at least once. You may start some sessions with this
option ON and some with the option turned OFF. All sessions started with Auto
Exit ON are tracked and checked when Priority Master II exits if either the
Information or Warning Messages are ON.
Note that this dialog will be presented if the Information or Warning Messages
are ON and you attempt to exit the Priority Master II application with one or
more programs started with the Auto Close Launched Programs on Exit option
turned ON. Once you become familiar with this option, turn off this Information
and Warning Messages so that you can close a large group of programs all at
once without the usual OK to close message for every program running that the
PM Shell presents at shutdown. This will give you faster shutdowns.
This panel contains:
The number of applications started using the Auto Close Launched Programs on
Exit option.
The program's path.
The program's Class.
The program Level.
The program's icon.
If there are more than 5 entries, SCROLL UP and SCROLL DOWN are enabled.
Note: Please wait for all of the entries to be presented before selecting the
SCROLL UP/SCROLL DOWN buttons. If you press them while entries are being
displayed, the mouse clicks can get lost. Simply scroll back up to the 1st
entry and it will be reset.
ΓòÉΓòÉΓòÉ 21. Overwrite Window Title with Priority ΓòÉΓòÉΓòÉ
This option shows the priority in the main window and the CTRL+ESC Task List
when the title length is over 60 characters.
The Auto Close Launched Programs on Exit option must be ON to use this option.
OS/2 allocates 60 characters for the main window title by default. The program
can increase this limit (MAXNAMEL), however only the first 60 characters will
appear in the CTRL+ESC Task list.
This option can be turned OFF and the full main window title will appear
without the priority.
If the main window is less than 60 characters and the Auto Close Launched
Programs on Exit is ON, then the priority will appear in the main window title
by default.
If the option was ON and the main window title length was over 60 characters
and then turned OFF, the first 60 characters of the main window will be
restored and future main window updates over characters will appear in their
complete form.
Application Notes
Netscape will not update the title with the Class and Level while the Bookmarks
are open. Only the Bookmarks Class, Level and/or title can be updated at that
time. To resume the title update, close the Bookmarks.
ΓòÉΓòÉΓòÉ 22. Dynamically Change Program Priority and/or Title ΓòÉΓòÉΓòÉ
WARNING - Changing the programs priority may lead to unpredictable results.
Therefore, it is highly reccommended that you select the Pre-Check Modify for
any program that you are not certain about. This check should be performed at
least once for any program and you should follow the reccommendation provided!
This displays the number of programs started, their program paths, priority and
icon.
If the Modify button is enabled, then the program priority can be modified.
This applies only to OS/2 Presentation Manager(PM) programs.
If the Modify button is disabled, then the program's priority can not be
dynamically changed.
The new priority is reflected in the programs main window title bar and/or the
CTRL=ESC Task List.
The Pre-Check Modify scans the threads to determine if multiple levels and/or
classes are used by the program. Please follow the reccommendation that is
provided. This option is the first of it's kind. A ScheduPerformance, Inc.
exclusive! We have always said the dynamic prioritization is dangerous. Not
anymore - Now you are in CONTROL of your machine!
Note: Please wait for all of the entries to be presented before selecting the
SCROLL UP/SCROLL DOWN buttons. If you press them while entries are being
displayed, the mouse clicks can get lost. Simply scroll back up to the 1st
entry and it will be reset.
ΓòÉΓòÉΓòÉ 23. Set Foreground Program Priority ΓòÉΓòÉΓòÉ
This option is intended for use on a file or application sever that is using
PRIORITY=ABSOLUTE in the CONFIG.SYS.
This acts just like the foreground boost that OS/2 gives to the foreground
application in default configuration.
This option is significantly more powerful because it gives the user 96
priority levels from which to assign the power of the foreground boost.
Standard OS/2 gives only one priority level.
CAUTION: Do set to any Time Critical priority levels unless you are certain
that there are no compute bound OS/2 programs launched from the Run Prioritized
Programs from List Option.
There are very few 100% compute bound OS/2 programs. A close example is the
KLONDIKE program in auto-play mode. While it is playing, all keyboard and mouse
inputs would be lost if at Time Critical priority. The application actually
pauses after each game, so control could be diverted away to another program at
that time.
This option can be used on default systems. The system installation gives all
of the boosts by default. If you use this option, it must be set to Time
Critical Class to be effective, since the PM message boost is above Server 31
and below Time Critical level zero.
ΓòÉΓòÉΓòÉ 24. Information Messages ΓòÉΓòÉΓòÉ
This option provides relevant information message boxes where it may be needed
when selecting any of the options.
The intent of the information message is to provide the USER with relevant
information to allow an intelligent decision when selecting the various
options. You may still do whatever you want to do. The difference is that you
will know in advance BEFORE you take the risk. The information contained in the
information messages are simply not available anywhere else.
This is intended to be a self teaching method to understand the various
priority Classes and Levels in relation to the rest of the system. Performance
implications are also presented.
The Information Messages or Warning messages must be ON when using the Auto
Close Launched Programs on Exit option and exiting Priority Master II to search
for active launched programs. Otherwise, the exit will close all programs
without notification.
ΓòÉΓòÉΓòÉ 25. Warning Messages ΓòÉΓòÉΓòÉ
This option provides relevant warning message boxes where it may be needed when
selecting any of the options.
The intent of the warning message is to provide the USER with relevant
information to allow an intelligent decision when selecting the various
options. You may still do whatever you want to do. The difference is that you
will know in advance BEFORE you take the risk. The information contained in the
warning messages are simply not available anywhere else.
This is intended to be a self teaching method to understand the various
priority Classes and Levels in relation to the rest of the system. Performance
implications are also presented.
The Information Messages or Warning messages must be ON when using the Auto
Close Launched Programs on Exit option and exiting Priority Master II to search
for active launched programs. Otherwise, the exit will close all programs
without notification.
ΓòÉΓòÉΓòÉ 26. Warning Beeps ΓòÉΓòÉΓòÉ
This option allows you to turn on or off the warning beeps associated with some
of the warning messages. In cases where there a lot of people in a small area,
beeps can be annoying.
Beeps can be turned ON even though the warning messages are turned OFF.
If there is a check mark next to this item the beeps will be turned ON.
ΓòÉΓòÉΓòÉ 27. Auto Recovery Window ΓòÉΓòÉΓòÉ
This is designed to allow you to recovery from an otherwise "hung" system.
This option is for advanced users only. Please do not change any of the default
values because it may generate an invalid time critical recovery when a hang
condition does not exist. Ask yourself these questions:
Any PM programs launched with Run Prioritized Programs from List will
automatically be reduced to Server 31. You may change the priority after the
possible hang has been resolved.
A list of running programs will be presented so that you may use the KILL
utility in the install drive and directory where Priority Master II was loaded.
Try using the CTRL+ESC first. If the system does not respond, then KILL the
highest priority PID first and the system still does not respond, continue down
the list in decreasing priority order until the system is responsive.
Have you started any PM programs in the IDLE class and then started any
programs that may take up all of the CPU cycles?
Is you system very overloaded to the point where performance is sluggish and
you have swapfile over 20MB?
If you think that you know what you are doing and really want to increase the
default threshold to to a higher level, then OK.
This feature is really meant for for severely overloaded systems (ie i386/i486
or equivalent) with large swapfiles.
If a Time Critical window keeps coming up on your desktop, then you should find
the priority of the program that is causing the problem. Use the Utilities from
the main window or F4. Press the F4 a few times and see which program is always
in the list. Correct the program if possible. If it necessary to have this
program, then adjust the Auto Recovery Window priority to be one level higher
that the priority of the program which is always in the Ready state.
The various options are explained as follows:
Class:
The higher the class the less likely that the emergency recovery time critical
31 window will be generated.
Level:
Higher levels will decrease the probability of the generated
Delay:
This is the amount of time that you think on you system that the system is
hung. Please do not values less than 15 seconds, since that is about the
correct time to use on a normal system.
General information:
This option will start a watchdog background process to check for idle cycles.
If more than the specified number of seconds elapse without any idle cycles,
then a Time Critical 31 (highest level in the system) OS/2 window will be
generated.
This does not mean that the system is hung, it means that it MAY be hung. It
does mean that there have been no idle cycles for at least 15 seconds. It is
suggested that if the program is not a Presentation Manager program, then start
the program in the IDLE Class.
If the the recovery window was generated due to a pending system hang, then the
PM Message Queue is inoperative due to a PM program in the IDLE Class with a
compute bound program in the REGULAR or higher Classes.
First, determine if this is the cause. Do the following:
On the PRIORITY MASTER II RECOVERY WINDOW go to the install drive letter and
subdirectory (ie. d:\primast2).
d:\primast2]pstat2
d:\primast2]type pstat2.sup
If there are any PM programs in the IDLE Class or any labeled (kernel), then
you must choose one of them to be killed.
d:\primast2]KILL Process
This will recover your system. However, you may have ignored the warnings and
can prevent this in the future by setting all DOS and Window's Setting to a
maximum of 99% Idle Sensitivity.
ΓòÉΓòÉΓòÉ 28. Select User Options to Reset ΓòÉΓòÉΓòÉ
Select stored options to reset to the installation state. This is intended to
help the user in the event that the option settings become corrupt or if the
user would like to refresh only a subset of the available options.
A warning message is generated if you select Reset All or the Stored
Prioritized programs to allow you to abort before deleting them.
The various options are explained as follows:
Internal Counters/Intervals:
This includes the various intervals and counters used in the Utilities Option
for the various Idle Cycle utilities and the Auto Compute Bound reporting.
Stored Prioritized Programs:
This includes all of the program names and priorities that were stored using
the Find Programs and Prioritize option. Use this with care since it does
require a little effort to enter the programs again.
Text Color:
The color of the text that appears in the main window.
Background Color:
The color of the background that appears in the main window.
Font:
The font type and point of the text that appears in the main window.
Information Messages:
The Global Information Messages. It is strongly recommended that you leave
this ON for about the first month or so. Additional information is available at
this hypertext link: Information Messages
Warning Messages:
The Global Warning Messages. It is strongly recommended that you leave this ON
for about the first month or so. Additional information is available at this
hypertext link: Warning Messages
Warning Beep:
Audible alarm for the warning messages. Additional information is available at
this hypertext link: Beep
Generate Multiple Win/Full:
All of the options associated with Generate Multiple Windows or Full Screens
dialog including the number type, priority and misc. options. Additional
information is available at this hypertext link: Generate Multiple Sessions
Set Foreground Class/Level/Activate:
Resets the Class, Level and activate status to it's default. Additional
information is available at this hypertext link: Set Foreground Program
Priority
Search String:
The search string in the Window_Controls Option.
Save Text Drive Letter:
The last drive letter used when saving the window text to a file.
Find and Prioritize Drive Letter:
The drive letter stored from the last Find Programs and Prioritize option.
Auto Close Launched Programs on Exit:
Automatically close programs when Priority Master II exits. Additional
information is available at this hypertext link: Auto Close Launched Programs
on Exit
Auto Recovery:
The Auto Recovery Window and the dialog options. Additional information is
available at this hypertext link: Auto Recovery Window
Class:
The Class that appears in the main window. Additional information is available
at this hypertext link: Class
Level:
The Level that appears in the main window. Additional information is available
at this hypertext link: Level
Auto Inc/Dec Level:
The default is not to automatically increment or decrement the priority level.
Additional information is available at this hypertext link: Auto Increment Auto
Decrement
Auto Scanning:
The Auto Scanning Utility and the dialog options. Advanced users only.
Additional information is available at this hypertext link: Auto Scanning
Dynamic Modify Pre-Check:
Resets the Pre-Check Modify option on the Dynamiclly Change Program Priority
and/or Title. Additional information is available at this hypertext link:
Dynamically Change Program Priority and/or Title
Push Buttons:
The push button operate in the standard manner.
Reset All will reset all options. This will purge all stored programs and their
environments. Use with CAUTION!
ΓòÉΓòÉΓòÉ 29. Banner ΓòÉΓòÉΓòÉ
This is the banner that appears in the main window title. The default is ON so
that you at least see it once.
This gives the version number, patent number, date and time.
The US Patent number is displayed to discourage piracy.
ΓòÉΓòÉΓòÉ 30. Graphic Overview - Web Site ΓòÉΓòÉΓòÉ
This option is provided to give a quick overview of the OS/2 scheduling
policies and how the PRIORITY MASTER II program interacts with these concepts.
Link directly to the Priority Master II home page by selecting the large button
at the top. Make sure that you start your internet provider.
Additional information on OS/2's four Classes and the types of programs that
should be in each of the four classes is available on a per Class basis.
Hypertext links for the four CLASSes in order of increasing priority are:
IDLE
REGULAR
SERVER
CRITICAL
NOTE: To return here after viewing a Class description, press ESC and view the
other Classes.
Additional hypertext information on OS/2's scheduling policies is available for
the following topics:
Scheduling Considerations
Dos and Windows Prioritization
Questions and Answers
Tips
Other Hypertext Information:
Sample Session
Virtual Function Keys
Uses for Priority Master II
Support
ΓòÉΓòÉΓòÉ 31. Exit ΓòÉΓòÉΓòÉ
This option ends the PRIORITY MASTER II application. This is the same as
closing the window by double clicking on the top left corner. If you have
specified Auto-Close on Exit and have started any PRIORITY MASTER II OS/2
Window or Full Screens, then a dialog box with a warning will be presented. In
general, you should close the applications individually before you exit the
PRIORITY MASTER II program.
This does not apply to the Run PULSE Utility option. It is safe to close the
PRIORITY MASTER II program after starting the PULSE program from the Utility
Menu option while using the Auto-Close on Exit option.
ΓòÉΓòÉΓòÉ 32. Set Class and Level ΓòÉΓòÉΓòÉ
The program's path and icon is displayed for visual confirmation.
The Idle class is automatically disabled for PM programs.
Class
Select a class that will be appropriate to your needs. The lowest level is
idle. This is followed by Regular, Server, and Time Critical (or just Critical)
classes.
Level
Use the slider to set the priority level that you want to run the program.
Higher levels execute before lower levels and programs of the same level get
the CPU in a round-robin fashion.
The priority (Class and Level) that you select will be pre-scanned to insure
that the priority is high enough to execute without delay at the time that the
program is launched when launching a single program.
ΓòÉΓòÉΓòÉ 33. Set Parameters and/or Environment ΓòÉΓòÉΓòÉ
This functions similar to the Settings/Properties option on desktop for a
WorkPlace Shell Object (icon).
The program's path and icon is displayed for visual confirmation.
If you want to prioritize a command file, then select CMD.EXE from the OS2
subdirectory of the install drive letter. Be sure add the path and name of the
command file in the Parameters section.
If you want to prioritize a desktop object, open the Settings/Properties of the
icon now. Use CTRL+INS to copy the text of the parameters and SHIFT+INS to
paste them into the parameters of the dialog. Do this for the working directory
if it is present.
Parameters
Include any parameters that are needed to start the program. Refer to the
documentation included with your program. If you are entering a program from
the desktop, then refer to its setting page for the correct parameters.
Working Directory
Most programs use the system default paths or enter directives directly into
your CONFIG.SYS to support environment variables. However, they may also
specify a working directory for HELP files, temporary files and the like. Refer
to the documentation included with your program. If you are entering a program
from the desktop, then refer to its Settings/Properties page for the correct
Working Directory.
Just a few application notes:
The working directory for In-Joy is needed and supplied.
The working directory for PMMAIL is needed and supplied (you will be prompted
as a new user if you do not).
A -3 is automatically added to the parameters for Netscape (this enables
Version 3 features) Also, add the web page address if you want to go directly
to that web page. For example, use -3 prioritymaster to engage Version 3
features and go directly to the Priority Master II home page. Note that you do
not have to enter the www or the .com, that is done automatically.
ΓòÉΓòÉΓòÉ 34. Find and Run OS/2 Programs ΓòÉΓòÉΓòÉ
Notes for using prioritized command files:
Change the Open Filename to *.CMD if you need to search for command file.
When you enter the program name, use the path for CMD.EXE. For example,
D:\OS2\CMD.EXE and at the next dialog - Optional Parameters you enter the
command file (eg. F:\TOOLS\MYCMD.CMD). Later enter the path for the command
file in the working directory (eg. F:\TOOLS) at the EDIT function of the Run
Prioritized Programs From List.
General Information about this dialog:
If the drive letter that you want to select a program from is not displayed,
then click the right most "down arrow" to view all of the configured drive
letters and highlight one entry by clicking it with the left mouse button.
The last used drive letter is stored for the next time you use the Find Program
and Prioritize Option to make selecting programs from the same drive letter
easier.
Next select a directory entry and continue selecting directory entries until
the program that you want to run appears on the left side of the dialog under
File heading.
Now use the left mouse button to select the executable. You may have to use the
scroll down arrow to view the program that you want to prioritize.
Finally, select the OK button.
Note: Only OS/2 programs can be prioritized and the executables are pre-checked
prior to starting.
ΓòÉΓòÉΓòÉ 35. Save Window Contents ΓòÉΓòÉΓòÉ
The last used drive letter is stored for the next time you use the Find Program
and Prioritize Option to make selecting programs from the same drive letter
easier.
If the drive letter that you want to select a program from is not displayed,
then click the right most "down arrow" to view all of the configured drive
letters and highlight one entry by clicking it with the left mouse button.
Next select a directory entry and continue selecting directory entries until
the program that you want to run appears on the left side of the dialog under
File heading.
Now use the left mouse button to select the executable. You may have to use the
scroll down arrow to view the program that you want to prioritize.
Finally, select the OK button.
Note: Only OS/2 programs can be prioritized and the executables are pre-checked
prior to starting.
ΓòÉΓòÉΓòÉ 36. Set Interval ΓòÉΓòÉΓòÉ
Select the amount of time that you want between when starting one occurrence
and then starting another occurrence of this option.
ΓòÉΓòÉΓòÉ 37. Class Menu ΓòÉΓòÉΓòÉ
The Options menu allows you to select a Class for an OS/2 Full Screen or
Window.
Note that option values are automatically saved and restored.
Idle
Starts an Idle Class OS/2 Foreground Full Screen or Window (N/A)
Regular
Starts a Regular Class OS/2 Foreground Full Screen or Window
Server
Starts a Server Class OS/2 Foreground Full Screen or Window
Time Critical
Starts a Time Critical Class OS/2 Foreground Full Screen or Window
ΓòÉΓòÉΓòÉ 37.1. Idle Class ΓòÉΓòÉΓòÉ
This option selects an IDLE CLASS Window or Full Screen. PRIORITY MASTER II
checks background CPU cycles to determine if the program can run. If the level
is too low to execute, the lowest available level may be automatically
determined or a default to Regular Class will be presented when there are no
Idle cycles available.
If there are no idle cycles available at the requested level, then a pop-up
will ask if you want PRIORITY MASTER II to find the first available level.
Select OK to engage the auto scanning logic.
Applications run in the Idle Class may NEVER get any execution time. Therefore,
run only applications of very low importance in the Idle Class.
For best results, increment the level by one for higher priority programs. This
will allow 32 levels per CLASS to prioritize the background programs. Note that
IDLE CLASS programs MAY NOT RUN if there are DOS or WINDOWS programs running.
If you can successfully start an IDLE class Window or Full Screen, be sure to
CLOSE the application before running any DOS or WINDOWS programs that are
compute bound (ie. use up all available CPU cycles).
Note that there is no concept of Foreground priority boost for the Idle Class.
It will only get CPU cycles when there are no Regular, Server, or Time-Critical
Class applications running.
If you have started a PRIORITY MASTER II Full Screen or Window session and then
start a DOS Window or Full Screen session before closing the IDLE class
session, then the Idle Class Full Screen may appear dead. The session can not
be closed. Don't worry, this situation is normal. The priority is just too low
to execute. The MAXWAIT parameter in CONFIG.SYS does not work on Idle Class
threads in OS/2 2.0 and 2.1. The Full Screen or Window will respond to keyboard
input when Closing some or all of the DOS and/or Windows sessions and any
compute bound applications.
Note that applications run in the Idle Class are likely to "freeze up" for
small periods of time in medium to heavy multitasking of other OS/2 Regular
Class or higher applications.
It is important for OS/2 to have occasional spare Idle cycles, especially on
systems with 16MB or less. The less memory that you have, the more important
that it becomes. This is because OS/2 priority preemptive scheduler performs
specialized "house cleaning" functions when there are no threads to run. These
functions may have patents pending on them, so they can not be mentioned.
Suffice it to say that idle cycles allow OS/2 to anticipate user requests that
it would not do otherwise. Therefore, refrain from using the Pulse applette all
of the time or any other monitoring tool that is compute bound.
Never run PM applications in the Idle Class. It is OK to run VIO 16 or 32 bit
apps.
This Class has been removed from all but PRIORITY MASTER II due to the
difficult nature of avoiding a system hang. However, the PRIORITY MASTER II
program has a wide array of built in safeguards that prevent hangs in the
scanning logic and any prioritized programs that are generated.
ΓòÉΓòÉΓòÉ 37.2. Regular Class ΓòÉΓòÉΓòÉ
This is your absolute BEST choice! The OS/2 priority preemptive scheduler is
virtually bullet proof for programs executed in this CLASS.
This is the default Class at start up time.
This option selects a REGULAR CLASS Window or Full Screen. PRIORITY MASTER II
does not check background CPU cycles because the REGULAR class programs receive
a priority boost based on the MAXWAIT parameter in CONFIG.SYS for DYNAMIC
PRIORITY VARIATION (Default). In light to medium loaded systems you may want to
change the default from 3 seconds to 1 second for better overall system
response.
Use this class to prioritize the background programs. The default class is
REGULAR and the default level is zero. Therefore, a class of REGULAR and a
level of 1 will always run ahead of all other default background programs!
Programs of the same CLASS and LEVEL share the CPU equally.
This should always be your first choice, especially for beginners.
For best results, increment the LEVEL by ONE for higher priority programs.
ΓòÉΓòÉΓòÉ 37.3. Server Class ΓòÉΓòÉΓòÉ
This option selects a SERVER CLASS Window or Full Screen. PRIORITY MASTER II
does not check background CPU cycles because the SERVER class programs receive
a priority boost based on the MAXWAIT parameter in CONFIG.SYS for DYNAMIC
PRIORITY VARIATION (Default).
Use this class to prioritize the background programs. The default class is
REGULAR and the default level is zero. SERVER class programs always run ahead
of the REGULAR and IDLE class programs. The intent of the SERVER class was to
make the program execution the same in the background as in the foreground.
This class is provided for LAN users to give better response to background
applications while the LAN is running. SERVER class and LEVEL 1 may suffice.
Server Class and Level 1 will be higher in priority than a non-PM application
running foreground in a Full Screen at default priority. In that case, the
background Server Class Level 1 or greater will be higher in priority than the
foreground application. This may be undesirable, especially if the Server Class
Level 1 or higher background application is compute bound. Therefore, NEVER run
a compute bound application in the SERVER Class. If there is any doubt, use the
Run PULSE program in the Utilities Menu while the application is running. If
the PULSE program draws the line at the top of the chart in a continuous
manner, then it is a compute bound application.
In general, the Server Class should not be used until all of the Regular Class
levels are used.
For best results, increment the LEVEL by ONE for higher priority programs.
ΓòÉΓòÉΓòÉ 37.4. Critical Class ΓòÉΓòÉΓòÉ
This option selects a TIME CRITICAL CLASS Window or Full Screen. This is a VERY
DANGEROUS option. Ultimately, it may reduce the powerful priority preemptive
scheduler into a single tasking system.
Use with extreme caution. First, insure that the program runs at the REGULAR
class and IS NOT COMPUTE BOUND! Using this option could result in the temporary
or permanent loss of keyboard, video and mouse inputs. In the worst case
scenario, a Reboot may be required which may include DATA LOSS! If uncertain,
close all applications and use the Run PULSE Utility. If the PULSE program is
NOT at 100% CPU utilization, then it is probably safe to run. Optionally you
may use the Static Idle Test, Audible Idle Cycle Heartbeat, and Inverse Audible
Idle Cycle Heartbeat.
The Time Critical Class was intended to be used for cases in which human like
is at stake and robotics/process control environments.
It is strongly recommended that you do not use disk caching when first using
Time Critical Level Full Screen or Windows. Modify CONFIG.SYS to disable disk
caching by inserting a "rem" before the DISKCACHE= directive.
This option can be used for editing, compiling, linking, word processing, etc.
Do NOT run the KLONDIKE or CHESS programs because they use all available CPU
cycles and you will loose the keyboard, mouse, and video inputs until the game
ends or resets.
Do not use Level 31 under ANY conditions! Using Level 31 will interfere with
the operating system's threads at that level.
When using any of the Levels in the Time-Critical Class while on a LAN, you may
drop the connection. Therefore, only run I/O bound applications in these
levels.
Note that the Time-Critical Class is higher in priority than the normal
Foreground. Therefore, background Time-Critical Class applications will be
higher in priority than Idle, Regular, or Server Class Foreground applications.
ΓòÉΓòÉΓòÉ 38. Level Menu ΓòÉΓòÉΓòÉ
The Level menu allows you to select increment or decrement options.
Auto Increment
Automatically increments the priority Level within the selected Class
Increment Level
Increments the priority Level within the selected Class in the Main Window
Auto Decrement
Automatically decrements the priority Level within the selected Class
Decrement Level
Decrements the priority Level within the selected Class in the Main Window
ΓòÉΓòÉΓòÉ 39. Auto Increment ΓòÉΓòÉΓòÉ
Automatically increment the priority Level. The minimum is Level 1. When Level
31 is reached, increments will stop.
Increments will appear in the main window title bar. This will be the priority
of the next generated OS/2 Window or Full Screen.
This does not dynamically change the priority level of any session that is
already started. Dynamically changing the priority of any running program is
not supported. More information is contained in the Questions and Answers
section.
Note that you may at any time select the Increment Level or Decrement Level
options. This will allow you to skip one or more Levels without having to
manually enter the Level.
You should order the priority of the jobs you want to run before you open the
sessions. Sometimes that is not possible, so the default start level is 15.
That should make it easy to start any Full Screen or Window session and then
Increment/Decrement around the mid-priority zone.
When switching from Auto-Decrement directly to Auto-Increment, the intent is
not to give you the same level that you just came from.
ΓòÉΓòÉΓòÉ 40. Increment Level ΓòÉΓòÉΓòÉ
Increment the priority Level in the Main Window title bar each time that the
option is selected. This is to provide an easy way to skip a few levels.
Note that you may at any time select the Increment Level or Decrement Level
options. This will allow you to skip one or more Levels without having to
manually enter the Level.
ΓòÉΓòÉΓòÉ 41. Auto Decrement ΓòÉΓòÉΓòÉ
Automatically decrement the priority Level. The minimum is Level 0. When Level
0 is reached, decrements will stop.
Decrements will appear in the main window title bar. This will be the priority
of the next generated OS/2 Window or Full Screen.
This does not dynamically change the priority level of any session that is
already started. Dynamically changing the priority of any running program is
not supported. More information is contained in the Questions and Answers
section.
Note that you may at any time select the Increment Level or Decrement Level
options. This will allow you to skip one or more Levels without having to
manually enter the Level.
You should order the priority of the jobs you want to run before you open the
sessions. Sometimes that is not possible, so the default start level is 15.
That should make it easy to start any Full Screen or Window session and then
Increment/Decrement around the mid-priority zone.
When switching from Auto-Increment directly to Auto-Decrement, the intent is
not to give you the same level that you just came from.
ΓòÉΓòÉΓòÉ 42. Decrement Level ΓòÉΓòÉΓòÉ
Decrement the priority Level in the Main Window title bar each time that the
option is selected. This is to provide an easy way to skip a few levels.
Note that you may at any time select the Increment Level or Decrement Level
options. This will allow you to skip one or more Levels without having to
manually enter the Level.
ΓòÉΓòÉΓòÉ 43. Miscellaneous Information Menu ΓòÉΓòÉΓòÉ
This menu provides additional related information. It is STRONGLY recommended
that you read all sections carefully before proceeding.
Tips
Selects tips about using PRIORITY MASTER II.
Questions and Answers
Selects likely questions and answers.
Scheduling Considerations
Explains the Class and Level relationships and additional information.
ΓòÉΓòÉΓòÉ 44. Dos and Windows Prioritization ΓòÉΓòÉΓòÉ
ScheduPerformance, Inc. does NOT support the prioritization of DOS and
Microsoft Windows programs.
However, the freeware program SP is available on the demo page at
www.prioritymaster.com/demo.html for download. This can be used to prioritize
DOS applications.
Using IBM's OS/2 Warp, DOS and Windows programs can be prioritized using only
the Regular class. This is included in the session Settings/Properties under
"All DOS Settings". Values from 1 to 32 map to the Regular Class levels 0 to
31. Keep in mind while increasing the priority of any DOS and Windows programs,
the performance of OS/2 programs using default priority (Regular Class, Level
0) will decrease rapidly. This is SCARY! Why? Because the well behaved OS/2
programs executing in the background at Regular Class and Level 0 will get
virtually no CPU time. This is based on the MAXWAIT parameter in CONFIG.SYS. A
value of 3 (3 seconds is the default) means that the DOS and Windows programs
at Regular Class Level 1 or above will get 90 times more CPU cycles! The
relative performance of background OS/2 programs could give them a bad
reputation and slow the development of native OS/2 32 bit multi-threaded
programs. The goal of ScheduPerformance, Inc. is to give superior performance
and control to OS/2 programs.
ΓòÉΓòÉΓòÉ 45. Tips ΓòÉΓòÉΓòÉ
General Tips:
Read the descriptions of all of the CLASSes before using PRIORITY MASTER II.
Always consider the REGULAR class and LEVELs first.
Avoid running more than one application at any given CLASS and LEVEL.
Use the Auto-Increment and Auto-Decrement options for the majority of the time.
Note that they reset to their previous levels when they are turned off and then
turned back on. Also note that each Class is independently tracked. If you want
a level higher or lower than the next or previous level and either the
Auto-Increment or Auto-Decrement feature is ON, then simply turn on the option
one or more times until the desire Level is reached. Any new Window or Full
Screens will start at the last level in the PRIORITY MASTER II title bar.
Subsequent selection will start the next higher priority when Auto-Increment is
ON and the next lower level when Auto-Decrement is ON.
Use Regular Class Level ZERO when you do NOT want to give a priority boost to
the background application.
Using the START command to start another Window or Full Screen session will set
the priority of the new Window or Full Screen to SAME priority as the PRIORITY
MASTER II Window. However, it will NOT have the CLASS and LEVEL identifiers.
Therefore, DO NOT use the START command to avoid confusion. Instead, use the
PRIORITY MASTER II to start ALL Full Screen and Window sessions.
When using DOS Full Screen and Windows sessions and PRIORITY MASTER II Idle
Class Full Screens and Windows, NEVER set the Idle Sensitivity in the DOS
Settings to 100%. The default setting is 75%. Setting the Idle Sensitivity to a
maximum of 99% will allow the Idle Class applications to get some CPU time when
the DOS Full Screen or Window is at the Command prompt.
Do not use the standard OS/2 Full Screen and Windows icons when using PRIORITY
MASTER II.
Do not leave PRIORITY MASTER II FULL SCREENs or WINDOWs open on the desktop
when not running applications (they consume memory). This includes the PRIORITY
MASTER II application.
Do not use the PRIORITY MASTER II application to boost the priority of compute
bound applications. This will lock out all lower priority programs and
effectively reduce the number of levels to choose from. Use REGULAR level 0 or
Idle Class for compute bound applications. If there is any doubt, use the Run
PULSE option while the application is running. If the PULSE program draws the
line at the top of the chart in a continuous manner, then it is a compute bound
application.
Depending on what is installed on your system, PULSE may show that there is
some or all of the CPU cycles being used on an apparently idle system. In that
event, it will draw the line at the top of the graph or somewhere in between.
This may be the result of a program running in the Background that would be
considered a "runaway" application. Possibly the result of a power failure or
halt/hang. Check the SET AUTOSTART options used in CONFIG.SYS. If you are using
the PROGRAMS option, then remove it and reboot the machine. Replace it after
checking to see if PULSE now shows an idle system.
It is important for OS/2 to have occasional spare Idle cycles, especially on
systems with 16MB or less. The less memory that you have, the more important
that it becomes. This is because OS/2 priority preemptive scheduler performs
specialized "house cleaning" functions when there are no threads to run. These
functions may have patents pending on them, so they can not be mentioned.
Suffice it to say that idle cycles allow OS/2 to anticipate user requests that
it would not do otherwise. Therefore, refrain from using the Pulse applette all
of the time or any other monitoring tool that is compute bound.
CONFIG.SYS Recommendations
Modify the MAXWAIT parameter in your CONFIG.SYS to be MAXWAIT=1 (the default is
MAXWAIT=3). This will give you better overall application response when you are
running at different priority levels. This is VERY strongly recommended for
PRIORITY=DYNAMIC (default) SYSTEMS. This gives better overall response for
everything. The default value of 3 was to reduce the effects of starvation
saturation which would occur if there were 90 concurrent compute bound threads.
This value is high, and a value of 1 means that Regular threads would get a
time slice of the CPU around once per second. This can also solve performance
problems in the application due to priority inversions.
If you are running DOS or Windows add TIMESLICE=32,32 at the bottom of the
CONFIG.SYS file. This is especially important when running both DOS and OS/2
programs concurrently. The default is DYNAMIC timeslicing which simply varies
the timeslice based on system load. That is ideal for OS/2 only environments.
Modify the DISKCACHE=X,Y,Z directive The "Z" parameter is size of the read. The
default system does not include this parameter and therefore any disk reads
that exceed 4K do not get cached. On 8MB or more systems, specify 128 as the
read size. For example - DISKCACHE=1024,LW,128. On systems using 4MB or 6MB of
memory do NOT adjust this value - the default is OK.
If you have less than 32MB of memory then your next upgrade should be to add
more memory! CPU performance is not a factor in how well OS/2 will respond in
memory constrained systems. A 16MHz system with 8MB of main memory will
outperform a 66MHz system with 4MB of main memory. OS/2 is a huge operating
system which requires about 16MB of memory just to boot the system. The only
reason that it can operate in less memory is because it is on the disk and is
paged in as needed. In the CONFIG.SYS file is an option to disable swapping -
MEMMAN=SWAP,PROTECT. If you change that to disable swapping with
MEMMAN=NOSWAP,PROTECT and boot the system with less than 16MB of memory, then
you will have a dead system. You will have to boot a DOS boot diskette and use
a DOS editor to recover your system or a similar procedure using OS/2 install
disks. Therefore, DO NOT attempt this unless you know to recover your system.
Please check the Scheduling Considerations for additional information relating
to how fast the CPU is and how slow the disk is in performance.
ΓòÉΓòÉΓòÉ 46. Questions and Answers ΓòÉΓòÉΓòÉ
Questions and Answers
Question: Can PRIORITY MASTER II be used on applications that install
themselves as icons?
Answer: Yes. For example, if you wanted to used PRIORITY MASTER II on KLONDIKE
to set the priority, just get the path and type it in a PRIORITY MASTER II
Window or Full Screen. Find the path as follows: open the SYSTEM folder, open
the GAMES folder, select KLONDIKE with the left mouse button, press the right
mouse button, use the left mouse button and select open, use the left mouse
button and select Settings/Properties, that will show the application path and
filename. You may have to use the find option if the path is not shown and not
in the default path. Use a similar procedure for any of the installed
applications.
You may also use the Find Program and Prioritize Option after you have located
the drive letter and directory of the executable.
The Class and Level in the title bar will indicate the priority of the
generated application.
Question: How can I verify that the application is actually running at the
priority specified for the Window or Full Screen?
Answer: Use the Utilities Option Show All Priorities. This information may be
printed or saved to a file from main window using the Window Controls.
Question: When the system gets busy, why do the Idle Class Windows or Full
Screen Sessions appear dead?
Answer: There is no concept of a Foreground Focus for Idle Class threads. Idle
Class threads are only run when there are no Regular, Server, or Time Critical
threads to run. This only applies to the PRIORITY MASTER II version.
Question: Why do Some applications have different priorities than the one
selected for the Window or Full Screen?
Answer: Some applications set their own priority using OS/2's standard
programming calls. These are few in number. However, it is never desirable to
alter their priority because it MAY cause internal application priority
inversions. That simply means that the original programmer wanted a thread to
run at a low priority and another thread to run at a high priority for the
program to work correctly. For compatibility, the PRIORITY MASTER II
application does not work on some of these applications. It depends on how the
original programmer constructed the set priority calls. The actual calls have
an option to keep the current Class or Level and to modify only one of these
parameters. On those applications, the priority can be set using the PRIORITY
MASTER II Windows or Full Screens. When the original programmer intentionally
set a particular Class or Level, PRIORITY MASTER II will not change their
priority. If the priority of the application is not the same as the priority of
the Window or Full Screen, then simply set the priority of other applications
above, below or equal to the applications priority as desired.
Question: Why doesn't the priority display at the top of the Full Screen
Sessions like it does for the Window Sessions?
Answer: The first line of a Full Screen Session is under control of the OS/2
operating system, not the PRIORITY MASTER II application. That would take a
joint effort to modify command.exe and other portions of the operating system.
For now, the priority is displayed at the icon and the task list (CTRL+ESC). It
can also be displayed using the Show All Priorities option in the Utilities
menu.
Question: Why doesn't PRIORITY MASTER II work on DOS and Windows applications?
Answer: DOS and Windows applications inherently consume all processor cycles.
That means that any lower priority applications can NOT run. This can
effectively deprive you of the 32 Idle class Levels. There are DOS Settings and
various tricks that can be performed to stop or reduce the amount of wasted
machine power (CPU cycles). However, when upgrading to a faster processor, they
need to be reset. Unless you are willing to individually "tune" the DOS
applications and the faster the CPU, the more CPU cycles can be lost. DOS and
Windows applications are not native to priority preemptive Multitasking and
OS/2 applications are native. As the processors become more and more powerful
and the cost continues to decline, priority preemptive multitasking operating
systems will certainly become the default operating system of choice (hopefully
OS/2!).
Question: Using PRIORITY MASTER II, can I have the Foreground application lower
in priority than the background applications?
Answer: Yes! Start a Server or Time Critical Class Window or Full Screen and
the background applications will get all of the CPU that they need and the
Foreground application will get the remaining CPU power. This is very useful
when you have an important application to run and would like to look at a file
or play a game and not slow the important application down. In this case, the
background application can complete just as fast as if it had the Foreground
Focus.
Question: Is there any additional overhead associated with using PRIORITY
MASTER II?
Answer: No. Unlike System Resource/CPU monitoring tools, there are no
intermediate device drivers or probes used. A CPU monitoring tool presenting
graphic statistics will consume a significant portion of the CPU. For example,
a popular application measuring CPU utilization was presenting graphic data.
Although it reports that it is using between 0 and 9% of the available time,
the total impact is far worse. A 386DX 40 MHz, 128Kb cache with 8MB of memory
was tested. While the program is running the time to start the Master Help
Index goes from 5 seconds (monitoring tool not installed) to 9 seconds on
repeated tests. That is because it takes a significant portion of the CPU just
to do the monitoring. The effect on a 486 with 16MB of memory was 4 seconds to
5 seconds.
However, when selecting an Idle Class Level(PRIORITY MASTER II), some overhead
is incurred to find the lowest available level. The Utilities menu has two
options, Show All Priorities and Active Program Snapshot. These options have
very little (but some) overhead, since they are spread out over a relatively
long time period (up to 6 seconds).
Question: Since the PRIORITY MASTER II application does not work on some
applications that set their own priority, and a user does not know if the
application does set its own priority, what can be done?
Answer: Identify applications that do set their priority. These applications
effectively deny the user the ability to prioritize their programming
environments. These applications may not work when ported to the emerging
multi-processor environments if they rely on priority to work correctly. The
vast majority of the relatively few applications that set their priority can be
modified to use semaphores. Future applications being developed may include
"Does NOT set priority" if enough people request that. So, start requesting
application developers not to set the priority and ask them to state that on
the label! However, some application MUST be high in priority to work
correctly. You be the judge and react accordingly.
Question: How safe is it to run application in the Idle, Regular, and Server
Class and all of the Levels?
Answer: It is 100% safe for applications which do not set their priority in the
Regular and Server Classes. Any Application that is run in the Time Critical
class must be I/O bound or you could lock up the Presentation Manager. Running
applications in the Idle Class may not execute while there are DOS and/or
Windows applications executing concurrently. That has already been covered.
That does not represent a problem, closing the DOS and Windows application may
resume the Idle Class applications. The Idle Class has the auto-search on the
level feature intended for OS/2 only environments. However, if you wish to
"play" with the DOS Settings, you can get Idle Class cycles available from most
of the DOS applications which run in the Regular Class.
Question: What does the ScheduPerformance mean?
Answer: Scheduling and Performance. ScheduPerformance, Inc. specializes in
scheduling and multitasking software. The company also offers performance
tune-ups for applications or complete systems on single or multi-processor
environments using OS/2 2.0 or above. Performance is the pricing basis and is
guaranteed. If you are converting applications to OS/2 from DOS or Windows we
also offer consulting/programming expertise on multi-threading your
applications.
Question: I am running both DOS and OS/2 applications at the same time and I
noticed that when I have one or more OS/2 applications running at Regular 1
(and a Regular 2), the DOS background applications get very little CPU time,
why?
Answer: That is correct. The more OS/2 applications that you have running in
the background at Regular Class Level 1 or higher the less the CPU time is
available to the DOS programs - even when they are in the foreground. In the
Tips section, it is strongly recommended that you change the MAXWAIT parameter
in CONFIG.SYS to MAXWAIT=1. This will help the DOS and OS/2 applications. The
more powerful the system is (ie 50MHz 486 and 16MB of memory) the more CPU time
can be wasted by the DOS applications. For example, you may need about 85% Idle
Sensitivity on a 386 SX 16MHz and only 50% or less on a powerful machine. Many
users may not know this, so when they upgrade to a 486 processor they do not
recalibrate the various DOS Settings. The result is lost CPU cycles that could
be used by the OS/2 applications.
Question: How important is it to calibrate the DOS Settings?
Answer: It is extremely important for performance. Lets look at a worse case
scenario. Open a DOS Full Screen and set the Idle Sensitivity to 100% and save
the settings. Start the Pulse found in the Utility Menu. Insure that nothing
else is running. Note that Pulse shows an IDLE system. Start the DOS Full
Screen and CTRL+ESC to the desktop. Note that Pulse is showing 100% utilized
even though there is nothing running in the background DOS Full Screen! This is
true for DOS Windows as well when at 100% Idle Sensitivity. The more DOS Full
Screens and Windows that are open with 100% Idle Sensitivity, the greater the
CPU cycles will be lost to normal OS/2 background (Regular 0). The point is
that those background DOS applications are using up a significant amount of CPU
time even when they are not running. When they are running it is difficult to
determine whether they are doing application instructions or just pooling the
keyboard or anything else. Decrease the Idle Sensitivity until the application
no longer works, then increase just a few percent. Remember to do this again
when you upgrade to a faster CPU.
Question: Why PRIORITY MASTER II and why now?
Answer: Todays average OS/2 user is looking deeper and deeper into the
operating system for any clue as to how better take advantage of the features
and functions provided. The concept of four Classes and 32 sub-levels is not
very difficult to understand and using them certainly is not rocket science.
The days of Time-Sharing (giving all applications an equal slice of the CPU
pie) are certainly ending. The PRIORITY MASTER II application removes control
of the machine away from the operating systems designers and application
programmers and gives it to the USER in a "natural" fashion.
The time is NOW because the machines are simply too powerful to waste valuable
CPU cycles on programs written for a single tasking model. Consider that the
"average" DOS application was written for a 286 8MHz machine. That would imply
that a 386 8MHz is twice as fast, a 386 16MHz is four times faster, a 386 33MHz
is eight times faster, a 486 33MHz is sixteen times faster and 486 66MHz is
thirty two times faster! However, you will encounter great difficulty in
running 32 DOS applications on a 486 66MHz that you would not encounter running
native OS/2 programs.
Question: Once I have started an application in a PRIORITY MASTER II Full
Screen or Window, can the priority be changed while the application is running?
Answer: No. Changing the priority of a running application may get you into
trouble. For example, the PULSE program (found in the Productivity Folder or in
the Utility Menu) calculates idle time using two threads (run PULSE and use
Show All Priorities to verify). One thread is set at the lowest priority in the
system (Idle Class Level 0). The other thread is set at the highest priority in
the system (Time Critical Class, Level 31). The CPU graph is drawn based on how
much the Idle Class thread runs. If you increase the priority or change it in
any way, then the results of the graph will be incorrect.
Some programs may have consumer/producer relationships using priority
resolution. For example, one thread writes to a file at high priority. Another
thread reads from the file at a lower priority. The program could assume that
fresh data will always be written by the high priority thread before the lower
priority thread reads the data. If you inadvertently switch the internal
priorities, then old data will be presented for processing. That would likely
break the application.
Even if the program itself did not set its own priority, it may load a DLL
which sets the priority and again you would have a priority inversion. It is
virtually impossible to predict if dynamically changing the priority would be
safe. Even if the original program did not change its priority and the first
DLL loaded did not change its priority, it could still load other DLL's which
do set the priority. Until we all get to the stage where the manufacture of the
application puts "DOES NOT SET PRIORITY" on the label, dynamically changing
priority is dangerous.
All ScheduPerformance, Inc. products do not alter the priority of programs that
set their own priority so that they can work properly. There are no provisions
in the PRIORITY MASTER II application to dynamically alter the priority. You
may stop the application, start another PRIORITY MASTER II Full Screen or
Window at a different priority and then run the application at the new
priority. You can achieve similar results by starting new applications above or
below certain applications as desired.
Question: How does setting PRIORITY=ABSOLUTE in CONFIG.SYS effect the the
operation of PRIORITY MASTER II?
Answer: This has a VERY significant impact on the system operation. Most
importantly is the loss of the Foreground boost which would normally be applied
to the Regular Class. When using the PRIORITY MASTER II application on Regular
Class Full Screens or Windows with this option enabled, it brings new meaning
the phrase "What you see is what you get". For example, start a Regular 1 and a
Regular 2 PRIORITY MASTER II Window. In the Regular 2 window enter a TYPE
command at the command prompt of a large text file. While the Regular 2 Window
is displaying the text, switch the Foreground focus to the Regular 1 Window.
Begin typing and you will note that the characters do not get echoed to the
Regular 1 Window until the text is completely finished in the Regular 2 Window.
The same test applied when PRIORITY=DYNAMIC in CONFIG.SYS would result in the
characters displaying immediately in the Regular 1 Window.
The MAXWAIT directive which limits the amount of time that a Regular Class
ready to run has to wait will be disabled when using PRIORITY=ABSOLUTE in
CONFIG.SYS. This may have undesirable effects on some applications.
Specifically, applications which rely on priority to resolve internal priority
inversions. This could result in a deadlock in the application in rare cases
which would not occur when using PRIORITY=DYNAMIC in CONFIG.SYS. However, this
should NOT be a major concern when selecting the ABSOLUTE option. The more
important concern would be that background applications would not get a
priority boost for a small time interval.
Internal pseudo-system boosts, like I/O boost, are also disabled when using
PRIORITY=ABSOLUTE in CONFIG.SYS. This would require some careful consideration.
Printing, diskette formatting, or I/O bound jobs in general, could take
significantly longer to complete. Therefore, these applications should be given
the highest priority of all your applications to achieve good completion times.
Due to the vast difference between using DYNAMIC or ABSOLUTE it is not
recommended to change from which ever you are now using to the other without
doing a non-production trial run first to observe the effects.
Question: What is the biggest advantage of using the PRIORITY MASTER II
application?
Answer: Performance, especially in memory constrained environments. By
assigning a different priority Level to each application, the total job time
can be significantly decreased.
Question: In simple terms, how does that work?
Answer: Here is an example. Suppose that there are four applications and each
needs 2MB to run and there are 8MB on the system. You assign the most important
application to REGULAR Class level 4, the next to REGULAR 3, the next to
REGULAR 2, and the least important application to REGULAR 1. Start all of them
one after another, beginning with the REGULAR 4. The first application to run
is the REGULAR 4. It will get all of the CPU that it needs. What is unused goes
to the REGULAR 3 and so on. The effect is that the majority of the Regular 4
application may complete before the REGULAR 1 gets to run and request memory.
Contrast that to all four applications trying to get 2MB each at the same time
and using the PRIORITY MASTER II application will save you a significant amount
of disk thrashing. By prioritizing your OS/2 applications, every machine will
only attempt as much as it can actually handle. This is independent of CPU
speed or memory size. In effect it becomes a method/mechanism for memory
overload protection!
This is very important in light of the high cost of memory. If after using the
PRIORITY MASTER II application in your environment and you experience
significant performance gains in your typical operations on a memory
constrained system, please send your performance data to ScheduPerformance,
Inc. Selected submitters will receive either a number of free copies of the
PRIORITY MASTER II application or free upgrades when available for a limited
time. All submission will become the sole property of ScheduPerformance, Inc..
Question: What is the next biggest advantage of using the PRIORITY MASTER II
application?
Answer: Control. Typical is the scenario when you are already running several
applications when the boss walks in and asks for something done immediately.
Naturally you do not want to stop any of the applications that are already
running because you would probably have to start them over again. You already
know what the priorities are of the applications running, so you select one
higher to run the important application and use a lower level Class Window or
Full Screen to do normal work. Granted that the lower level application will be
slow, but you can be assured that the other jobs are not lost and the most
important application will get all of the CPU that it needs. Alternatively, you
could select a level just below the highest level being used to do your normal
work if you set PRIORITY=ABSOLUTE in CONFIG.SYS. With the existing OS/2
architecture, you would have to keep the Foreground focus on the high priority
application until it completed to achieve the same results as using a lower
level Window.
ΓòÉΓòÉΓòÉ 47. Scheduling Considerations ΓòÉΓòÉΓòÉ
The OS/2 priority preemptive scheduler supports four basic CLASSes with 32
sub-levels each for a total of 128 selectable priorities. The scheduler first
considers the CLASS and then the LEVEL. The lowest class is IDLE, the next
higher class is REGULAR, the next higher class is SERVER, and the highest class
is TIME CRITICAL. Within each class, the scheduler considers the LEVEL. The
higher the LEVEL is selected, the greater the priority becomes.
The single and certainly the most important concept that you need to understand
is that DOS, Windows, and default priority OS/2 programs ALL SHARE THE *SAME*
PRIORITY LEVEL IN THE BACKGROUND (Regular Class Level 0). You MUST get the OS/2
programs out of that level and into a higher level or suffer massive
performance looses on the OS/2 programs. The concept is very simple, DOS and
Windows inherently use up all available CPU cycles and OS/2 programs inherently
use only what they need and share the remaining CPU cycles. In the Tips
section, it tells you to NEVER set the Idle Sensitivity 100% on DOS programs.
For example, to build the PRIORITY MASTER II program takes about 1 min. If you
run a DOS window at 100% Idle Sensitivity with the build of the PRIORITY MASTER
II program, both in the Background, it takes over 2 min. By making the build of
the PRIORITY MASTER II program at Regular Class and Level 1 it completes in
about 1 min even though the DOS Window is at 100% Idle Sensitivity. That's a
50% performance improvement. This test was repeated with two DOS Windows at
100% Idle Sensitivity and three concurrent builds of the PRIORITY MASTER II
program. Completion times on the three builds were 10 min., 10 min. 30 sec, and
11 min. Using the PRIORITY MASTER II application to build the PRIORITY MASTER
II on Regular class levels 1, 2, and 3 changed the times to 1 min. 30 sec, 2
min, 2 min. 20 sec. even though the two DOS Windows were also running. That's
about a 500% performance improvement. That is why you need to get the OS/2
programs out of the Regular Class level 0 when mixing DOS and Windows with OS/2
programs.
Try the REGULAR class and LEVEL 1 first. The OS/2 priority preemptive scheduler
ALWAYS runs the highest priority thread in the system until it relinquishes the
CPU or shares it with another thread of the SAME level.
Applications started with REGULAR class and LEVEL 1 will always be serviced
before all other default priority programs while running in the background. The
system default priority is REGULAR class and LEVEL 0.
Using PRIORITY MASTER II on some applications which set their own priority may
in rare cases, cause internal application priority inversions. If the
application experiences any unusual problems, don't use PRIORITY MASTER II to
change their priority. Rather, use PRIORITY MASTER II to raise or lower other
programs around such applications.
PRIORITY MASTER II was designed to enhance the OS/2 operating system by giving
it what virtually all priority preemptive systems already have - the capability
to set the priority of user applications.
This is particularly important in Local Area Network (LAN), Constrained and
Loaded environments.
In the case of LAN, application developers typically use the SERVER and TIME
CRITICAL priorities in their threads. Generally, the USER only gets the CPU
cycles for the background that the LAN does not need. Some of the CPU can be
diverted to background applications by using the SERVER class. However, use the
high priorities in the SERVER class sparingly.
Constrained environments can be loosely defined as anytime the memory
requirement of the operating system and the applications exceed the amount of
available memory. In such cases, the high priority programs will be in memory
and the low priority programs will most likely be rolled out to the disk.
Accessing a data item in memory is many times faster than accessing the same
data item on disk. CPU's operate in the 40 to 60 nanosecond range. That means
that it can get at the data, stack, or code in the program in 40 to 60
nanoseconds on an i486 and about twice as long on an i386. Memory ads state
that it is at least 200 times faster to access an item in memory than it is to
get the same item from disk. Sure it is at least 200 times faster, in fact it
is significantly more than 200 times faster. Disk access is in the 10 to 20
millisecond range. It takes 1000 nanoseconds to make one microsecond. It takes
1000 microseconds to make one millisecond and it going to take at least 10 of
those just to get the data! That does not include the fact that OS/2 puts
programs that do I/O to the disk into a wait state and runs other programs
while the I/O is going on. That means that there is a high degree of
probability that when the I/O completes, something else is running and you have
store away all of the contents of the currently executing program and switch
everything over to get back to the original program that started the I/O
operation. That alone could take anywhere from about 250 microseconds (fast
i486 and nothing else running) to over 32 milliseconds with as little as one
other thread running and the operating system has at least 20. Still think that
it takes 200 times longer? It is more like 2 million times longer! The fact
that OS/2 can easily run a few applications well in 8 MB (1/2 of the operating
system is on the disk) is a technical achievement that is completely
understated. The good news is that OS/2 reads in at least 4K at once and there
is good probability that the next item that you will need was in that read.
Depending on the installation options, a constrained environment could be
encountered in as little as 16MB of memory and a single application. When
running as little as three applications only one may have the foreground. The
other two will share the background. Consequently, both will have parts of
their memory rolled out to disk. When the foreground application finishes, the
two background applications will compete for memory. This could result in
rolling in memory for first application, processing, switching to the second
application, rolling the first applications memory out, rolling the second
applications memory in, processing, and finally repeating the cycle until both
jobs complete! By assigning a different priority to each application according
to your needs (make the more important one higher), this situation may be
avoided! Using PRIORITY MASTER II in this case will allow one application to
get more of the memory that it needs, not have to compete by rolling it in and
out of memory, complete, and start the second application which also does not
have to compete for memory.
Loaded environments can be loosely defined as simply being out of CPU power.
Suppose that there are 32MB of memory and five compute bound applications that
would take two minutes each. Start them all at the same time. The one in the
Foreground would complete in two minutes. The remaining four in the Background
would all complete, nearly simultaneously, in ten minutes. Using these products
you can prioritize the remaining four to complete in four, six, eight and ten
minutes!
OS/2's Priority Preemption Capabilities
The OS/2 (2.0 and 2.1) scheduler gives all applications (DOS , Windows, and
OS/2) at least 32 milliseconds to execute before running another program of the
SAME priority level. If a higher priority program becomes ready to run (usually
the result of an I/O completion, timer expiration, semaphore being cleared
etc.) the higher priority program preempts before the 32 milliseconds of
execution is completed.
OS/2 can preempt a lower priority thread in the middle of a time slice. That's
true on OS/2 2.0 and 2.1. Ultimately, it depends on if the lower priority
program is executing in the application or inside of the operating system. When
it is executing in the application and a higher priority program becomes ready,
preemption is IMMEDIATE!
There are rumors that the OS/2 kernel is "monolithic". That simply means that
once a program request a system service (Application Interface - API)
preemption can not occur until the operating system completes its job and
passes control back to the application. Well, the fact is that OS/2 DOES
preempt inside of the kernel. IBM has measured how long each API takes. About
90% of them execute very quickly (under 1/2 millisecond). The relatively few
that do take longer to execute have been identified and broken up into smaller
code fragments where the system is checked to see if a higher priority program
is waiting. If a higher priority program is waiting then execution stops in the
middle of the operating system and transfers control directly to the higher
priority program. This is very similar to state of the art Real-Time operating
systems.
The only problem that needs to addressed is that the external interrupts may be
blocked for long periods of time and the system could become unresponsive. IBM
has measured the maximum time periods which interrupts are blocked. There are
NO long interrupt blocking periods in OS/2.
Windows employs an inferior concept known as "cooperative multitasking". That
means that the programmer decides when to give up the CPU to move on to another
program. Naturally, every programmer wants their program to look good when it
runs. Translated, that means that the application is going to make sure it
completes everything it wants to do without regard to what the user wants. You
can NOT preempt a Windows program in the DOS operating system or in the
application while running Windows! The Windows support on OS/2 can preempt in
both the operating system and in the emulated Windows session. That should shed
some light on the fact that Windows programs (even multimedia) may run better
on OS/2 than they do on real Windows.
Note that there have been reviews that state Windows programs will run faster
on Windows than on OS/2 because OS/2 has a double scheduling overhead - one for
Windows and one for OS/2. This is not the case. There is only ONE scheduler in
OS/2 which does ALL of the scheduling. The DOS and Window counterparts are
short circuited directly in the main scheduling routine.
What is not commonly known is that OS/2's support for "fast threads" in support
of multi-media and other time critical applications was successfully
generalized for all applications. The support was intended to a be high
performance path through the OS/2 scheduler when a high priority time critical
thread preempted any lower priority thread. Before OS/2 2.0 shipped, the high
performance path was used any time a thread preempted any other thread of lower
priority and when a thread became ready to run and the CPU was idle. This means
that when you prioritize your applications (ie Regular 1, 2, 3 etc), the high
performance path through the OS/2 scheduler is taken as opposed to NOT being
taken if all of the application were the *SAME* priority. That information
alone should give you incentive to prioritize your background applications.
Bog Down
Exercise extreme caution when mixing DOS and OS/2 applications! Used
improperly, your system could "bog down" in matter of just hours. The slow down
is caused by decreasing resident memory and correspondingly growing the SWAP
file. This occurs because some OS/2 applications contain Idle class threads and
there may not be any Idle Class cycles. When you exit an OS/2 application that
has Idle Class threads and you are running any DOS applications with the Idle
Sensitivity at 100%, the Idle Class threads NEVER exit. You don't know that, so
when you start the application again more Idle Class threads just hang around
taking up resident memory and SWAP file space. After a period of time, 8MB
systems perform like 6MB systems. This is easy to demonstrate. Start the PULSE
Applette from the Utility Menu. Next, Open the DOS Settings of a DOS Window and
set the Idle Sensitivity to 100%. Start the DOS Window. Close the PULSE
Application. Now try to start the PULSE Application again. You will get a
message "another copy already running". Use CTRL+ESC and you will NOT see the
PULSE Applette there! That is because it has an Idle Class thread that can not
exit the system. Use the Active Program Snapshot in the Utility menu and you
will see the PULSE thread in the ready state. When you close the DOS Window,
you can start the PULSE Application because the Idle Class thread was able to
exit. The BIG difference is that most OS/2 programs allow multiple copies and
opening and closing them just adds more Idle Class threads to clog up your
system. Use the Static Idle Test or PULSE and insure that Idle Class threads
from closed applications are not clogging up your system. If they are, then
simple close the compute bound application until Idle cycles are detected and
then the Idle Class threads will exit.
DOS Scheduling Considerations
Assuming that you have DOS applications and that there are no OS/2 equivalents,
there is way to do "pseudo" prioritization. All DOS programs share the same
base priority level. However, their priority is adjusted periodically based on
system events. You can not deal with those internal reprioritizations so they
are beyond this discussion. You can give more or less CPU cycles to selected
DOS applications using the DOS Settings. First, list your applications in the
order of importance. Next, tune them to match your prioritization scheme. The
DOS_BACKGROUND_EXECUTION defaults to ON, select OFF if you need keyboard input
to run the program or do not need it to execute in the background. The
IDLE_SECONDS should be 0 for your most important application and set to 1 or
more for less important applications. The IDLE_SENSITIVITY should be 99% for
the most important application and less (90, 80, 70, etc) for the others.
System load and various other conditions may effect the actual CPU time each
DOS session will get, however, the relative CPU proportions per DOS application
will remain more or less consistent using only these properties.
ΓòÉΓòÉΓòÉ 48. About Registration ΓòÉΓòÉΓòÉ
If you purchased this product from BMT Micro or directly from
ScheduPerformance, Inc., then you are automatically registered.
This section is for reference only.
Registered users will receive advance notification for all upgrades when
available. These products are being continuously upgraded. Registration must be
returned within 30 days of the purchase. This is required to receive support
and upgrade notification. Simply complete the following form and email to
waldront@prioritymaster.com or print it out and send to:
ScheduPerformance, Inc.
360 Indian Creek Dr.
Trophy Club, TX 76262
Also, The installation diskette contains a text file, REGISTER.TXT.
--------------------------------------------------------------------------
Name _______________________________________________________________
Address _______________________________________________________________
Address _______________________________________________________________
Address _______________________________________________________________
Address _______________________________________________________________
Day Phone (___) _________________________________________________________
Work Phone (___) _________________________________________________________
Where purchased from _____________________________________________________
Todays date ______________________________________________________________
Number of PRIORITY MASTER II purchased/price ___________________________
Number of Registered copies of OS/2 (optional) ___________________________
Number of Machines 486 or > in use (optional) ___________________________
ΓòÉΓòÉΓòÉ 49. About Support ΓòÉΓòÉΓòÉ
Question: What level of support can be expected for the product?
Answer: The PRIORITY MASTER II application is fully supported at an additional
nominal charge. All inquiries since 1993 have been of the nature: Now that I
have loaded the application how do I use it? In that capacity, we simply read
the Online Help to them on the phone. You will be encouraged to read the Online
Help by the new support policy. If the information you seek is not covered in
the Online Help or any of OS/2's documentation and is priority related a
nominal charge of $50/hr. (1 hr minimum) may be charged - paid in advance.
Please be warned that this is virtually impossible since the author of the
Priority Master II application was the actual IBM developer responsible for the
code development, documentation (Redbooks, Command Reference, and Control
Program Reference), and the primary author of the multiple US Patent
applications on OS/2's scheduling policies. This also includes the multitasking
scheduling used in OS/2's Symmetric Multiprocessing(SMP) scheduling policies.
However, if the problem is in the application, or in the OS/2 Operating System,
or a user error, or it is working as documented, or it is already covered in
the Online Help, then an extra charge will be incurred to resolve the problem
or provide information. Pricing is on an individual basis and is expected to be
relative to the difficulty of the problem. In over 5 years, not a single
problem has escaped resolution.
ScheduPerformance, Inc. believes that it has the highest level of expertise on
OS/2 2.0 , 2.1, 3.0 and 4.0 scheduling/multitasking available anywhere in
world.
Support can be obtained email at webmaster@prioritymaster.com
Every reasonable effort has been done to insure that the program is "bug free"
and works as designed. However, if you find a bug, please email to
webmaster@prioritymaster.com or mail it to:
ScheduPerformance, Inc.
360 Indian Creek Dr.
Trophy Club, TX 76262
The PRIORITY MASTER II Version 2.4 program is sold exclusively by
ScheduPerformance, Inc. and BMT Micro. If you purchased the program from any
other source, please notify us at webmaster@prioritymaster.com. Rewards may be
given for information leading to the arrest and conviction of software pirates
or unauthorized resellers.
ΓòÉΓòÉΓòÉ 50. Utilities Menu ΓòÉΓòÉΓòÉ
The Utility menu provides you with a means to look into the systems operation
relevant to static or selected priorities.
Note that option values are automatically saved and restored.
Auto Scan
This will execute a series of the Show All Priorities, Show Active Program,
Memory Status and Swapfile Size.
Show All Priorities
This will query the system and format the results. The results can be viewed
on the main window, printed, or both.
Active Program Snapshot
This will query the system and format the results for active programs. The
results can be viewed on the main window, printed, or both.
Memory Status
This utility reports the total configured, resident, and available on demand
memory.
Report Swap File Size
This utility reports the actual size of the Swap File.
Check CONFIG.SYS
This utility checks CONFIG.SYS for the multitasking parameters to give the
best overall throughput and smooth multitasking.
Run PULSE
This is to be used to determine if a program is compute bound in response to
the warning messages for high priority Classes and levels.
Static Idle Test
This utility provides a means to check for CPU idle cycles without using the
PULSE program.
Visual Idle Cycle Detection
This is to be used to determine if a program is compute bound in response to
the warning messages for high priority Classes and levels. This is used to
determine if a particular application is compute bound or pooling. If you are
uncertain, then use the Active Program Snapshot to determine if additional
programs are also pooling or compute bound.
Visual Idle Cycle Detection Interval
This allows you select the time interval between the warning messages being
posted in the window.
Audible Idle Cycle Heartbeat
This utility beeps if there are idle cycles available and stops when no idle
cycles are available. This is used to determine if a particular application is
compute bound or pooling. If you are uncertain, then use the Active Program
Snapshot to determine if additional programs are also pooling or compute bound.
Audible Idle Beep Interval
This allows you select the time interval between the beeps.
Inverse Audible Idle Cycle Heartbeat
This utility beeps if there are no idle cycles available and stops when idle
cycles are available. This is used to determine if a particular application is
compute bound or pooling. If you suspect multiple compute bound or pooling
applications, then use the Active Program Snapshot to identify them all.
Inverse Audible Idle Beep Interval
This allows you select the time interval between the beeps.
Auto Compute Bound Reporting
This utility will automatically engage the Active Program Snapshot when there
are no idle cycles available and stops when idle cycles are available. This is
used to determine if a particular application is compute bound or pooling. If
you suspect multiple compute bound or pooling applications, this is the easiest
way to identify them all. Note that this has higher overhead.
Auto Compute Bound Reporting Interval
This allows you select the time interval between the Active Program Snapshots.
The Minimum is three seconds.
ΓòÉΓòÉΓòÉ 51. Auto Scanning ΓòÉΓòÉΓòÉ
This is useful if you need to see more detail about what is running or how much
of the system resources are being used.
Note that you not attempt to set all of the values to their maximum limit,
since this would most likely overload your system. Typically, you would set
only one of the the options to 1 and then use the Execute Selections to do it a
number of times. More advanced users may use a count of more than 1 time per
second to a closer scan. You may want to select a combination of options. For
example, set the Active Programs to 1 and the Memory Status to 1. This would
give an alternating report of active programs once per second and the amount of
memory once per second.
The options are executed in the following order: All Priorities, Active
Programs, Memory Status, and Swapfile Size.
A time/date stamp is included with each scan. Note that you may add notes into
the window before you save them to a disk file or print them.
The various options are explained as follows:
All Priorities.
This shows all of the threads and their priorities and states.
Active Programs.
This shows the threads and which process it belongs to as well as its
execution priority.
Memory Status:
This shows the amount of resident (pinned) memory and swapfile space.
Swapfile Size Type:
The size of the swapfile at the time reported.
Execute Selections:
The number of time that you want the scan to be done.
Starting Time:
This allows a delay so that you can start the program or a particular option
of the program that you want to measure. Enter the value in seconds.
Class:
Set the class at which you want the scan to be done. Usually this will be
Critical or Idle.
Level:
Set the Level at which you want the scan to be done.
ΓòÉΓòÉΓòÉ 52. Show All Priorities (terse) ΓòÉΓòÉΓòÉ
This option is to be used when you need to find out what are the actual
priorities being used.
This will query the system and format the data. Some system data is removed to
simplify the results.
The results can optionally be viewed on the main window, printed, or both.
Note that you may use the mouse to click and drag the entries if you wish to
highlight them.
Note that real-time software monitoring tools can significantly degrade total
system performance.
ΓòÉΓòÉΓòÉ 53. Show All Priorities (full) ΓòÉΓòÉΓòÉ
This option is to be used when you need to find out what are the actual
priorities being used and you may need the additional data supplied by this
option.
The results can optionally be viewed on the main window, printed, or both.
Note that you may use the mouse to click and drag the entries if you wish to
highlight them.
Note that real-time software monitoring tools can significantly degrade total
system performance.
ΓòÉΓòÉΓòÉ 54. Active Program Snapshot ΓòÉΓòÉΓòÉ
This option is to be used when you need to find out what runs most frequently
on your system. If you see the same program in the Ready state after several
invocations, then it is an indication of a compute bound application (never
wants to give up the CPU). If this is a DOS program, you should check the Idle
Sensitivity and insure that you are not running it at 100% (use 99% as the top
limit).
Although the PULSE program will draw the line at the top of the graph when
there is ANY compute bound application, this option will allow you to identify
them by name.
This utility queries the system and formats the data. Some system data is
removed to simplify the results.
The results can optionally be viewed on the main window, printed, or both.
Note that you may use the mouse to click and drag the entries if you wish to
highlight them.
Note that real-time software monitoring tools can significantly degrade total
system performance.
No attempt has been made to make this feature perform in real-time. Therefore,
on VERY slow machines (386SX 20MHz or less), the results presented may be from
the previous invocation. In that event, simply select again and visually
compare the results.
ΓòÉΓòÉΓòÉ 55. Static Idle Test ΓòÉΓòÉΓòÉ
This option is intended to provide you an alternative to the PULSE program to
determine if there are any CPU idle cycles. When PULSE is running, there are NO
spare CPU cycles. The CPU is running full speed. This is true of other CPU
monitoring tools which give percentages of execution. These are considered NOT
to be "well behaved" programs. However, this option uses extremely low overhead
and facilitates good overall system operation.
It is important NOT to run the PULSE program while selecting this test. Running
the PULSE program before selecting this option may invalidate the results.
It is important for OS/2 to have occasional spare Idle cycles, especially on
systems with 16MB or less. The less memory that you have, the more important
that it becomes. This is because OS/2 priority preemptive scheduler performs
specialized "house cleaning" functions when there are no threads to run. These
functions may have patents pending on them, so they can not be mentioned.
Suffice it to say that CPU idle cycles allow OS/2 to anticipate user requests
that it would not do otherwise. Therefore, refrain from using the Pulse
applette all of the time or any other monitoring tool that is compute bound.
Perhaps you have noticed that this is all part of a grand scheme. Once you
begin to see what is actually running on your system over a period of time, you
will begin to realize that pooling applications drain the life out of your
machine. Specifically, the DOS programs. When the system is very busy, you may
need to set the Idle Sensitivity to 99% (NEVER 100%!). However, when it becomes
less loaded, the DOS programs will consume the spare CPU cycles. You can not
reasonably continuously adjust the value, so by definition of pooling YOU WILL
LOOSE VALUABLE CPU CYCLES AS LONG AS YOU RUN DOS PROGRAMS REQUIRING KEYBOARD
INPUT. The theory of the ScheduPerformance, Inc. products is to set the
priority of the good OS/2 programs higher than the DOS pooling programs. At
least after the good programs have done real work, then the DOS programs can
pool all that they want. However, over time it may become apparent to you that
your best bet is a native OS/2 program.
ΓòÉΓòÉΓòÉ 56. Run PULSE ΓòÉΓòÉΓòÉ
This option is intended to provide you an EASY way to determine if a program is
compute bound over a period of time. It simply locates the program and executes
it from inside PRIORITY MASTER II.
ΓòÉΓòÉΓòÉ 57. Visual Idle Cycle Detection ΓòÉΓòÉΓòÉ
This option is intended to provide you an EASY way to determine if a program is
compute bound over a period of time.
When the option is selected (ON), The message " WARNING - CPU IS AT 100 PERCENT
FOR x SECONDS" is displayed in the window when there are no idle cycles for
the specified period.
This will indicate that there are compute bound (or pooling) applications
greater than the Idle Class Level one.
Try running some of your favorite applications to see if the message will
occur. If so, then you have discovered a compute bound or pooling application,
program. Keep in mind that compute bound applications in memory overcommit
scenarios reduce OS/2's ability to compact the swapfile and do other similar
functions.
If you suspect that there may be more than one pooling or compute bound
application, or you wish to verify your findings, then use the Active Program
Snapshot. Multiple selections of the Active Program Snapshot will show the same
program in the ready state. That is your verification.
ΓòÉΓòÉΓòÉ 58. Visual Idle Detection Interval ΓòÉΓòÉΓòÉ
This option allows you to select the time interval between the message "
WARNING - CPU IS AT 100 PERCENT FOR x SECONDS" being posted in the window.
ΓòÉΓòÉΓòÉ 59. Auto Compute Bound Reporting ΓòÉΓòÉΓòÉ
This option is intended to provide you an EASY way to determine if a program is
compute bound over a period of time.
When the option is selected (ON), it will automatically engage the Active
Program Snapshot when there are no idle cycles available and stops when idle
cycles are available. This is used to determine if a particular application is
compute bound or pooling. If you suspect multiple compute bound or pooling
applications, this is the easiest way to identify them all. Note that this has
higher overhead.
This will indicate that there are compute bound (or pooling) applications
greater than the Idle Class Level one and display the candidates path.
Try running some of your favorite applications to see if the Active Program
Snapshot is displayed in the applications window. If so, then you have
discovered a compute bound or pooling application, program. Keep in mind that
compute bound applications in memory overcommit scenarios reduce OS/2's ability
to compact the swapfile and do other similar internal functions.
ΓòÉΓòÉΓòÉ 60. Auto Compute Bound Reporting Interval ΓòÉΓòÉΓòÉ
This allows you select the time interval between the Active Program Snapshots.
The Minimum is three seconds. Five seconds or more is recommended for slower
machines.
ΓòÉΓòÉΓòÉ 61. Audible Idle Cycle Heartbeat ΓòÉΓòÉΓòÉ
This option is intended to provide you an EASY way to determine if a program is
compute bound over a period of time. The beeps will occur as long as there are
no compute bound (or pooling) applications greater than the Idle Class Level
one.
This option generates a thread at the lowest Class and Level an executes
(beeps) only if there is nothing higher in priority to execute.
When the option is selected (ON), it should always beep. Try running some of
your favorite applications to see if the beeps continue. If they stop
completely and resume when you close the application, then you have discovered
a compute bound or pooling program. Keep in mind that compute bound
applications in memory overcommit scenarios reduce OS/2's ability to compact
the swapfile and do other similar functions.
If you suspect that there may be more than one pooling or compute bound
application, or you wish to verify your findings, then use the Active Program
Snapshot. Multiple selections of the Active Program Snapshot will show the same
program in the ready state. That is your verification.
When you exit with this utility turned ON, then it will be automatically
restarted the next time that you start the PRIORITY MASTER II program.
Note that it executes at the SAME Class and Level as the lowest thread in the
PULSE application. Therefore, if PULSE is running, they will round-robin
together.
ΓòÉΓòÉΓòÉ 62. Audible Idle Beep Interval ΓòÉΓòÉΓòÉ
This option allows you to select the time interval between the beeps.
ΓòÉΓòÉΓòÉ 63. Inverse Audible Idle Cycle Heartbeat ΓòÉΓòÉΓòÉ
This option is intended to provide you an EASY way to determine if a program is
compute bound over a period of time. The beeps will occur as long as there are
no idle cycles available. This will indicate that there are compute bound (or
pooling) applications greater than the Idle Class Level one.
This option generates a thread at the lowest Class and Level an executes
(beeps) only if there idle NO cycles available.
When the option is selected (ON), it will only beep when there are NO idle
cycles available. Try running some of your favorite applications to see if the
beeps occur. If the beeps begin when you start the application and stop
completely when you close the application, then you have discovered a compute
bound or pooling program. Keep in mind that compute bound applications in
memory overcommit scenarios reduce OS/2's ability to compact the swapfile and
do other similar functions.
If you suspect that there may be more than one pooling or compute bound
application, or you wish to verify your findings, then use the Active Program
Snapshot. Multiple selections of the Active Program Snapshot will show the same
program in the ready state. That is your verification.
When you exit with this utility turned ON, then it will be automatically
restarted the next time that you start the PRIORITY MASTER II program.
Note that it executes at the SAME Class and Level as the lowest thread in the
PULSE application. Therefore, if PULSE is running, they will round-robin
together.
ΓòÉΓòÉΓòÉ 64. Inverse Audible Idle Beep Interval ΓòÉΓòÉΓòÉ
This option allows you to select the time interval between the beeps.
ΓòÉΓòÉΓòÉ 65. Memory Status ΓòÉΓòÉΓòÉ
This option reports the total memory configured (actual hardware), the amount
of resident memory (used by OS/2 and device drivers), and the amount of memory
on demand (includes Swapfile space).
As the system becomes loaded, the last entry will decrease correspondingly. Use
this option to monitor your overload. When the value becomes low (ie 4MB or
less), be sure to keep idle cycles available.
It is good practice to enter a short note about the name of the program that
you are going to run directly into the window and then select this option. This
will identify the resident memory and nonresident requirements of the program
for later analysis.
Note that some utilities that monitor system status (ie CPU idle cycles,
Swapfile size, etc) will use up all CPU cycles and thus make the problems
associated with overloads, worse. None of the utilities in this package fall
into that category. However, in general, do as little monitoring as possible
when overload conditions occur to help total system throughput.
ΓòÉΓòÉΓòÉ 66. Report Swap File Size ΓòÉΓòÉΓòÉ
This option reports the actual size of the swap file. As the system becomes
more loaded, the size of the swap file will increase. In general, the size of
the swapfile should not be more than 1/2 of the swappable memory size. For
example, a system with 16MB of memory and 4MB being resident should have no
more than 6MB ((16-4)/2).
It is good practice to enter a short note about the name of the program that
you are going to run directly into the window and then select this option. This
will identify the swapfile requirements of the program for later analysis.
ΓòÉΓòÉΓòÉ 67. Check CONFIG.SYS ΓòÉΓòÉΓòÉ
This option checks the settings in the CONFIG.SYS for MAXWAIT, TIMESLICE, and
DYNAMIC priority variation and gives recommendations.
MAXWAIT
MAXWAIT is the highest number of seconds that a ready to run thread in the
Regular or Server Class has to wait before receiving a boost in priority. This
boost is only temporary and is intended to give the thread a chance to execute.
Note that this value does not effect threads in the Idle or Time Critical
Classes.
Note that Time Critical applications are higher in priority than the boost that
can be applied to the Regular or Server Classes based on MAXWAIT.
TIMESLICE
TIMESLICE has two parameters. The first value is the maximum amount of time in
milliseconds that a boost will be applied as the result of an internal system
event (ie an I/O boost). The second value is the maximum number of milliseconds
that a thread can execute before relinquishing control of the CPU to another
ready to run thread at the SAME priority level.
Note that the minimum values for both parameters is 32 milliseconds. Also,
values are rounded up to the next increment of 32 milliseconds.
Note that the system default is not to have a TIMESLICE directive in the
CONFIG.SYS file. This is called dynamic timeslicing. This gives the best
overall performance when only OS/2 programs are executing. However,
TIMESLICE=32,32 gives the best overall performance when running DOS or Windows
programs.
DYNAMIC Priority Variation
DYNAMIC priority variation is the system default. This means that a boost such
as Foreground, I/O, Keyboard, and MAXWAIT is applied when appropriate. This is
intended for general use. However, PRIORITY=ABSOLUTE is provided for strict
Real-Time process control environments such as factory automation. In these
environments, there is generally no user intervention while the programs are
running.
ΓòÉΓòÉΓòÉ 68. Window-Controls Menu ΓòÉΓòÉΓòÉ
The Window-Controls menu provides control over the output to the main window.
Font
Presents a standard Font Dialog of only acceptable fonts for data output.
Background Color
Presents a choice of 16 Window background colors.
Text Color
Presents a choice of 16 Window text colors.
Print Window Text
Prints the text generated in the window.
Save Text in a File
Presents a standard open file dialog to save the text generated in the window.
Clear Window Text
Clears the text generated by the Show All Priorities or the Active Program
Snapshot Utilities.
Search Displayed Text
Searches the text in the Window and highlights any found text.
ΓòÉΓòÉΓòÉ 69. Clear Text on Window ΓòÉΓòÉΓòÉ
This option simply clears the text generated in the MLE window.
ΓòÉΓòÉΓòÉ 70. Print Window Text ΓòÉΓòÉΓòÉ
This option simply prints all of the text in the window
ΓòÉΓòÉΓòÉ 71. Save Text in a File ΓòÉΓòÉΓòÉ
This option saves all of the text in the window using the standard open file
dialog.
ΓòÉΓòÉΓòÉ 72. Font ΓòÉΓòÉΓòÉ
This option presents a standard Font Dialog and eliminates guesswork by
providing only fixed width fonts. Using any of these fonts will always allow
the window presented data to align properly.
ΓòÉΓòÉΓòÉ 73. Search Displayed Text ΓòÉΓòÉΓòÉ
This option provides a search capability for the text displayed in the Window.
You may limit the search by placing the cursor anywhere in the text and the
search will begin at that point.
Subsequent searches will present the last entered search string and the search
will start from the last found search string. If a new string is entered, then
the search will begin from the start of the text. The text searched is the
output from the Show All Priorities, Active Program snapshot, and Memory Status
Utilities.
The F2 button can be used for repeat searches.
ΓòÉΓòÉΓòÉ 74. Background Color ΓòÉΓòÉΓòÉ
This option presents some common background colors for the data output by the
Show All Priorities, Active Program snapshot, and Memory Status Utilities.
ΓòÉΓòÉΓòÉ 75. Text Color ΓòÉΓòÉΓòÉ
This option presents some common text colors for the data output by the Show
All Priorities, Active Program snapshot, and Memory Status Utilities.
ΓòÉΓòÉΓòÉ 76. Uninstall ΓòÉΓòÉΓòÉ
This option removes all files associated with the product and removes the
Desktop Icon. A query dialog will be presented to confirm the Uninstall
process.
ΓòÉΓòÉΓòÉ 77. About Uses ΓòÉΓòÉΓòÉ
General Overview
The standard OS/2 gives the user the choice of Foreground or Background
execution of their programs. The Foreground application gets the "virtual"
console - keyboard, mouse, video systems and a priority boost over Background
applications in the default configuration. The idea is that the Foreground
application gets all of the CPU time that it needs, and what is remaining gets
divided up among the Background applications. This is generally the case when
all of the programs running do not set their own priority internal to the
application.
What does it do?
This program allows you to set the priority of OS/2 Windows, Full Screens, or
any OS/2 VIO or PM applications. Additionally, it provides a virtually zero
overhead method to find compute bound applications.
Why set the priority of USER applications?
It allows you to establish an order to the programs so that YOU decide which
one gets done first, second, third and so on. If you only run one one program
at a time, then it does not matter what the priority is assigned.
Prioritization is important when there are two or more programs in the
background competing for CPU time.
Why is it important to find compute bound applications?
Compute bound applications lock out all lower priority applications. Based on
the MAXWAIT parameter in CONFIG.SYS, applications in the Regular and Server
Classes will get a boost to "some" CPU time. However, the single most important
element is that the settings associated with the DOS or Windows programs may be
too high. Using the Audible Idle Cycle Heartbeat or Inverse Audible Idle Cycle
Heartbeat, you may discover that the application is compute bound. You may
recover "lost" CPU cycles and divert them to actual work simply by reducing the
various settings. If the program requires full use of the CPU, then you may NOT
want it on the desktop if no real work is being performed.
What are some of the actual uses?
* For those who are running multiple programs in the background and need to
have one or more programs get favored execution status.
* For those who need to run a background program ahead of the foreground
application.
* For those who are running on a LAN and want their background programs to get
equal or favored execution status during heavy LAN transfers.
* For those who want a single desktop icon to execute several programs at
various priorities via a command file.
* When you want to see what is executing without a lot of overhead.
* When you want to see if a particular program is just too low in priority to
execute.
* When you want to look at the priority of all the programs on your system.
* When you think that the system is hung, or unresponsive, and want to see if
any program is hogging all of the CPU time.
* When you have a large number of threads running, you can use the search
feature to find a given thread.
* When you want to verify that all of the threads of a given program have
exited the system. This is the case with some applications that have Idle Class
threads. For example, start the PULSE program, next, run a DOS Window at 100%
Idle Sensitivity. Close the PULSE program. Use the Active Program Snapshot and
you find an Idle Class thread that can not exit the system. That is because the
DOS Window prevents the Idle Class thread of PULSE from exiting. Some OS/2
programs will allow multiple copies so they may "clog" up. Simply identifying
the compute bound applications and closing them will allow the Idle Class
threads to exit and free up more memory.
* When you want to find out how much memory is configured on your system, how
much is resident, and how much is available (including swapfile space) by using
Memory Status. You can also get the Memory Status, then start a large program
and get the Memory Status again. This will tell you how much resident and
swapfile space is used by the application.
* When you want to start a group of programs at various priorities or all the
same priority and close them all at once by using Auto-Close on Exit.
Setting priority and starting programs a certain time.
A number of calls have come in asking if the Priority Master program will start
a program at certain time. The answer is no, because OS/2 already has that
capability. It is in the ALARMS program of the PRODUCTIVITY folder. Start the
program. Select Alarms / Set alarm. If you want to set the priority of the
program, then in the Comment: field use the SP program followed by the parms
and executable. For example, SP.EXE r15 o Backup.exe. Next, check the Execute
comment as command at Alarm time. This example will start the Backup program at
the Regular Class, Level 15 at the time which you set. The problem is that you
need to be careful when assigning the Class and Level. You are encouraged to
use the Priority Master II program with the Information and Warning messages
turned ON for a while before you use the Alarms program and set the priority.
Also, check (with the Idle detection utilities) for compute bound programs and
follow the Class and Level recommendations.
What are some of the actual uses specific to OS/2 developers?
* Increase the priority of background compiles/links. This is especially true
if you start a make and then view a file. Scrolling through the file will
prevent the background compile/link. If you need convincing, then start a make
and switch to an OS/2 window. Next, do a type readme (or any large text file)
in an infinite loop. Go to lunch, you will be lucky if a large make completes
before lunch is over. Therefore, set the priority of background compiles to
Server Class, level 1. Doing this as a habit will give you faster compile/link
times.
Most of the time OS/2 developers build their programs when a single object file
is being changed. However, at some point, they must build a product containing
many objects. Unfortunately, makefiles process the objects sequentially until
all of the objects are built and then links the objects together to produce the
executable. This is just plain dumb! With very little effort, the makefile can
be split into two makefiles. One makefile contains about 60% of the objects and
does not perform the final link. The other makefile contains the remaining
objects and does the final link. By setting the priority of the first makefile
high and the one containing the final link low, fantastic performance benefits
result! Use Idle and Regular or Regular and Time Critical for the best results.
Well, how much of a difference does it make? Pentium 60MHz easily outperform
Pentium 90 MHz using this technique. Now that you have both the PRIORITY MASTER
II program and this new build technique - TRY IT! By the way, what do you think
about OS/2 developers that do NOT use the PRIORITY MASTER II program and this
new build technique?
Does it make that much of a difference to increase the priority of background
compile/links?
Yes. For example, to build the PRIORITY MASTER II program takes about 1 min. If
you run a DOS window at 100% Idle Sensitivity with the build of the PRIORITY
MASTER II program, both in the Background, it takes over 2 min. By making the
build of the PRIORITY MASTER II program at Regular Class and Level 1 it
completes in about 1 min even though the DOS Window is at 100% Idle
Sensitivity. That's a 50% performance improvement. This test was repeated with
two DOS Windows at 100% Idle Sensitivity and three concurrent builds of the
PRIORITY MASTER II program. Completion times on the three builds were 10 min.,
10 min. 30 sec, and 11 min. Using the PRIORITY MASTER II application to build
the PRIORITY MASTER II on Regular class levels 1, 2, and 3 changed the times to
1 min. 30 sec, 2 min, 2 min. 20 sec. even though the two DOS Windows were also
running. That's about a 500% performance improvement. That is why you need to
get the OS/2 programs out of the Regular Class level 0 when mixing DOS and/or
Windows and/or compute bound background programs with OS/2 background
compiles/links.
* Use the Active Program Snapshot and verify that the application is only
running when it should. Check for "runaway" threads that may be pooling
anything in the application. This may not be easily apparent. To expose
priority inversions within a multi-threaded application, set the MAXWAIT
parameter to 10 and check if the program freezes up for the 10 seconds.
Use the Idle Tests. Avoid any long compute bound code fragments. These will
adversely affect background activity.
Use the Show All Priorities option and verify that the applications priority is
what you expect it to be. Avoid using any set priority calls inside of DLL's.
ΓòÉΓòÉΓòÉ 78. About Virtual Function Keys ΓòÉΓòÉΓòÉ
There are 12 virtual function keys supported.
The function keys and their corresponding functions are as follows:
F1 - Online Help
F2 - Search Text in the Window
F3 - Exit
F4 - Active Program Snapshot
F5 - Memory Status
F6 - Report Swapfile Size
F7 - Show All Priorities
F8 - Clear Text in Window
F9 - Prioritized OS/2 Window/Full Screen
F10 - Generate Multiple Sessions
F11 - Find Program and Prioritize
F12 - Run Prioritized Programs From List
ΓòÉΓòÉΓòÉ 79. About Overview ΓòÉΓòÉΓòÉ
Priorities
The title bar in the Priority Master II application always has a Class and
Level displayed. That is the starting "priority" of any programs launched from
within the application. If the application needs to set its own priority
internally, then the Priority Master II will not work on those programs. This
is for compatibility. Most OS/2 applications do not set their own priority and
these will be set to the priority in the main window title bar.
Run the OS/2 program that you want to adjust its priority. Use the Show All
Priorities Option and verify that all of its threads are the default priority
(REG 0).
Select a Class.
Use the Regular Class as your first option. Making a program very high (time
critical) is not generally recommended.
Select a Level.
Note that the Auto-Increment and Auto-Decrement options will increase or
decrease the priority level in the main window title bar.
Use the Find Program and Prioritize, Run Prioritized Programs From List,
Prioritized OS/2 Window, or Prioritized OS/2 Full Screen Option.
The SP program (freeware) is located on the web site at
www.prioritymaster.com/demo.html for download. Unzip and put this into your
tools directory. This is a command line version to set the priority of
programs. You can build a command file containing several "set priority"
commands of your programs after you have determined the proper Class and Level.
Next, you could make a duplicate copy of an OS/2 window and set the path to
point to the command file.
Other Uses
Use the Audible Idle Cycle Heartbeat or the Inverse Audible Idle Cycle
Heartbeat on all of your commonly used programs. Insure that the test show some
Idle cycles. If not, then adjust the settings (DOS and Windows programs) or
close the application when you are not using them. This will give better
overall performance and is an easy exercise that only needs to be done once.
The importance of this activity can NOT be overstated. Background compute bound
programs will all but freeze background OS/2 programs. This is not just a
property of the OS/2 scheduling policies, it is a property of ALL priority
preemptive operating systems. The OS/2 schedulers gives at least 32
milliseconds (1/30 of a second) to execute before switching to another program
of the same priority. When the target is a compute bound code sequence, it will
receive the full time slice. OS/2 programs naturally give up their time slice
before the 32 milliseconds expire. For example, just to boot OS/2 there are
roughly 400 schedules per second. That is 1/30 of a second for a compute bound
program, 1/400 of a second for an OS/2 program. On the next scheduling, that is
1/30 + 1/30 for the compute bound, 1/400 + 1/400 for the OS/2 program. In just
two scheduling events, that is 1/15 of a second vs 1/200 of a second. This is
just an example. However, the effect is dramatic. OS/2 background programs will
experience poor performance when there are ANY compute bound programs running
at the same priority level due to their "well behaved" nature. Boosting the
priority of the well behaved OS/2 background programs a single level (to
Regular 1) will avert the problem. Removing compute bound background programs,
by reducing their settings or not running them, is a better solution.
Therefore, please take the time to perform the simple exercise of testing all
of your commonly used programs for spare Idle cycles.
ΓòÉΓòÉΓòÉ 80. About Performance ΓòÉΓòÉΓòÉ
You will be convinced, beyond any doubt, that in any priority preemptive
multitasking operating system priority is very important. Priority is
performance.
Although this data was taken a long time ago (1993), the relative speed
increase of todays machine does not invalidate the results. In effect, faster
machines just "spin" faster.
The following examples were performed on a custom i486 SX 33Mhz (running at
40Mhz) with 16Mb of memory, 256K Cache - using the FAT file system with
DISKCACHE=512,LW,32 and MAXWAIT=3 (default values).
Performance data using 16MB of memory.
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
ΓöéDESCRIPTION Γöé OS/2 Γöé PMI Γöé% DIFF Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéMake Γöé1 28 Γöé1 28 Γöé0 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéFDW / BOS2 Make Γöé2 34 Γöé1 26 Γöé1.79X Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéFDW / BOS2 Make + BDW Γöé7 26 Γöé1 32 Γöé4.85X Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéFDW / BOS2 Make + 2 BDW Γöé9 36 Γöé1 44 Γöé5.54X Γöé
ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
LEGEND:
FDW - Foreground DOS Window at 100% idle sensitivity (compute bound)
BDW - Background DOS Window at 100% idle sensitivity (compute bound)
BOS2 - Background OS/2 Window
Make - OS/2 program to build an application (some compute sections and I/O)
Note: Times are presented in minutes and seconds
The data shows that using a Priority Master II Prioritized OS/2 Window at the
Regular Class Level 1 (one level above default) in the background to do the
Make was 1.79 times faster.
Notice that as more background DOS Windows with 100% Idle sensitivity are added
to the background, the performance of background OS/2 programs decreases
rapidly. This is because a compute bound program will always use up its entire
time slice, whereas a well behaved OS/2 program will many times use very little
of its time slice and give up the CPU. This behavior is not specific to the
priority preemptive scheduler on OS/2, rather this is how all priority
preemptive systems work. The idea behind this product is to allow the OS/2
program to get into execution for the little time that it needs without waiting
for the compute bound applications to expend their time slices.
This is why it is so important to use the Idle detection test (Static Idle
Test, Audible Idle Cycle Heartbeat or Inverse Idle Cycle Heartbeat) to identify
compute bound programs. Decrease their settings or do not leave them on the
desktop when they are not being used. DOS programs that need keyboard input
should have their Background Execution to OFF (default is ON).
The Make program is used by application developers to build OS/2 applications.
These results would still be similar in any program which alternately did some
work, then would read/write to the disk.
Memory Considerations
The above tests were repeated in 8MB of memory.
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
ΓöéDESCRIPTION Γöé OS/2 Γöé PMI Γöé% DIFF Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéMake Γöé1 44 Γöé1 44 Γöé0 Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéFDW / BOS2 Make Γöé2 34 Γöé1 48 Γöé1.78X Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéFDW / BOS2 Make + BDW Γöé8 54 Γöé1 51 Γöé4.85X Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéFDW / BOS2 Make + 2 BDW Γöé11 05 Γöé1 54 Γöé5.54X Γöé
ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
LEGEND:
FDW - Foreground DOS Window at 100% idle sensitivity (compute bound)
BDW - Background DOS Window at 100% idle sensitivity (compute bound)
BOS2 - Background OS/2 Window
Make - OS/2 program to build an application (some compute sections and I/O)
Note: Times are presented in minutes and seconds
Note that the all times were longer, however, the relative performance gain was
about the same. It needs to be pointed out that the DOS window in each case was
not executing a program - only the cursor was flashing. If there were actual
programs in the DOS windows, then the effect would become greater using
prioritization.
Finally, the above two tables would show better results with the following
changes to CONFIG.SYS - DISKCACHE=2048,LW,128, MAXWAIT=1, TIMESLICE=32,32. The
time for a single Make goes from 1 min. 28 sec. to 1 min 5 sec (20% faster) and
all of the values would be correspondingly lower.
ΓòÉΓòÉΓòÉ 81. About QUICK REFERENCE ΓòÉΓòÉΓòÉ
Getting Started
Select a CLASS. Select OPTIONS. Choose Find Program and Prioritize, Run
Prioritized Programs From List, Prioritized OS/2 Window, or Prioritized OS/2
Full Screen. The priority of the target application will be reflected in the
main title bar.
Run the program and use the Show All Priorities Utility to insure that it does
not set its own priority. The priority should be Regular Class Level zero.
Put all of your programs on a separate priority level. This engages the
automatic CPU/Memory overload protection logic when spare CPU time is
available.
CLASS DESCRIPTIONS (lowest to highest)
IDLE CLASS - 32 priority levels (0 to 31). This is lowest execution class.
Programs in the Idle Class are only run if there are not Regular, Server, or
Time Critical threads ready to run. DO NOT run PM applications in the Idle
Class unless you are certain that there will not be any compute bound programs
running. Use the Static Idle Test, Audible Idle Cycle Heartbeat or the Inverse
Audible Test on all programs to insure spare CPU cycles.
REGULAR CLASS - 32 priority levels (0 to 31). Programs default to Regular Class
level zero. This should be your first choice.
SERVER CLASS - 32 priority levels (0 to 31). Level zero is used for OS/2 VIO
applications. Use level 1 or higher if you want the program's priority to be
higher than an OS/2 VIO application in the foreground. PM programs are higher
than Server Class but less than the Time Critical Class.
TIME CRITICAL - 32 priority levels (0 to 31). All levels are higher than
keyboard, mouse, and video systems. Insure that the program is not compute
bound using the Static Idle Test, Audible Idle Cycle Heartbeat or the Inverse
Audible Test before using the Time Critical Class. A compute bound application
in this class will lock out the keyboard and mouse inputs.
PERFORMANCE SETUP
Run all programs and test for spare CPU cycles using the Static Idle Test. Use
the Audible Idle Cycle Heartbeat or the Inverse Audible Idle Cycle Heartbeat
test for a maximum of 10 seconds for any program that fails the Static Idle
Test. If the program uses all available CPU cycles, DO NOT RUN it the Server or
Time Critical Classes.
Use the Memory Status on all of your programs. Do not leave programs that
consume large amounts of resident memory or swapfile space on your desktop if
you are not using them.
ΓòÉΓòÉΓòÉ 82. About SAMPLE SESSION *READ ME FIRST!* ΓòÉΓòÉΓòÉ
Getting Started
Instruction on how to prioritize your OS/2 programs can also be found at
www.prioritymaster.com.
Select a frequently used OS/2 program that you normally start using a desktop
icon. For the purposes of this example the OS/2 EPM Editor will be used.
Proceed as follows:
1. Open the OS/2 System Folder.
2. Open the Productivity Folder from within the OS/2 System Folder.
3. Place the mouse pointer over the Enhanced Editor and depress the right
mouse button. This will show the WorkPlace options.
4. Select the Settings/Properties option. This will show the system path and
filename for the program on the first page. The target path for an OS/2
system installed on the C drive is C:\OS2\APPS\EPM.EXE as taken from the
first page of Settings/Properties for the Enhanced Editor. This path name
will be used later. You write it down or simply leave it on the desktop for
retrieval.
5. Select the Options from the main window of the PRIORITY MASTER II program.
6. Select the Find Program and Prioritize and choose either Foreground or the
Background option.
7. If none of the Level options are set (eg Auto Increment and Auto Decrement)
a Set Class and Level dialog will be presented. In the Current Class is:
option select CRITICAL, set the Level to zero and select OK.
8. The Find and Run OS/2 Programs dialog is then presented. Simply type the
filename - C:\OS2\APPS\EPM.EXE into the Filename: box, depress the enter
key, and proceed to step 12. If you do not know how to use the Open File
Dialog, then steps 9 through 11 are provided for this example.
9. When installed, the Drive selection in the dialog is preset to OS/2's
install drive letter and has a [OS2] following the drive letter. If this is
not the case then select the drive letter that has the [OS2] in the
selection. In the Directory: window scroll down to and select the OS2
directory by double clicking on it. Ignore the executables that will appear
in the File: window.
10. Again, double click on the APPS selection.
11. In the File: window scroll down to the EPM.EXE selection and click on the
left mouse button and select OK (or just double click with right mouse
button).
12. Select YES to the message box asking if you want to add this program to the
Run Prioritized Programs From List Option. The Enhanced Editor now runs at
the new priority - CRITICAL 0.
Select the Run Prioritized Programs From List option from the Options in the
main window of the PRIORITY MASTER II application and you will see
C:\OS2\APPS\EPM.EXE * CRITICAL 0. This will give you an extremely high priority
text editor which you can use to quickly edit files even under extremely
overloaded conditions. However, normally do not make applications in the TIME
CRITICAL Class before using one of six programs in the Utilities option to
verify that the program is not compute bound. It is known that the well written
OS/2 Enhanced Editor is not compute bound and this is generally true of most
OS/2 applications.
The entry will be saved when the exiting the PRIORITY MASTER II by selecting
YES to the message box stating that some user options have changed and would
you like to save them.
Note:The Utilities option from the main window, Show All Priorities, should be
used to verify the program's priority. If the program is multi-threaded and
there are threads that do not have the priority that you set, then the program
sets its own priority - DO NOT USE PRIORITY MASTER II on these programs.
You may enter the program several times and have a selection of preset
priorities which you can run them. Also, you may override the priorities by
selecting the option to do so from within the Run Prioritized Programs From
List option.
This is ideal for many programs such as a fax, Web Browser, or programs run via
networks.