Request Scheduling for Multiactive Objects

Abstract

National audienceThe Active Object programming model aims to facilitate the writing of distributed applica- tions. It provides asynchronous remote method calls and mechanisms to prevent data races. However, this model does not take advantage of multicore architectures as it is intrinsically mono-threaded. To overcome this problem, a recent extension of the active object model has been designed, which is called the Multiactive Object model. Multiactive objects enable local parallelism at a high level without giving up simplicity and safety provided by active objects: the programmer can declare which requests can be run in parallel through a customized spec- ification language. However, in this new model, the programmer has not yet control on the scheduling policy applied to the requests executed by a multiactive object. In this work, we study application-level scheduling concepts that can be applied to multiactive objects. The goal is to allow the programmer to have a fine control on the scheduling policy through simple specifications. We first develop a priority mechanism that can be used to reorder awaiting requests in the queue of multiactive objects. Second, we provide a simple thread management mechanism to better allocate available threads to awaiting requests. Finally, we experiment the new features in a practical context, showing that the proposed mechanisms increase the efficiency of multiactive objects while keeping a low overhead. On the whole, we provide gen- eral specifications for application-level scheduling that are together fine-grained, user-friendly, and efficient

    Similar works