Communicator e3000 MPE/iX Release 6.5 (Non-Platform Software Release C.65.00 (30216-90291)

60 Chapter3
Growth Solution
Dispatcher Multiple Runqueues
Dispatcher Multiple Runqueues
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.