Ensuring the safety of multithreaded software is a task both important and challenging. Currently, most ap- proaches focus on the safety of multithreaded programs rather than the runtime based on which those concurrent programs run. In order to fundamentally solve this problem, a method of ensuring the safety of the runtime should be de- veloped. Such a runtime could be organized as a thread library typically.
This paper presents the development and certification of a simple but realistic thread library. The thread library provides common multi-threading features such as dynamic thread creation, termination and joining as well. This li- brary also carries machine-checkable proof which guaran- tees the library does not violate the safety policies. This paper also presents an approach to link the library to exist- ing certified multithreaded user programs to form an inte- grated foundational proof-carrying code (FPCC) package. Comparing with the uncertified libraries, our work makes multithreaded applications much more reliable.