In a data processing system including at least one client mechanism for generating operation requests to servers, each server including a server resource and each operation request specifying an operation to be performed with respect to the server resource, a server mechanism for executing the operation requests, comprising:
- a dispatcher,
- a plurality of worker tasks, and
- a plurality of dispatcher shared memory areas,
- each dispatcher shared memory area corresponding to a worker task, the dispatcher being responsive to an operation request from a client mechanism for
- selecting a worker task to execute the operation request,
- receiving the operation request directly into the dispatcher shared memory space of the worker task, and
- indicating to the worker task that an operation request has been assigned to the worker task,
- the worker task being responsive to the indication of an operation request for receiving the operation request from the dispatcher shared memory space of the worker task,
- executing the operation request,
- placing the results of the operation request into the dispatcher shared memory space of the worker task, and
- indicating to the dispatcher that the operation request is completed, the dispatcher being responsive to the indication that the operation request is completed for providing the results of the operation request directly from the dispatcher shared memory space of the worker task to the client mechanism, wherein
- each operation request provided from a client mechanism is provided as a sequence or one or more remote procedure call requests, each remote procedure call request including an associated buffer containing the parameters of the remote procedure call request, and
- the server mechanism includes
- a plurality of worker control blocks,
- each worker control block corresponding to a worker task and including a semaphore which is set by the dispatcher to indicate that an operation request has been assigned to the worker task, and wherein
- the dispatcher is responsive to a remote procedure call request for
- receiving the buffer directly into the dispatcher shared memory space of the worker task selected to execute the remote procedure call request, and
- setting the semaphore in the worker control block corresponding to the selected worker task, and
- providing a request acceptance response to the client mechanism, the selected worker task is responsive to the semaphore in the corresponding worker control block for
- reading the associated parameters from the buffer,
- performing the assigned remote procedure call request, and
- placing the results of the remote procedure call request into the dispatcher shared memory space of the worker task, and
- generating a remote procedure call to the dispatcher to indicate that the assigned remote procedure all request has been completed.