On the Complexity of Scheduling Conditional Real-Time Code
Many real-time embedded systems involve a collection of independently executing event-driven code blocks, having hard real-time constraints. Portions of such codes when triggered by external events require to be executed within a given deadline from the triggering time. The feasibility analysis problem for such a real-time system asks whether it is possible to schedule all such blocks of code so that all the associated deadlines are met even in the worst case triggering sequence. Each such conditional real-time code block can be naturally represented by a directed acyclic graph whose vertices correspond to portions of code having a straight-line flow of control and are associated with execution requirements and deadlines relative to their triggering times, and the edges represent conditional branches. Till now, no complexity results were known for the feasibility analysis problem in this model, and all existing algorithms in the real-time systems literature have an exponential complexity. In this paper we show that this problem is NP-hard under both dynamic and static priorities in the preemptive uniprocessor case, even for a set of only two task graphs. For dynamic-priority feasibility analysis we give a pseudo-polynomial time exact algorithm and a fully polynomial-time approximation scheme for approximate feasibility testing. For the special case where all the execution requirements of the vertices are identical, we present a polynomial time exact algorithm. For static-priority feasibility analysis, we introduce a new sufficient condition and give a pseudo-polynomial time algorithm for checking it. This algorithm gives tighter results for feasibility analysis compared to those known so far.
KeywordsCode Block Task Graph Minimum Time Interval Feasibility Analysis Conditional Branch
Unable to display preview. Download preview PDF.
- 1.N.C. Audsley, K.W. Tindell, and A. Burns. The end of the line for static cyclic scheduling? In Proc. Euromicro Conf. on Real-Time Systems, Finland, 1993. IEEE Computer Society Press.Google Scholar
- 2.S. Baruah. Dynamic-and static-priority scheduling of recurring real-time tasks. To appear in Real-Time Systems.Google Scholar
- 3.S. Baruah. Feasibility analysis of recurring branching tasks. In Proc. 10th Euromicro Workshop on Real-Time Systems, pages 138–145, 1998.Google Scholar
- 4.S. Baruah. A general model for recurring real-time tasks. In Proc. Real-Time Systems Symposium, pages 114–122. IEEE Computer Society Press, 1998.Google Scholar
- 7.S. Chakraborty, T. Erlebach, and L. Thiele. On the complexity of scheduling conditional real-time code. Technical Report TIK Report No. 107, ETH Zürich, 2001. ftp://ftp.tik.ee.ethz.ch/pub/people/samarjit/paper/CET01a.ps.gz.
- 8.A.K. Mok. Fundamental Design Problems of Distributed Systems for the Hard-Real-Time Environment. PhD thesis, Laboratory for Computer Science, MIT, 1983. Available as Technical Report No. MIT/LCS/TR-297.Google Scholar