Location of Repository

Techniques for Enhancing the Temporal Predictability of Real-Time Embedded Systems Employing a Time-Triggered Software Architecture.

By Adi Abdelhalim Maaita


This thesis is concerned with the design and implementation of single-processor embedded real-time systems with highly predictable behaviour and strict constraints on resource usage. The main aim of this research is to identify the sources of unpredictable behaviour in such systems – exhibited as timing jitter - when a time-triggered pre-emptive task scheduling approach is adopted, and then provide software based techniques to enhance their temporal predictability. The thesis provides a review of related previous work on predictable real-time task scheduling, as well as resource-access control methods for maintaining predictable real-time system behaviour through the prevention of priority inversion and other related problems. The design and implementation of the time-triggered hybrid (TTH), time-triggered rate-monotonic (TTRM), and time-triggered deadline-monotonic (TTDM) task schedulers is discussed in detail as they provide the most predictable behaviour within the category of pre-emptive task schedulers. For that reason, they will be used as the software platforms in the experimental part of this research. Two novel software techniques for enhancing the temporal predictability in systems utilising time-triggered schedulers are introduced. The first software technique presented is a resource-access control protocol named Timed Resource-Access Protocol (TRAP). This protocol is designed to avoid the problems of priority inversion, chained blocking and deadlocks while coercing system tasks to exhibit timing predictability that is proportional to their significance in the system. This appears in the decreasing levels of task finishing jitter as the significance of tasks in the system increases. The second technique is named Planned Pre-emption (PP). This technique is aimed at eliminating the scheduling unpredictability due to variable timer interrupt service time in time-triggered scheduling systems. The impact of this technique appears in the considerable reduction in scheduler task release jitter.\ud Finally, the thesis is concluded by a discussion and a summary of the work presented

Publisher: University of Leicester
Year: 2008
OAI identifier: oai:lra.le.ac.uk:2381/4142

Suggested articles



  1. (2004b) PCI-6035E data sheet and specs; WWW webpage:
  2. (2005a) Hard Real-Time Computing Systems: Predictable Scheduling Algorithms and Applications,
  3. (2001). A Comparison of TTP/C and FlexRay. Real-Time Systems Group,
  4. (1997). A Conditional Abortable Priority Ceiling Protocol for Real-time Systems with Mixed Tasks.
  5. (1998). A Firm Real-time System Implementation Using Commercial Off-the-shelf Bibliography
  6. (1993). A Methodology for Implementing Highly Concurrent Data Objects.
  7. (1974). A methodology for real-time system development.
  8. (2005). A Multi-standard Video Accelerator Based on a Vector Architecture.
  9. (1980). A Note on Pre-emptive Scheduling of Periodic Real-time Tasks.
  10. (2004). A Priority Inheritance-based Inversion Control Methodology for General Resource Access Problems
  11. (1991). A Scheduling Algorithm for Parallelizable Dependent Tasks. The Fifth International Parallel Processing Symposium.
  12. (1999). A Solution to the Time Jitter Removal in Deadline Based Scheduling of Real-time Applications.
  13. (1989). A Source-Level Tool for Predicting Deterministic Execution Times of Programs. Seatle,
  14. (1990). A Stack-based Resource Allocation Policy for Real-time Processes.
  15. (1985). A Time Driven Scheduling Model for Real- time Operating Systems.
  16. (1993). Accounting for Interrupt Handling Costs in Dynamic Priority Task Systems.
  17. (2004). ACCS Testbed 1.0: Simulation of Vehicle Longitudinal Dynamics".
  18. (1996). Adding Instruction Cache Effect to Schedulability Analysis of Preemptive Real-time Systems.
  19. (1993). Advances in Real-Time Systems.
  20. (2004). Against Priority Inheritance. Finite State Machine Labs (FSMLabs).
  21. (2002). Against Priority Inheritance. FSMLabs Technical Report. Finite State Machine Labs (FSMLabs).
  22. (1994). An Abort Ceiling Protocol for Controling Priority Inversion.
  23. (1999). An Adaptive, Distributed Airborne Tracking Sysem: Process the Right Tracks at the Right Time
  24. (1999). An Algorithm for Fault-Tolerant Clock State&Rate Synchronization.
  25. (1994). An Extendible Approach for Analyzing Fixed Priority Hard Real-time Tasks.
  26. (1981). An Introduction to Real-Time Software Design,
  27. (1995). An Optimal Priority Inheritance Policy for Synchronization in Real-time Systems. Advances in Real-time Systems.
  28. (2002). Analysis and Design of Real-time Control Systems with Varying Control Timing Constraints. Automatic Control Department.
  29. (2004). Analysis and Synthesis of Distributed Realtime Embedded Systems,
  30. (1998). Analysis of Cache-Related Preemption Delay Bibliography E-10 in Fixed-Priority Preemptive Scheduling
  31. (1993). Applying New Scheduling Theory to Static Priority Pre-emptive Scheduling.
  32. (2004). ARM System Developer's Guide: Designing and Optimizing System Software,
  33. (2000). ARM System-on-Chip Architecture,
  34. (2003). Artificial Intelligence: A Modern Approach,
  35. (1992). Assignment of Independent Tasks to Minimize Completion Time.
  36. (1998). Asynchronous Data Sharing in Multiprocessor Real-time Systems Using Process Consensus.
  37. (2004). Best-Case Response Times And Jitter Analysis Of Real-Time Tasks.
  38. (2001). Bounding Cache-Related Preemption Delay for Real-Time Systems.
  39. (2000). Cache and Pipeline Sensitive Fixed Priority Scheduling for Preemptive Real-Time Systems.
  40. (1994). Cache Issues in Real-time Systems.
  41. (1989). Calculating The Maximum Execution Time Of Real-Time Programs.
  42. (2002). Case Execution Time Analysis.
  43. (2004). Comparison of Event-triggered and Time-triggered Concepts with Regard to Distributed Control Systems.
  44. (2005). Computer Organization and Design: The Hardware/Software Interface,
  45. (1977). Concurrent Reading and Writing
  46. (2001). Context Switch.
  47. (1968). Cooperating Sequential Processes. The origin of concurrent programming: from semaphores to remote procedure calls
  48. (1990). Critical Issues for the Development of Distributed Real-time Computing Systems.
  49. (1998). Deadline Sscheduling for Real-time Systems: EDF and Related Algorithms,
  50. (2004). Design and Test of a Task Guardian for Use in TTCS Embedded Systems.
  51. (2004). Design for Timing Predictability.
  52. (2007). Designing Embedded Systems with PIC Microcontrollers: Principles and Applications Newnes.
  53. (1992). Designing Real-time Dependable Distributed Systems.
  54. (2006). Designing reliable embedded systems where limited task pre-emption is required”, Poster presentation at „Festival or Postgraduate Research‟ at the
  55. (1999). Dynamic Mapping of a Class of Independent Tasks onto Heterogeneous Computing Systems.
  56. (2002). Dynamic Use Of Locking Caches In Multitask, Preemptive Real-Time Systems.
  57. (2002). EDF message scheduling on controller area network.
  58. (1998). Effect of Timing Jitter on Distributed Computer Control System Performance.
  59. (1995). Efficient Deadline Scheduling in Real-Time Systems.
  60. (2002). Embedded C,
  61. (2002). Embedded systems - A new high growth area. The Hindu.
  62. (2005). Embedded Systems Design: The ARTIST Roadmap for Research and Development
  63. (1989). Evaluating Tight Execution Time Bounds of Programs by Annotations.
  64. (1991). Evaluation of Realtime Synchronization
  65. (1980). Experience with Processes and Monitors in Mesa.
  66. (1990). Experiments with a Program Timing Tool Based on Source level Timing Schema.
  67. (1989). Exploring Virtual Worlds with Head-Mounted Displays, Non-Holographic True 3-Dimensional Display Technologies. SPIE Proceedings.
  68. (2006). Firm Real-Time System Scheduling Based on a Novel QoS Constraint.
  69. (1995). Fixed Priority Pre-emptive Scheduling: A Historical Perspective.
  70. (1990). Four-slot fully Asynchronous Communication Mechanism.
  71. (1983). Fundamental Design Problems of Distributed Systems for the Hard Real-Time Environment.
  72. (1998). Fundamentals Of Implementing Real-Time Control Applications In Distributed Computer Systems.
  73. (1984). Fundamentals of Operating Systems.
  74. (2003). Fundamentals of Software Engineering, Prentice Hall, ISBN 0-13-099183-X Bibliography
  75. (1995). Generating Feasible Cyclic Schedules. Control Engineering and Practice,
  76. (1995). Guaranteeing Fair Service to Persistent Dependent Tasks.
  77. (1991). Hard Real-Time Scheduling: The Deadline Monotonic Approach.
  78. (1988). Hard Real-Time Systems.
  79. (1984). Heuristics: Intelligent Search Strategies for Computer Problem Solving.,
  80. (2003). How Does Control Timing Affect Performance? Analysis and Simulation of Timing Using Jitterbug and TrueTime.
  81. (1994). How to Integrate Precedence Constraints and Shared Resources in Real-Time Scheduling.
  82. (2004). How to Use Priority Inheritance.
  83. (1994). Implementing Lock-Free Queues.
  84. (2003). Implementing Priority Inheritance Semaphore on uC/OS Real-time kernel. IN HEUNG-NAM,
  85. (1995). Implications of Classical Scheduling Results For Real-Time Systems.
  86. (2002). Improving wait- free algorithms for interprocess communication in embedded realtime systems.
  87. (2007). Integrating Priority Inheritance Algorithms in the Real-Time Specification for Java.
  88. (1994). Interruptible Critical Sections.
  89. (2000). Introduction to Scheduling and Timing Analysis.
  90. (2004). Jitter models for the design and test of Gbps-speed serial interconnects.
  91. (1995). Lock-Free Linked Lists Using Compare-and-Swap.
  92. (2006). Lock-Free Synchronization for Dynamic Embedded Real-Time Systems.
  93. (2004). LPC2119/2129/2194/2292/2294; Singlechip 32-bit microcontrollers user manual.
  94. (2002). MicroC/OS-II: The Real-Time Kernel,
  95. (1999). Minimizing Aperiodic Response Times in a Firm Real-Time Environment.
  96. (1988). Misconceptions About Real-time Computing.
  97. (1988). Mode Change Protocols for Priority-Driven Preemptive Scheduling.
  98. (1974). Monitors: An Operating System Structuring Concepts.
  99. (1989). Multiprocessor Online Scheduling of Hard-Real-Time Tasks
  100. (1986). On interprocess communication. Part 1: Basic Formalism.
  101. (2001). On Real-Time Control Tasks Schedulability. European Control Conference.
  102. (1982). On the Complexity of Fixed Priority Scheduling of Periodic Real-time Tasks.
  103. (1999). On the Efficient Scheduling of NonPeriodic Tasks in Hard Real-Time Systems.
  104. (1991). On The Feasibility of Response Time Predictions - An Experimental Evaluation.
  105. (1991). On using Priority Inheritance in Real-time Databases.
  106. (1998). Operating Systems Concepts,
  107. (1973). Operating Systems Principles,
  108. (1993). Optimal Software Pipelining In Presence Of Resource Constraints.
  109. (2004). Oxford Dictionary of Computing,
  110. (2001). Patterns For Time-triggered Embedded Systems: Building Reliable Applications with the 8051 Family of Microcontrollers,
  111. (2007). Patterns Which Help to Avoid Conflicts over Shared Resources in Time-triggered Embedded Systems Which Employ a Pre-emptive Scheduler.
  112. (1995). Performance Analysis of Embedded Software Using Implicit Path Enumeration.
  113. (1993). Practical Considerations for Non-blocking Concurrent Objects.
  114. (1993). Predicting Instruction Cache Behavior.
  115. (1993). Predicting Program Execution Times by Analyzing Static and Dynamic Program Paths.
  116. (1993). Preemptive Priority Based Scheduling: An appropriate Engineering Approach.
  117. (1987). Priority Inheritance Protocols: An Approach to Real-Time Synchronisation.
  118. (1990). Priority inheritance protocols: an approach to real-time synchronization.
  119. (2002). Priority Inheritance: The Real Story.
  120. (1990). Priority Inversion and Its Prevention.
  121. (2005). Priority Refinement for Dependent Tasks in Large Embedded Real-Time Software.
  122. (2005). Rate Monotonic vs.
  123. (1998). Re: What Really Happened on Mars? Risks-Forum Digest.
  124. (1994). Real Time Computing,
  125. (1993). Real-time and Dependability Concepts,
  126. (1994). Real-time Computer Control: An Introduction,
  127. (1997). Real-Time Computing with Lock-Free Shared Objects.
  128. (1992). Real-Time Computing.
  129. (2003). Real-Time Concepts for Embedded Systems,
  130. (1997). Real-time Operating System Scheduling Algorithms.
  131. (2001). Real-time Operating System Timing Jitter and its
  132. (1994). Real-Time Synchronization Protocols with Abortable Critical Sections.
  133. (1990). Real-time System Scheduling.
  134. (1997). Real-Time Systems and Programming Languages,
  135. (2001). Real-time Systems and Software,
  136. (2004). Real-Time Systems Design and Analysis,
  137. (1993). Real-time Systems Design and Analysis, An Engineer Handbook,
  138. (1997). Real-time Systems,
  139. (1997). Real-Time Systems: Design Principles for Distributed Embedded Applications,
  140. (2002). Real-Time Systems: Scheduling, Analysis, and Verification,
  141. (1989). Reasoning About Time in Higher-level Language Software.
  142. (2006). Reducing Jitter in Embedded Systems Employing a Time-Triggered Software Architecture and Dynamic Voltage Scaling.
  143. (2003). Reducing Pessimism and Increasing Flexibility in the Controller Area Network.
  144. (2004). Requirements for and Design of a Processor with Predictable Timing.
  145. (1991). Resource Control for Hard Real-time Systems: A Review.
  146. (2005). Restructuring a pattern language for reliable embedded systems",
  147. (1995). Robust Aperiodic Scheduling under Dynamic Priority Systems.
  148. (2007). Running Resource and Precedence Constraints in a Hard Real-time System: A policy. Electronics, Robotics and Automotive Mechanics Conference.
  149. (2004). Schedulability Analysis of Periodic Fixed Priority Systems.
  150. (1995). Scheduling Algorithm of Data Sampling Times in the Integrated Communication and Control Systems.
  151. (1994). Scheduling Algorithms and Operating Systems Support for Real-time Systems.
  152. (1973). Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment.
  153. (2005). Scheduling Algorithms for Real-time Systems.
  154. (1998). Scheduling and Timing Analysis for Safety Critical Real-Time Systems.
  155. (1991). Scheduling Hard Real-Time Systems: A Review.
  156. (2002). Scheduling in Real-Time Systems,
  157. (1999). Scheduling Independent Tasks on Metacomputing Systems.
  158. (1986). Scheduling of Hard Real-time Systems.
  159. (1997). Scheduling periodic time critical jobs on single processor and multiprocessor computing systems. Universiyt of Illinois.
  160. (2000). Scheduling Real-time Systems by Means of Petri Nets.
  161. (1999). Sharing Resources among Periodic and Aperiodic Tasks with Dynamic Deadlines.
  162. (2005). Soft Real-Time Systems: Predictability vs.
  163. (1992). Software Architecture for Hard Real-time Systems: Cyclic Executives Vs. Fixed Priority Executives.
  164. (2003). Software Engineering for Real-Time Systems,
  165. (2004). Software Organization to Facilitate Dynamic Processor Scheduling.
  166. (2000). Solving the Priority Inversion Problem in LegOS. Computer Sience,
  167. (1988). Spectral analysis of Doppler signals and computation of the normalized first moment in real time using a digital signal processor.
  168. (2001). Static Use of Locking Caches in Multitask Preemptive Real-time Systems.
  169. (2003). Static Use of Locking Caches Vs. Dynamic Use of Locking Caches for Real-time Systems.
  170. (1994). STRESS: A Simulator for Hard Real-time Systems. Software -
  171. (1972). Structured Multiprogramming.
  172. (1972). Synchronization of Communicating Processes.
  173. (1992). Synthesis: An Efficient Implementation of Fundamental Operating System Services.
  174. (1986). System Programming: Copying with parallelism.
  175. (1988). The Cyclic Executive Model and Ada.
  176. (2005). The Insider's Guide to the Philips ARM7-Based Microcontrollers,
  177. (1993). The Non-blocking Write Protocol NBW: A Solution to a Real-time Synchronization Problem.
  178. (2003). The Performance and Energy Consumption of Embedded Real-time Operating Systems.
  179. (1989). The Rate Monotonic Scheduling Algorithm: Exact Characterization and Average Case Behavior. Real Time Systems Symposium,
  180. (1993). The Real-time Producer/consumer Paradigm: A Paradigm for the Construction of Efficient, Predictable Real- time Systems.
  181. (1991). The Static Analysis of a Safety-critical Avionics Control System. Air Transport Safety:
  182. (2003). The Time-Triggered Paradigm. Workshop on Time-Triggered and Real-Time Communication Systems
  183. (2007). Time-Predictable Task Preemption for RealTime Systems with Direct-Mapped Instruction Cache.
  184. (1994). Timing Predictability in Real-Time Systems.
  185. (1988). Tutorial on Hard Real-Time Systems,
  186. (2007). Two novel shared-clock scheduling algorithms for use with CAN-based distributed systems",
  187. (2007). Twoards a Generic "Single-Path Programming" Solution With Reduced Power Consumption.
  188. (2001). Understanding Jitter: Getting Started.
  189. (2005). Using „Planned Pre-emption‟ to Reduce Levels of Task Jitter in a Time-triggered Hybrid Scheduler.
  190. (2005). Using „planned pre-emption‟ to reduce levels of task jitter in a time-triggered hybrid scheduler”. In: Koelmans,
  191. (2003). Wait- free Data Sharing Between Periodic Tasks in Multiprocessor Control Systems.
  192. (1997). Wait- free Objectsharing Schemes for Real-time Uniprocessors
  193. (2001). Weakly Hard Real-Time Systems.
  194. (1990). What Is Predictability for Realtime Systems?
  195. (1997). What Really Happened on
  196. (2002). Writing Temporally Predictable Code.

To submit an update or takedown request for this paper, please submit an Update/Correction/Removal Request.