Voluntary preemption: A tool in the design of hard real-time systems
A new technique for scheduling hard real-time systems is proposed. We term this technique as voluntary preemption as it allows the user to determine the points at which the execution of a process can be preempted. There are several advantages of this technique. First of all, the internal structure of the processes can be used in determining the points where a process may be preempted. This permits, among other things, that critical sections are not preempted as well as identifying points at which a process should be preempted. Secondly, overhead cost of context switching can be taken into account realistically without sacrificing performance. Finally, since the overhead cost of context switching depends on the point (in the execution) where a process is preempted, this technique allows the preemption points to be chosen to reduce the overhead cost of context switching. These various considerations about where a process can be preempted, can be incorporated into an automatic tool to aid in the design of real-time systems.
We describe and illustrate this technique by analyzing in detail the performance of a voluntary preemptive scheduling algorithm for scheduling a classical hard real-time problem on a single processor with context switching costs. In addition we also obtain a tight load cutoff for this algorithm. The performance of the voluntary preemptive scheduling algorithm is good as its load cutoff matches that of an optimal scheduling algorithm when context switching costs are zero. This load cutoff theorem also provides a mechanism for scheduling a multiprocessor system by partitioning the problem into independent subproblems each of which can be scheduled on a single processor.
KeywordsControl Point Schedule Algorithm Critical Section Single Processor Overhead Cost
Unable to display preview. Download preview PDF.
- [CSR88]S. Cheng, J. A. Stankovic, and K. Ramamritham. Scheduling algorithms for hard real-time systems — a brief survey. In J. A. Stankovic and K. Ramamritham, editors, Tutorial on Hard Real-Time Systems, pages 150–173. Computer Society Press, 1988.Google Scholar
- [DD86]S. Davari and S. K. Dhall. An on line algorithm for real-time task allocation. In IEEE Real-Time Systems Symposium, 1986.Google Scholar
- [DJ86]M. D. Donner and D. H. Jameson. A real-time juggling robot. Technical Report RC 12111, IBM T. J. Watson Research Center, Yorktown Heights, NY 10598, 1986.Google Scholar
- [DL78]S. K. Dhall and C. L. Liu. On a real-time scheduling problem. Operations Research, 26:127–140, 1978.Google Scholar
- [FP88]S. R. Faulk and D. L. Parnas. On synchronization in hard-real-time systems. Commun. of the Association for Computing Machinery, 31:274–287, 1988.Google Scholar
- [GJ79]M. R. Garey and D. S. Johnson. Computers and Intractability: A Guide to the Theory of NP-Completeness. W. H. Freeman and Co., 1979.Google Scholar
- [GS88]J. B. Goodenough and L. Sha. The priority ceiling protocol: A method for minimizing the blocking of high priority Ada tasks. In Proceedings of the 2nd ACM International Workshop on Real-Time Ada Issues, 1988.Google Scholar
- [LL73]C. L. Liu and J. W. Layland. Scheduling algorithms for multiprogramming in a hard-real-time environment. Journal of the Association for Computing Machinery, 20:46–61, 1973.Google Scholar
- [Moi86]A. Moitra. Scheduling of hard real-time systems. In K. V. Nori, editor, Foundations of Software Technology and Theoretical Computer Science, pages 362–381, December 1986. in LNCS, vol. 241, Springer-Verlag.Google Scholar
- [Mok83]A. K. Mok. Fundamental design problems of distributed systems for the hard-realtime environment. Ph.D. Thesis, MIT, 1983.Google Scholar
- [SG90]L. Sha and J. B. Goodenough. Real-time scheduling theory and Ada. COMPUTER, 23(4):53–62, 1990.Google Scholar
- [SLR86]L. Sha, J. P. Lehoczky, and R. Rajkumar. Solutions for some practical problems in prioritized preemptive scheduling. In IEEE Real-Time Systems Symposium, pages 181–191, 1986.Google Scholar
- [SRC85]J. A. Stankovic, K. Ramamritham, and S. Cheng. Evaluation of a flexible task scheduling algorithm for distributed hard real-time systems. IEEE Transactions on Computers, C-34, pages 1130–1143, 1985.Google Scholar
- [SRL90]L. Sha, R. Rajkumar, and J. P. Lehoczky. Priority inheritance protocols: An approach to real-time synchronization. IEEE Transactions on Computers, C-39, pages 1175–1185, 1990.Google Scholar
- [Tei78]T. Teixeira. Static priority interrupt scheduling. In 7th Texas Conf. on Computing Systems, pages 5–13:5–18, 1978.Google Scholar