Skip to main content
Article thumbnail
Location of Repository

Techniques for scheduling time-triggered resource-constrained embedded systems

By Ayman Khalifa Ghaly Gendy

Abstract

It is often argued that time-triggered (TT) architectures are the most suitable basis for safety-related applications as their use tends to result in highly-predictable system behaviour. This predictability is increased when TT architectures are coupled with the use of co-operative (or "non pre-emptive") task sets. \ud Despite many attractive properties, such "time-triggered co-operative" (TTC) and related "time-triggered hybrid" (TTH) architectures rarely receive much attention in the research literature. One important reason for this is that these designs are seen to be "fragile": that is, small changes to the task set may require revisions to the whole schedule. Such revisions are seen as challenging and time consuming. To tackle this problem two novel algorithms (TTSA1 and TTSA2), which help to automate the process of scheduler selection and configuration, are introduced. While searching for a workable schedule, both the algorithms try to ensure that all task constraints are met, a co-operative scheduler is used whenever possible and the power consumption is kept as low as possible. The effectiveness of these algorithms is tested by means of empirical trials. \ud Both TTSA1 and TTSA2, like most of scheduling algorithms introduced in the literature, rely on knowledge of task worst-case execution time (WCET). Unfortunately, determining the WCET of tasks is rarely straightforward. Even in situations where accurate WCET estimates are available at design time, variations in task execution time, between its best-case execution time (BCET) and its WCET, may still affect the system predictability and/or violate task constraints. In an effort to address this problem, a set of code-balancing techniques is introduced. Using an empirical study it is demonstrated that these techniques help in reducing the variations in task execution time, and hence increase the system predictability. These goals are achieved with a reduced power-consumption overhead, compared to alternative solutions

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

Suggested articles

Citations

  1. (2009). (accepted) "Two simple patterns to support the development of reliable, real-time embedded systems",
  2. (2005). A ‘Hardware-inthe-Loop’ testbed representing the operation of a cruise-control system in a passenger car". In: Koelmans,
  3. (2005). A contribution to branch prediction modeling in WCET analysis".
  4. (2003). A cyclic-executive-based QoS guarantee over USB".
  5. (1983). A microprocessor multi-task monitor."
  6. (1998). A modified least-laxity-first scheduling algorithm for real-time tasks".
  7. (1989). A new algorithm for scheduling periodic - real-time tasks."
  8. (2007). A non-preemptive scheduling algorithm for soft real-time systems."
  9. (1980). A note on preemptive scheduling of periodic realtime tasks."
  10. (1977). A pattern language". NY,
  11. (1990). A scheme for real-time channel establishment in wide-area networks."
  12. (1996). Adaptive software fault tolerance policies with dynamic real-time guarantees".
  13. (1994). Adding time-offsets to schedulability analysis".
  14. (1992). Allocating hard real-time tasks: an NP-hard problem made easy."
  15. (1998). An introduction to genetic algorithms ",
  16. (1981). An introduction to real-time software design",
  17. (1997). Applying compiler techniques to cache behavior prediction".
  18. (2008). Assessment of high-integrity embedded automotive control systems using hardware in the loop simulation."
  19. (2008). Automating the processes of selecting an appropriate scheduling algorithm and configuring the scheduler implementation for time-triggered embedded systems".
  20. (2000). Avoiding the WCET overestimation on LRU instruction cache".
  21. (2009). Bridging the gap between scheduling algorithms and scheduler implementations in time-triggered embedded systems".
  22. (2005). Building reliable embedded systems using Abstract Patterns, Patterns, and Pattern Implementation Examples". In: Koelmans,
  23. (1997). Building safety critical realtime systems with reusable cyclic executives."
  24. (2004). Code generation supported by a pattern-based design methodology". In: Koelmans,
  25. (2005). Component-based software development for embedded systems: An overview of current research trends (Lecture notes in computer science) ", Springer-Verlag Berlin and
  26. (2007). Computer architecture: a quantitative approach",
  27. (2001). Context switch."
  28. (1983). Conversion of control dependence to data dependence".
  29. (1999). Design and evaluation of a feedback control EDF scheduling algorithm".
  30. (2004). Design and test of a task guardian for use in TTCS embedded systems". In
  31. (1995). Design patterns: Elements of reusable object-oriented software".
  32. (2005). Developing reliable embedded systems using a pattern-based code generation tool: A case study". In: Koelmans,
  33. (2006). Development and assessment of a CASE tool to support the design and implementation of time-triggered embedded systems,".
  34. (2006). Development of a tool to support the design of real-time embedded control systems for X-By-Wire applications".
  35. (2003). Discussion of misconceptions about WCET analysis".
  36. (1996). Distance-constrained scheduling and its applications to real-time systems."
  37. (1999). Embedded processors by the numbers."
  38. (2006). Embedded system design",
  39. (2003). Embedded systems dictionary",
  40. (2005). Embedded systems handbook",
  41. (2006). Evaluating and improving pattern-based software designs for resource-constrained embedded systems".
  42. (2001). Evaluation of search heuristics for embedded system scheduling problems".
  43. (1991). Event-triggered versus time-triggered real-time systems".
  44. (1999). Experimental assessment of the period calibration method: A case study."
  45. (2000). Fast and precise WCET prediction by separated cache and path analyses." Real-Time Systems 18(2-3):
  46. (2007). Fault-tolerant time-triggered communication using CAN."
  47. (2006). From time-triggered to time-deterministic realtime systems".
  48. (2005). Functional safety of electrical/electronic/programmable electronic safetyrelated systems – Part 0: Functional safety and IEC 61508.&quot; from WWW Page: < http://www.iec.ch/functionalsafety >, (accessed
  49. (1983). Fundamental design problems of distributed systems for the hard real-time environment&quot;.
  50. (1995). Generating feasible cyclic schedules.&quot;
  51. (2001). Giotto: A time-triggered language for embedded programming”&quot;.
  52. (1994). Guaranteeing end-to-end timing constraints by calibrating intermediate processes&quot;.
  53. (1995). Guaranteeing real-time requirements with resource-based calibration of periodic processes.&quot;
  54. (1998). Handling interrupts with static scheduling in an automotive vehicle control system&quot;.
  55. (2005). Hard real-time computing cystems: Predictable scheduling algorithms and applications&quot;,
  56. (1991). Hard realtime scheduling: the deadline-monotonic approach&quot;.
  57. (2000). Highly dependable time-triggered operating system&quot;.
  58. (1995). How software doesn't work.&quot; Byte
  59. (1995). Implications of classical scheduling results for real-time systems.&quot;
  60. (2007). Improving the performance of timetriggered embedded systems by means of a scheduler agent&quot;.
  61. (1987). Instruction level timing mechanisms for accurate real-time task scheduling.&quot;
  62. (2009). Intel Museum.&quot; from WWW Page:
  63. (1979). Introduction to microprocessors&quot;,
  64. (2000). It's getting better all the time: 100 greatest trends of the 20th century &quot;,
  65. LPC2119/2129/2194/2292/2294; Single-chip 32-bit microcontrollers user manual&quot;.
  66. (2003). Making software timing properties easier to inspect and verify.&quot;
  67. (2002). Managing complex temporal requirements in real-time control systems&quot;.
  68. (2006). Meeting real-time constraints using 'Sandwich Delays'&quot;.
  69. (2005). Mining for pattern implementation examples&quot;. In: Koelmans,
  70. (1988). Misconceptions about real-time computing: a serious problem for next-generation systems.&quot;
  71. (1998). Mode handling in the time-triggered architecture.&quot;
  72. (1993). Multiprocessor scheduling of processes with release times, deadlines, precedence, and exclusion relations.&quot;
  73. (2000). NASA report: too many failures with faster, better, cheaper.&quot; from WWW Page:
  74. (1990). Natural solutions give their best.&quot;
  75. (2005). New directions in real-time operating system kernels.&quot; Embedded Control Europe.
  76. (2004). Non-preemptive multiprocessor scheduling for strict periodic systems with precedence constraints&quot;.
  77. NXP LPC2104, LPC2105, LPC2106 data sheet&quot;, Data sheet, Philips Semiconductors.
  78. (2008). Obstacles in worst-case execution time analysis&quot;.
  79. (1998). Off-line scheduling of a real-time system&quot;.
  80. (1991). On non-preemptive scheduling of periodic and sporadic tasks&quot;.
  81. (1993). On satisfying timing constraints in hard real-time systems.&quot;
  82. (1982). On the complexity of fixed priority scheduling of periodic real-time tasks.&quot;
  83. (1998). Operating systems concepts&quot;,
  84. (1983). Optimisation by simulated annealing.&quot;
  85. (2001). Patterns for time-triggered embedded systems&quot;,
  86. (2007). Power-aware software design for resourceconstrained embedded systems,&quot; Poster presentation at the
  87. (1992). Pre-run time scheduling processes with exclusion relations on nested or overlapping critical sections&quot;.
  88. (1990). Priority inheritance protocols: an approach to real-time synchronization.&quot;
  89. (2000). Priority scheduling versus pre-run-time scheduling.&quot;
  90. (2006). Probabilistic QoS guarantees with FP/EDF scheduling and packet discard in a real time context : A comparative study of local deadline assignment techniques&quot;.
  91. (2002). Processor pipelines and static worst-case execution time analysis&quot;.
  92. (2002). Processor pipelines and their properties for static WCET analysis&quot;.
  93. (1999). Programming embedded systems in C and C ++&quot;,
  94. (2003). Rate monotonic scheduling: The hyperbolic bound.&quot;
  95. (2005). Rate monotonic vs. EDF: judgment day.&quot; Real-Time Syst.
  96. (2002). Real- time systems, scheduling, analysis, and verifications&quot;,
  97. (1999). Real-time system constraints: Where do they come from and where do they go?&quot;.
  98. (2001). Real-time systems and software&quot;.
  99. (2004). Real-time systems design and analysis&quot;,
  100. (1997). Real-time systems: design principles for distributed embedded applications&quot;,
  101. (1996). Real-time systems: specification, verification and analysis&quot;,
  102. (2006). Reducing jitter in embedded systems employing a time-triggered software architecture and dynamic voltage scaling.&quot;
  103. (2007). Reducing jitter in embedded systems employing a timetriggered software architecture and dynamic voltage scaling&quot;.
  104. (2004). Reducing the number of pre-emptions in fixed priority scheduling&quot;.
  105. (2006). Restructuring a pattern language which supports time- triggered co-operative software architectures in resource-constrained embedded systems&quot;.
  106. (2004). Safe and Precise WCET Determination by Abstract Interpretation of Pipeline Models. .&quot;, Universitat des Saarlandes.
  107. (2005). Safe measurement-based WCET estimation&quot;.
  108. (1996). Safety and mission assurance in a better, faster, cheaper environment.&quot;
  109. (2006). Safety and Reliability for Managing Risk&quot;:
  110. (1998). Scheduling and timing analysis for safety critical real-time systems&quot;.
  111. (1977). Scheduling equal-length tasks under treelike precedence constraints to minimize maximum lateness.&quot;
  112. (2002). Scheduling in real-time systems&quot;,
  113. (2000). Scheduling of time-triggered real-time systems.&quot;
  114. (1991). Scheduling periodic and aperiodic tasks in hard realtime computing systems.&quot;
  115. (1999). Scheduling periodic task systems to minimize output jitter&quot;.
  116. (1990). Scheduling processes with release times, deadlines, precedence and exclusion relations.&quot;
  117. (2002). Scheduling transient overload with the TAFT scheduler&quot;. GI/ITG specialized group of operating systems.
  118. (2006). Selecting and implementing a custom scheduler for a reliable embedded application,&quot; Poster presentation at the IET Postgraduate Workshop on Embedded Systems,
  119. (2005). Soft real-time systems: predictability vs. efficiency&quot;,
  120. (1992). Software architecture for hard real-time applications: cyclic executives vs. fixed priority executives.&quot; Real-Time Syst.
  121. (2007). Software engineering&quot;.
  122. (2000). Solving embedded system scheduling problems using constraint programming&quot;.
  123. (1988). Spectral analysis of doppler signals and computation of the normalized first moment in real time using a digital signal processor, .&quot;
  124. (2003). Task graph extraction for embedded system synthesis&quot;.
  125. (1992). The art of programming embedded systems&quot;,
  126. (1999). The case for feedback control real-time scheduling&quot;.
  127. (1988). The cyclic executive model and Ada&quot;.
  128. (1987). The design of the spring kernel&quot;.
  129. (1993). The end of line for static cyclic scheduling?&quot;. Fifth Euromicro Workshop on Real-Time Systems.
  130. (2004). The jitter margin and its application in the design of real-time control systems&quot;.
  131. (2007). The maintenance and evolution of resourceconstrained embedded systems created using design patterns.&quot;
  132. (1997). The non-optimality of the monotonic priority assignments for hard real-time offset free systems.&quot;
  133. (2006). The non-preemptive scheduling of periodic tasks upon multiprocessors.&quot; Real-Time Systems
  134. (2003). The performance and energy consumption of embedded realtime operating systems.&quot;
  135. (2003). The single-path approach towards WCETanalysable software&quot;.
  136. (1991). The static analysis of a safety-critical avionics control system&quot;.
  137. (1979). The timeless way of building&quot;. NY,
  138. (2006). Time-triggered vs. event-triggered: A matter of configuration?&quot;. Dulz, Winfried; Schröder-Preikschat, Wolfgang :
  139. (2003). Towards a CASE tool to support the development of reliable embedded systems using design patterns&quot;. In: Bruel,
  140. (2007). Towards a generic 'single-path programming' solution with reduced power consumption&quot;,
  141. (2007). Towards a generic 'single-path programming' solution with reduced power consumption&quot;.
  142. (2002). Transforming execution-time boundable code into temporally predictable code&quot;.
  143. (2004). TTSA1 Case study (Scheduler agent) 159 B.3.5 Extended task set
  144. (2007). Two novel shared-clock scheduling algorithms for use with ‘Controller Area Network’ and related protocols.&quot;
  145. (2000). Uniform processor scheduling with release times, deadlines, precedence and exclusion relations International&quot;. Workshop Discrete optimization methods in scheduling and computer-aided design,
  146. (2005). Using ‘planned pre-emption’ to reduce levels of task jitter in a time-triggered hybrid&quot;. In: Koelmans,
  147. (2005). Using cyclic executives for achieving closed loop co-simulation&quot;.
  148. (1987). Using pattern languages for object-oriented programs&quot;.
  149. (2002). Using watchdog timers to improve the reliability of single-processor embedded systems: Seven new patterns and a case study”&quot;.
  150. (2000). Validating a worst-case execution-time analysis method for an embedded processor&quot;.
  151. (2008). Volume 5219/2008, Springer Berlin / Heidelberg,
  152. (1997). What really happened on Mars?, Authoritative Account, research.microsoft.com.&quot;
  153. (2001). Worstcase execution-time analysis for embedded real-time systems.&quot;
  154. (2002). Writing temporally predictable code&quot;.

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