USENIX Conference Policies
X Meets Z: Verifying Correctness in the Presence of POSIX Threads
The engineering of freely-available UNIX software normally utilizes an informal analysis and design process coupled with extensive user testing. While this approach is often appropriate, there are situations for which it produces less-than-stellar results.
A case study is given of such a situation that arose during the design and implementation of a thread-safe library for interaction with the X Window System. XCB is a C binding library for the X protocol designed to work transparently with either single-threaded or multi-threaded clients. Managing XCB client thread access to the X server while honoring the constraints of both XCB and the X server is thus a delicate matter.
The problem of ensuring that this complex system is coded correctly can be attacked through the use of lightweight formal methods. A model is constructed of the troublesome portion of the system using the Z formal specification notation. This model is used to establish important system properties and produce C code with a high likelihood of correctness.
author = {Robert T. Bauer},
title = {X Meets Z: Verifying Correctness in the Presence of {POSIX} Threads},
booktitle = {2002 USENIX Annual Technical Conference (USENIX ATC 02)},
year = {2002},
address = {Monterey, CA},
url = {https://www.usenix.org/conference/2002-usenix-annual-technical-conference/x-meets-z-verifying-correctness-presence-posix},
publisher = {USENIX Association},
month = jun
}