Abstract
In real-time systems with threads, resource locking and priority scheduling, one faces the problem of Priority Inversion. This problem can make the behaviour of threads unpredictable and the resulting bugs can be hard to find. The Priority Inheritance Protocol is one solution implemented in many systems for solving this problem, but the correctness of this solution has never been formally verified in a theorem prover. As already pointed out in the literature, the original informal investigation of the Property Inheritance Protocol presents a correctness “proof” for an incorrect algorithm. In this paper we fix the problem of this proof by making all notions precise and implementing a variant of a solution proposed earlier. Our formalisation in Isabelle/HOL uncovers facts not mentioned in the literature, but also shows how to efficiently implement this protocol. Earlier correct implementations were criticised as too inefficient. Our formalisation is based on Paulson’s inductive approach to verifying protocols.
Access provided by Autonomous University of Puebla. Download to read the full chapter text
Chapter PDF
Similar content being viewed by others
References
Dutertre, B.: The Priority Ceiling Protocol: Formalization and Analysis Using PVS. In: Proc. of the 21st IEEE Conference on Real-Time Systems Symposium (RTSS), pp. 151–160. IEEE Computer Society (2000)
Faria, J.M.S.: Formal Development of Solutions for Real-Time Operating Systems with TLA+/TLC. PhD thesis, University of Porto (2008)
Haftmann, F., Wenzel, M.: Local Theory Specifications in Isabelle/Isar. In: Berardi, S., Damiani, F., de’Liguoro, U. (eds.) TYPES 2008. LNCS, vol. 5497, pp. 153–168. Springer, Heidelberg (2009)
Jahier, E., Halbwachs, N., Raymond, P.: Synchronous Modeling and Validation of Priority Inheritance Schedulers. In: Chechik, M., Wirsing, M. (eds.) FASE 2009. LNCS, vol. 5503, pp. 140–154. Springer, Heidelberg (2009)
Lampson, B.W., Redell, D.D.: Experiences with Processes and Monitors in Mesa. Communications of the ACM 23(2), 105–117 (1980)
Paulson, L.C.: ML for the Working Programmer. Cambridge University Press (1996)
Paulson, L.C.: The Inductive Approach to Verifying Cryptographic Protocols. Journal of Computer Security 6(1-2), 85–128 (1998)
Pfaff, B.: PINTOS, http://www.stanford.edu/class/cs140/projects/
Reeves, G.E.: Re: What Really Happened on Mars?. Risks Forum 19(54) (1998)
Rostedt, S.: RT-Mutex Implementation Design, Linux Kernel Distribution at, http://www.kernel.org/doc/Documentation/rt-mutex-design.txt
Sha, L., Rajkumar, R., Lehoczky, J.P.: Priority Inheritance Protocols: An Approach to Real-Time Synchronization. IEEE Transactions on Computers 39(9), 1175–1185 (1990)
Vahalia, U.: UNIX Internals: The New Frontiers. Prentice-Hall (1996)
Wang, J., Yang, H., Zhang, X.: Liveness Reasoning with Isabelle/HOL. In: Berghofer, S., Nipkow, T., Urban, C., Wenzel, M. (eds.) TPHOLs 2009. LNCS, vol. 5674, pp. 485–499. Springer, Heidelberg (2009)
Wellings, A., Burns, A., Santos, O.M., Brosgol, B.M.: Integrating Priority Inheritance Algorithms in the Real-Time Specification for Java. In: Proc. of the 10th IEEE International Symposium on Object and Component-Oriented Real-Time Distributed Computing (ISORC), pp. 115–123. IEEE Computer Society (2007)
Yodaiken, V.: Against Priority Inheritance. Technical report, Finite State Machine Labs (FSMLabs) (2004)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2012 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Zhang, X., Urban, C., Wu, C. (2012). Priority Inheritance Protocol Proved Correct. In: Beringer, L., Felty, A. (eds) Interactive Theorem Proving. ITP 2012. Lecture Notes in Computer Science, vol 7406. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-32347-8_15
Download citation
DOI: https://doi.org/10.1007/978-3-642-32347-8_15
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-32346-1
Online ISBN: 978-3-642-32347-8
eBook Packages: Computer ScienceComputer Science (R0)