Synchronization primitives for a multiprocessor: a formal specification

A. Birrell, J. Guttag, J. Horning, R. Levin
<span title="1987-11-01">1987</span> <i title="Association for Computing Machinery (ACM)"> <a target="_blank" rel="noopener" href="https://fatcat.wiki/container/i24hgue5erh4haqtfyyjvfijdu" style="color: black;">ACM SIGOPS Operating Systems Review</a> </i> &nbsp;
Formal specifications of operating system interfaces can be a useful part of their documentation. We illustrate this by documenting the Threads synchronization primitives of the Taos operating system. We start with an informal description, present a way to formally specify interfaces in concurrent systems, give a formal specification of the synchronization primitives, briefly discuss the implementation, and conclude with a discussion of what we have learned from using the specification for more than a year.
<span class="external-identifiers"> <a target="_blank" rel="external noopener noreferrer" href="https://doi.org/10.1145/37499.37509">doi:10.1145/37499.37509</a> <a target="_blank" rel="external noopener" href="https://fatcat.wiki/release/sigk26l6hnbz3lz6vl2cpnqc2q">fatcat:sigk26l6hnbz3lz6vl2cpnqc2q</a> </span>
<a target="_blank" rel="noopener" href="https://web.archive.org/web/20131126110912/http://birrell.org:80/andrew/papers/020-SyncPrimitives-SOSP.pdf" title="fulltext PDF download" data-goatcounter-click="serp-fulltext" data-goatcounter-title="serp-fulltext"> <button class="ui simple right pointing dropdown compact black labeled icon button serp-button"> <i class="icon ia-icon"></i> Web Archive [PDF] <div class="menu fulltext-thumbnail"> <img src="https://blobs.fatcat.wiki/thumbnail/pdf/68/ab/68ab0e3aa7de7d174285af4b0dc50e760a1b2d52.180px.jpg" alt="fulltext thumbnail" loading="lazy"> </div> </button> </a> <a target="_blank" rel="external noopener noreferrer" href="https://doi.org/10.1145/37499.37509"> <button class="ui left aligned compact blue labeled icon button serp-button"> <i class="external alternate icon"></i> acm.org </button> </a>