Customization of a Real-Time Operating System Scheduler with Aspect-Oriented Programming

Tasks of an application program of an embedded system are managed by the scheduler of a real-time operating system (RTOS). Most RTOSs adopt just fixed priority scheduling, which is not optimal in all cases. Some applications require earliest deadline first (EDF) scheduling, which is an optimal scheduling algorithm. In order to develop an efficient real-time embedded system, the scheduling algorithm of the RTOS should be selectable. The paper presents a method to customize the scheduler using aspectoriented programming. We define aspects to replace the fixed priority scheduling mechanism of an OSEK OS with an EDF scheduling mechanism. By using the aspects, we can customize the scheduler without modifying the original source code. We have applied the aspects to an OSEK OS and get a customized operating system with EDF scheduling. The evaluation results show that the overhead of aspect-oriented programming is small enough.




References:
[1] OSEK/VDX, Operating System, Version 2.2.3, 2005.
[2] Liu, C. L. and Layland, J. W., Scheduling Algorithms for Multiprogramming
in a Hard-Real-Time Environment, Journal of the ACM, Vol.20, No.1, pp.46-61, 1973.
[3] Dertouzos, M. L., Control Robotics: The Procedural Control of Physical
Processes, Proceedings of IFIP Congress 1974, pp.807-813, 1974.
[4] Bimbard, F. and George, L., EDF Feasibility Conditions with Kernel Overheads on an Event Driven OSEK System, Proceedings of third
International Conference on Systems, pp.277-284
[5] Diederichs, C., Margull, U., Slomka, F. and Wirrer, G., An applicationbased
EDF scheduler for OSEK/VDX, Proceedings of Design, Automation
and Test in Europe 2008, pp.1045-1050, 2008.
[6] Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C. Loingtier,
J. M. and Irwin, J., Aspect-Oriented Programming, Proceedings
of the 11th European Conference on Object-Oriented Programming, pp.
220-242, 1997.
[7] Beuche, D., Fr¨ohlich, A. A., Reinhard, M., Papajewski, H., Sch¨on,
F., Schr¨oder-Preikschat, W., Spinczyk, O. and Spinczyk, U., On Architecture
Transparency in Operating Systems, Proceedings of the 9th Workshop on ACM SIGOPS European Workshop: Beyond the PC: New Challenges for the Operating system, pp. 147-152, 20
8] Coady, Y., Kiczales, G., Feeley, M. and Smolyn G., Using AspectC to
Improve the Modularity of Path-Specific Customization in Operating
System Code, Proceedings of the 8th European Software Engineering
Conference, pp.88-98, 2001.
[9] Afonso, F., Silva, C., Montenegro, S. and Tavares, A., Applying Aspects
to a Real-Time Embedded Operating System, Proceedings of the 6th
Workshop on Aspects, Components, and Patterns for Infrastructure
Software, Article No.1, 2007.
[10] Park, J. and Hong S., Building a Customizable Embedded Operating
System with Fine-Grained Joinpoints Using the AOX Programming
Environment. Proceedings of the 2009 ACM symposium on Applied
Computing, pp.1952-1956, 2009.
[11] Lohmann, D., Hofer, W., Schr¨oder-Preikschat, W. and Spinczyk, O.,
Aspect-Aware Operating System Development, Proceedings of the 10th
International Conference on Aspect-Oriented Software Development
2011, pp.69-80, 2011.
[12] Hatun, K., Bockisch, C., S┬¿ozer, H. and Aks┬©it, M., A Feature Model and
Development Approach for Schedulers, Proceedings of the 1st Workshop
on Modularity in Systems Software, pp.1-5, 2011
[13] TOPPERS Project, http://www.toppers.jp/en/
[14] Gong, M., Zhang, C. and Jacobsen, H.-A., Systems Development with
AspeCt-oriented C (ACC), Connections 2007 (ECE Graduate Symposium,
University of Toronto), Talk 5.6, 2007.
[15] AspeCt-oriented C, https://sites.google.com/a/gapp.msrg.utoronto.ca/aspectc/
[16] OSEK VDX, OSEK/VDX System Generation OIL: OSEK Implementation
Language Version 2.5, 2004.
[17] Kiczales, G., Hilsdale, E., Hugonin, J, Kersten, M., Palm, J. and Griswold, W. G., An Overview of AspectJ, Proceedings of the 15th
European Conference on Object-Oriented Programming, pp.327-353,
2001.
[18] Spinczyk, O., Gal, A., and Schr¨oder-Preikschat, W., Aspect C++: An
Aspect-Oriented Extension to the C++ Programming Language, Proceedings
of the 40th International Conference on Technology of Object-Oriented Languages and Systems, pp.53-59, 2002.