{"title":"FreeRTOS中的段级fp调度","authors":"R. Edmaier, Niklas Ueter, Jian-Jia Chen","doi":"10.1109/RTCSA55878.2022.00026","DOIUrl":null,"url":null,"abstract":"In the domain of embedded systems, modern SoCs (System-on-Chips) increasingly employ dedicated hardware to improve the performance of specialized tasks. The herein generated performance benefits come at the cost of increased coordination complexity of multiple tasks accessing these various hardware units in varying alternating sequences. For example, a task may first execute on a processor and then proceed execution on a GPU. This problem is even more complex in the case of real-time constraints, i.e., the execution within formally guaranteed time bounds. Real-time constraints may lead to severe resource under-utilization if the scheduling algorithms are not properly designed. A solution to this problem is self-suspension and segment-level fixed-priority scheduling. In this approach, tasks are divided into successive alternating segments of computation and self-suspension. The task may self-suspend if it tries to access a hardware resource that is already held by another task. In this paper, we propose and discuss different implementations of the segmented self-suspension task model in the FreeRTOS real-time operating system. Moreover, we evaluate the overhead of the different implementations on the OM40007 IoT-module from NXP.","PeriodicalId":38446,"journal":{"name":"International Journal of Embedded and Real-Time Communication Systems (IJERTCS)","volume":"169 1","pages":"186-194"},"PeriodicalIF":0.5000,"publicationDate":"2022-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Segment-Level FP-Scheduling in FreeRTOS\",\"authors\":\"R. Edmaier, Niklas Ueter, Jian-Jia Chen\",\"doi\":\"10.1109/RTCSA55878.2022.00026\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"In the domain of embedded systems, modern SoCs (System-on-Chips) increasingly employ dedicated hardware to improve the performance of specialized tasks. The herein generated performance benefits come at the cost of increased coordination complexity of multiple tasks accessing these various hardware units in varying alternating sequences. For example, a task may first execute on a processor and then proceed execution on a GPU. This problem is even more complex in the case of real-time constraints, i.e., the execution within formally guaranteed time bounds. Real-time constraints may lead to severe resource under-utilization if the scheduling algorithms are not properly designed. A solution to this problem is self-suspension and segment-level fixed-priority scheduling. In this approach, tasks are divided into successive alternating segments of computation and self-suspension. The task may self-suspend if it tries to access a hardware resource that is already held by another task. In this paper, we propose and discuss different implementations of the segmented self-suspension task model in the FreeRTOS real-time operating system. Moreover, we evaluate the overhead of the different implementations on the OM40007 IoT-module from NXP.\",\"PeriodicalId\":38446,\"journal\":{\"name\":\"International Journal of Embedded and Real-Time Communication Systems (IJERTCS)\",\"volume\":\"169 1\",\"pages\":\"186-194\"},\"PeriodicalIF\":0.5000,\"publicationDate\":\"2022-08-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"International Journal of Embedded and Real-Time Communication Systems (IJERTCS)\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/RTCSA55878.2022.00026\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"Q4\",\"JCRName\":\"COMPUTER SCIENCE, SOFTWARE ENGINEERING\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"International Journal of Embedded and Real-Time Communication Systems (IJERTCS)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/RTCSA55878.2022.00026","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q4","JCRName":"COMPUTER SCIENCE, SOFTWARE ENGINEERING","Score":null,"Total":0}
In the domain of embedded systems, modern SoCs (System-on-Chips) increasingly employ dedicated hardware to improve the performance of specialized tasks. The herein generated performance benefits come at the cost of increased coordination complexity of multiple tasks accessing these various hardware units in varying alternating sequences. For example, a task may first execute on a processor and then proceed execution on a GPU. This problem is even more complex in the case of real-time constraints, i.e., the execution within formally guaranteed time bounds. Real-time constraints may lead to severe resource under-utilization if the scheduling algorithms are not properly designed. A solution to this problem is self-suspension and segment-level fixed-priority scheduling. In this approach, tasks are divided into successive alternating segments of computation and self-suspension. The task may self-suspend if it tries to access a hardware resource that is already held by another task. In this paper, we propose and discuss different implementations of the segmented self-suspension task model in the FreeRTOS real-time operating system. Moreover, we evaluate the overhead of the different implementations on the OM40007 IoT-module from NXP.