"Adaptive Quality of Service Architecture"
About AQuoSA: History and Credits
The current AQuoSA real-time scheduler for Linux is based on the CBS scheduler implementation originally written by Luca Abeni. Then, Luca Marzario added support for various scheduling policies, comprising his own IRIS algorithm for reclaiming unused capacity.
Later, Tommaso Cucinotta re-engineered the code base adding various layers of kernel-level APIs, and improved usability and programmability by adding the user-space library communicating with the kernel by means of a special device and the kernel-level supervisor, obtaining the qosres component. Also, he developed various feedback-scheduling algorithms and made them available in the qosmgr component, both in user-space and in kernel-space form. Finally, he added a partial implementation of the SHRUB reclaiming algorithm (initial concept by Giuseppe Lipari and Sanjoy Baruah) in the kernel scheduler.
Other valuable contributions have been the testing and debugging effort by Antonio Mancina, the implementation by Dario Faggioli of the BandWidth Inheritance protocol, the help offered by Michael Trimarchi for porting it to the ARM platform, and the help offered by Dario Faggioli, Fabio Checconi and Luca Abeni for porting it to recent kernel versions.
Recently, a completely new scheduler has been developed by Fabio Checconi for AQuoSA, in the context of the IRMOS European Project. This scheduler is based on a direct modification of the POSIX real-time scheduling class within the Linux kernel, and has been designed from the scratch for multi-processor and multi-core systems. Thanks to the work made by Giacomo Bagnoli during his Master Degree Thesis, the new kernel keeps compatibility at the user-space API level with the traditional AQuoSA scheduler.
The AQuoSA project is currently maintained by Tommaso Cucinotta, and it is used in the applied research made at the Real-Time Systems Laboratory of Scuola Superiore Sant'Anna in the area of kernel-level support for soft real-time and multimedia applications on Linux. In fact, various research papers have been published at various workshops, conferences and journals both describing AQuoSA internals and leveraging it as the OS-level support for the provisioning of performance guarantees to time-sensitive applications.