Priority Scheduling of Distributed Systems Based on Model Checking
Priorities are used to control the execution of systems to meet given requirements for optimal use of resources, e.g., by using scheduling policies. For distributed systems, it is hard to find efficient implementations for priorities; because they express constraints on global states, their implementation may incur considerable overhead.
Our method is based on performing model checking for knowledge properties. It allows identifying where the local information of a process is sufficient to schedule the execution of a high priority transition. As a result of the model checking, the program is transformed to react upon the knowledge it has at each point. The transformed version has no priorities, and uses the gathered information and its knowledge to limit the enabledness of transitions so that it matches or approximates the original specification of priorities.
- 3.Emerson, E.A., Clarke, E.M.: Characterizing Correctness Properties of Parallel Programs using Fixpoints. In: ICALP 1980. LNCS, vol. 85, pp. 169–181. Springer, Heidelberg (1980)Google Scholar
- 5.Francez, N., Rodeh, M.: A Distributed Abstract Data Type Implemented by a Probabilistic Communication Scheme. In: 21st Annual Symposium on Foundations of Computer Science (FOCS), Syracuse, New York, pp. 373–379 (1980)Google Scholar
- 9.Manna, Z., Pnueli, A.: How to Cook a Temporal Proof System for Your Pet Language. In: POPL 1983, Austin, TX, pp. 141–154 (1983)Google Scholar
- 11.Quielle, J.P., Sifakis, J.: Specification and Verification of Concurrent Systems in CESAR. In: 5th International Symposium on Programming, pp. 337–350 (1981)Google Scholar