{"title":"实时操作系统的可预测中断管理策略","authors":"Javad Ebrahimian Amiri, M. Kargahi","doi":"10.1109/RTEST.2015.7369843","DOIUrl":null,"url":null,"abstract":"Real-time operating systems play important roles in developing many of today's embedded systems. Majority of these embedded systems have intense interactions with the environment through I/O devices, namely sensors and actuators. Interrupts are often used by the operating systems to handle these interactions through executing the corresponding interrupt service routines (ISRs). ISRs are usually executed non-preemptively at some priorities higher than system tasks. Depending on the interrupt frequency, this prioritization can result in problems like unresponsiveness and unpredictability in the system, even for the high priority tasks. This incurs a type of priority inversion which we call it ISR-task priority inversion (ITPI). This paper uses threaded interrupts and employs the priority inheritance protocol (PIP) to enforce each interrupt service thread (IST) to be executed at its owner's priority, causing less interference with higher priority tasks. Two PIP-based approaches are proposed and implemented: 1) Static priority linked list, which uses PIP only when a task starts; experimental results show that this approach can tolerate some simple forms of ITPI, and 2) Dynamic priority bitmap, which employs PIP whenever a task needs an IST; experiments show that more complex forms of ITPI can be tolerated with this approach. The almost extensive experimental results show that using the dynamic priority approach enhances the real-time system predictability compared to the common approaches.","PeriodicalId":376270,"journal":{"name":"2015 CSI Symposium on Real-Time and Embedded Systems and Technologies (RTEST)","volume":"19 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2015-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"4","resultStr":"{\"title\":\"A predictable interrupt management policy for real-time operating systems\",\"authors\":\"Javad Ebrahimian Amiri, M. Kargahi\",\"doi\":\"10.1109/RTEST.2015.7369843\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Real-time operating systems play important roles in developing many of today's embedded systems. Majority of these embedded systems have intense interactions with the environment through I/O devices, namely sensors and actuators. Interrupts are often used by the operating systems to handle these interactions through executing the corresponding interrupt service routines (ISRs). ISRs are usually executed non-preemptively at some priorities higher than system tasks. Depending on the interrupt frequency, this prioritization can result in problems like unresponsiveness and unpredictability in the system, even for the high priority tasks. This incurs a type of priority inversion which we call it ISR-task priority inversion (ITPI). This paper uses threaded interrupts and employs the priority inheritance protocol (PIP) to enforce each interrupt service thread (IST) to be executed at its owner's priority, causing less interference with higher priority tasks. Two PIP-based approaches are proposed and implemented: 1) Static priority linked list, which uses PIP only when a task starts; experimental results show that this approach can tolerate some simple forms of ITPI, and 2) Dynamic priority bitmap, which employs PIP whenever a task needs an IST; experiments show that more complex forms of ITPI can be tolerated with this approach. The almost extensive experimental results show that using the dynamic priority approach enhances the real-time system predictability compared to the common approaches.\",\"PeriodicalId\":376270,\"journal\":{\"name\":\"2015 CSI Symposium on Real-Time and Embedded Systems and Technologies (RTEST)\",\"volume\":\"19 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2015-10-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"4\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2015 CSI Symposium on Real-Time and Embedded Systems and Technologies (RTEST)\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/RTEST.2015.7369843\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2015 CSI Symposium on Real-Time and Embedded Systems and Technologies (RTEST)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/RTEST.2015.7369843","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
A predictable interrupt management policy for real-time operating systems
Real-time operating systems play important roles in developing many of today's embedded systems. Majority of these embedded systems have intense interactions with the environment through I/O devices, namely sensors and actuators. Interrupts are often used by the operating systems to handle these interactions through executing the corresponding interrupt service routines (ISRs). ISRs are usually executed non-preemptively at some priorities higher than system tasks. Depending on the interrupt frequency, this prioritization can result in problems like unresponsiveness and unpredictability in the system, even for the high priority tasks. This incurs a type of priority inversion which we call it ISR-task priority inversion (ITPI). This paper uses threaded interrupts and employs the priority inheritance protocol (PIP) to enforce each interrupt service thread (IST) to be executed at its owner's priority, causing less interference with higher priority tasks. Two PIP-based approaches are proposed and implemented: 1) Static priority linked list, which uses PIP only when a task starts; experimental results show that this approach can tolerate some simple forms of ITPI, and 2) Dynamic priority bitmap, which employs PIP whenever a task needs an IST; experiments show that more complex forms of ITPI can be tolerated with this approach. The almost extensive experimental results show that using the dynamic priority approach enhances the real-time system predictability compared to the common approaches.