Memory Model Specification Framework with Integrated Model Checking Capability †
Saved in:
| Title: | Memory Model Specification Framework with Integrated Model Checking Capability † |
|---|---|
| Authors: | Yue Yang, Ganesh Gopalakrishnan, Gary Lindstrom |
| Contributors: | The Pennsylvania State University CiteSeerX Archives |
| Source: | http://www.cs.utah.edu/formal_verification/publications/journals/pdf/umm05.pdf. |
| Publication Year: | 2000 |
| Collection: | CiteSeerX |
| Subject Terms: | key words, Memory model, Operational specification, Java thread, Formal verification |
| Description: | Given the complicated nature of modern shared memory systems, it is vital to have a systematic approach to specifying and analyzing memory consistency requirements. In this paper, we present the UMM specification framework, which integrates two key features to support memory model verification: (i) it employs a simple and generic memory abstraction that can capture a large collection of memory models as guarded commands with a uniform notation, and (ii) it provides built-in model checking capability to enable formal reasoning about thread behaviors. Using this framework, memory models can be developed in a parameterized style – designers can simply redefine a few bypassing rules and visibility ordering rules to obtain an executable specification of another memory model. We formalize several classical memory models, including Sequential Consistency, Coherence, and PRAM, to illustrate the general techniques of applying this framework. We then provide an alternative specification of the Java memory model, based on a proposal from Manson and Pugh, and demonstrate how to analyze Java thread semantics using model checking. We also compare our operational specification style with axiomatic specification styles and explore a mechanism that converts a memory model definition from one style to the other. |
| Document Type: | text |
| File Description: | application/pdf |
| Language: | English |
| Relation: | http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.80.2730; http://www.cs.utah.edu/formal_verification/publications/journals/pdf/umm05.pdf |
| Availability: | http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.80.2730 http://www.cs.utah.edu/formal_verification/publications/journals/pdf/umm05.pdf |
| Rights: | Metadata may be used without restrictions as long as the oai identifier remains attached to it. |
| Accession Number: | edsbas.990B105A |
| Database: | BASE |
| Abstract: | Given the complicated nature of modern shared memory systems, it is vital to have a systematic approach to specifying and analyzing memory consistency requirements. In this paper, we present the UMM specification framework, which integrates two key features to support memory model verification: (i) it employs a simple and generic memory abstraction that can capture a large collection of memory models as guarded commands with a uniform notation, and (ii) it provides built-in model checking capability to enable formal reasoning about thread behaviors. Using this framework, memory models can be developed in a parameterized style – designers can simply redefine a few bypassing rules and visibility ordering rules to obtain an executable specification of another memory model. We formalize several classical memory models, including Sequential Consistency, Coherence, and PRAM, to illustrate the general techniques of applying this framework. We then provide an alternative specification of the Java memory model, based on a proposal from Manson and Pugh, and demonstrate how to analyze Java thread semantics using model checking. We also compare our operational specification style with axiomatic specification styles and explore a mechanism that converts a memory model definition from one style to the other. |
|---|
Nájsť tento článok vo Web of Science