by Senthil Kumar R
Commercial Systems Division
Introduction |
 |
The MPE/iX Operating System is continuously undergoing various
enhancements to keep pace with the increasing performance needs
of HP 3000 customers. The support for Dispatcher Multiple Runqueues
is one such enhancement in MPE/iX Release 6.5 which is aimed at
providing improved system performance to customers. Dispatcher is
one of the core modules of the MPE/iX OS; it is responsible for
allocating CPU time to processes. This article gives a technical
overview of the changes to the Dispatcher module to provide improved
performance on 10-way and 12-way systems in MPE/iX 6.5.
Technical Overview |
 |
Dispatcher maintains the list of ready-to-run processes in
the system in a queue called "runqueue". Earlier
versions of MPE/iX used a single runqueue to maintain these processes.
This was true even in multiprocessor (MP) systems which have more
than one processor. So in an MP system all processors have to contend
for this single runqueue while picking up processes for execution.
When one processor is accessing the runqueue, other processors wanting
to access the queue have to wait until the runqueue is free. This serialization
causes severe contention in the system and leads to loss of performance, especially
in higher-end multiprocessor systems.
To overcome the performance loss due to runqueue contention,
MPE/iX 6.5 supports multiple runqueues in Dispatcher. There can
be as many runqueues as the number of processors on the system.
The ready processes can be enqueued to any of these runqueues. With
multiple runqueues available, each processor can pick ready processes
for execution independent of other processors. This implies that
all processors can now select in parallel ready processes for execution
instead of doing it serially as in the case of a single runqueue.
The processors do not waste time waiting on the runqueue and can
do more useful work. This results in improved system throughput
and performance.
Benefits to Customers |
 |
The support for multiple runqueues in Dispatcher brings many
advantages for MPE/iX customers. With this feature, the scalability
of MPE/iX has been considerably increased. This means that the increase
in system performance with the addition of more processors is much
more than what it was earlier. This is a key aspect to enable customers
to upgrade their HP 3000 systems with a larger number of processors
to fulfill their performance needs. Also the system response time
for users is expected to be better since process scheduling will
be faster now.
In addition to supporting multiple runqueues, there have been
other changes in the Dispatcher module to make it more efficient
for execution in multiprocessor environment. This has been done
by carefully rearchitecting various synchronization mechanisms in
the implementation to cut down overheads and focus on delivering
faster response time.
Conclusion |
 |
In summary, the support of multiple runqueues in MPE/iX 6.5
boosts the performance of the HP 3000 to a great extent and makes
it more scalable with respect to number of processors used. It has
been enabled for 997 systems with 10 or 12 processors on Release 6.5
The users can also experience better response time from the system.