Results 1 -
4 of
4
Type-Based Safe Resource Deallocation for Shared-Memory Concurrency
- in: Proceedings of the 27th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA’12), ACM
"... We propose a type system to guarantee safe resource deal-location for shared-memory concurrent programs by extend-ing the previous type system based on fractional ownerships. Here, safe resource deallocation means that memory cells, locks, or threads are not left allocated when a program ter-minates ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
(Show Context)
We propose a type system to guarantee safe resource deal-location for shared-memory concurrent programs by extend-ing the previous type system based on fractional ownerships. Here, safe resource deallocation means that memory cells, locks, or threads are not left allocated when a program ter-minates. Our framework supports (1) fork/join parallelism, (2) synchronization with locks, and (3) dynamically allo-cated memory cells and locks. The type system is proved to be sound. We also provide a type inference algorithm for the type system and a prototype implementation of the algo-rithm.
Formal Specification of LinkedBlockingQueue Using Concurrent Separation Logic
"... Proving the correctness of multi-threaded programs is a challenge. To meet this challenge Hurlin recently designed a method based on separation logic to specify concurrent Java-like programs with fork, join and re-entrant locks. In this study we evaluate the usability of Hurlin’s method. This is don ..."
Abstract
- Add to MetaCart
(Show Context)
Proving the correctness of multi-threaded programs is a challenge. To meet this challenge Hurlin recently designed a method based on separation logic to specify concurrent Java-like programs with fork, join and re-entrant locks. In this study we evaluate the usability of Hurlin’s method. This is done by developing a formal specification for Java’s library class LinkedBlockingQueue and arguing why Link-edBlockingQueue respects this specification. In our project we also inspect the Java Synchronizer Framework. We conclude that Hurlin’s program logic is very useful for specifying a Java library class, however we need to in-troduce some additional language constructs in order to be able to specify LinkedBlockingQueue’s safety proper-ties. We are able to specify if threads have permission to change the head and tail of the queue. To be able to specify the blocking properties of LinkedBlockingQueue we need to introduce a new specification formula spec lock to specify which Lock protects a ConditionObject in Java’s Synchronizer Framework. 1.
Dynamic Frames Based Verification Method for Concurrent Java Programs?
"... Abstract. In this paper we discuss a verification method for concur-rent Java programs based on the concept of dynamic frames. We build on our earlier work that proposes a new, symbolic permission system for concurrent reasoning and we provide the following new contributions. First, we describe our ..."
Abstract
- Add to MetaCart
(Show Context)
Abstract. In this paper we discuss a verification method for concur-rent Java programs based on the concept of dynamic frames. We build on our earlier work that proposes a new, symbolic permission system for concurrent reasoning and we provide the following new contributions. First, we describe our approach for proving program specifications to be self-framed w.r.t. permissions, which is a necessary condition to main-tain soundness in concurrent reasoning. Second, we show how we use predicates to provide modular and reusable specifications for program synchronisation points, like locks or forked threads. Our work primarily targets the KeY verification system with its specification language JML∗ and symbolic execution proving method. Hence, we also give the current status of the work on implementation and we discuss some examples that are verifiable with KeY. 1
History-based Verification of Functional Behaviour of Concurrent Programs
"... Abstract. Modular verification of the functional behaviour of a con-current program remains a challenge. We propose a new way to achieve this, using histories, modelled as process algebra terms, to keep track of local changes. When threads terminate or synchronise in some other way, local histories ..."
Abstract
- Add to MetaCart
(Show Context)
Abstract. Modular verification of the functional behaviour of a con-current program remains a challenge. We propose a new way to achieve this, using histories, modelled as process algebra terms, to keep track of local changes. When threads terminate or synchronise in some other way, local histories are combined into global histories, and by resolving the global histories, the reachable state properties can be determined. Our logic is an extension of permission-based separation logic, which supports expressive and intuitive specifications. We discuss soundness of the approach, and illustrate it on several examples. 1