Analysis of FreeRTOS Overheads on Periodic Tasks
ResumoReal-Time Operating Systems (RTOS) have their own modules that need to be executed to manage system resources and such modules add overhead to task response times. FreeRTOS is used for experimental purposes since its is a widely used open-source RTOS. This work presents the investigation of two important sources of overhead: Function Tick, a FreeRTOS time marker, and the Context Switch between tasks. In this paper we also describe a model for reducing Tick analysis pessimism due to its temporal variation. Experiments measuring the execution time of Tick and Context Switch on ARM-Cortex M4 microprocessor were made to present the Best-Case Execution Time and the Worst-Case Execution time within a periodic task scenario. Measurements are used to validate the analytic models.
Audsley, N., Burns, A., Richardson, M., Tindell, K., and Wellings, A. (1993). Applying new scheduling theory to static priority pre-emptive scheduling. Software Engineering Journal, 8(1):284–292.
Barry, R. (2019). Mastering the FreeRTOS real time kernel. https://freertos.org.
Cofer, D. and Rangarajan, M. (2002). Formal verification of overhead accounting in an avionics rtos. USA. IEEE Computer Society.
Guan, F., Peng, L., Perneel, L., and Timmerman, M. (2016). Open source freertos as a case study in real-time operating system evolution. Journal of Systems and Software, 118:19–35.
Hambarde, P., Varma, R., and Jha, S. (2014). The survey of real time operating system: Rtos. In 2014 International Conference on Electronic Systems, Signal Processing and Computing Technologies, pages 34–39.
Kumar Reddy, B. M., Satyanarayana, G. S. R., and Seetaramanjaneyulu, B. (2014). Scheduling latency comparison of two open-source rtos on cortex-m3. In 2014 International Conference on Embedded Systems (ICES), pages 59–62.
Liu, C. and Layland, J. W. (1973). Scheduling Algorithms for Multiprogramming in a Hard- Real-Time Environment. Journal of the Association for Computing Machinery, 20(1):46–61.
Oliveira, G. and Lima, G. (2020). Evaluation of scheduling algorithms for embedded freertos-based systems. In 2020 X Brazilian Symposium on Computing Systems Engineering (SBESC), pages 1–8.
Parikh, H., Shah, R., Shah, U., and Deshmukh, S. (2013). Performance parameters of rtos; comparison of open source rtos and benchmarking techniques. In 2013 International Conference on Advances in Technology and Engineering (ICATE), pages 1–6.
Pinto, M., Wehrmeister, M. A., and Oliveira, A. (2020). Real-time performance evaluation for robotics. Journal of Intelligent and Robotic Systems, 101.
Radojkovic, P., Cakarevic, V., Verdú, J., Pajuelo, A., Gioiosa, R., Cazorla, F. J., Nemirovsky, M., and Valero, M. (2008). Measuring operating system overhead on cmt processors. In 2008 20th International Symposium on Computer Architecture and High Performance Computing, pages 133–140.
Sirio, G. D. (2014). ChibiOS/RT The Ultimate Guide.
STMicrolectronics (2019). STMicrolectronics NUCLEO-F446RE.
Ungurean, I. (2020). Timing comparison of the real-time operating systems for small microcontrollers. Symmetry, 12(4).
Ungurean, I. and Gaitan, N. C. (2018). Performance analysis of tasks synchronization for real time operating systems. In 2018 International Conference on Development and Application Systems (DAS), pages 63–66.