Communicating sequential processes
Communicating sequential processes
Synchronous operations as first-class values
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
Communication and concurrency
Modula-3
Higher-order concurrency
Extensibility safety and performance in the SPIN operating system
SOSP '95 Proceedings of the fifteenth ACM symposium on Operating systems principles
Concurrent programming in ML
Programming languages as operating systems (or revenge of the son of the lisp machine)
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
Guardians and Actions: Linguistic Support for Robust, Distributed Programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Pilot: an operating system for a personal computer
Communications of the ACM
Asynchronous exceptions in Haskell
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
Termination in language-based systems
ACM Transactions on Information and System Security (TISSEC)
Transactional Rollback for Language-Based Systems
DSN '02 Proceedings of the 2002 International Conference on Dependable Systems and Networks
Luna: a flexible Java protection system
OSDI '02 Proceedings of the 5th symposium on Operating systems design and implementationCopyright restrictions prevent ACM from being able to make the PDFs for this conference available for downloading
Processes in KaffeOS: isolation, resource management, and sharing in java
OSDI'00 Proceedings of the 4th conference on Symposium on Operating System Design & Implementation - Volume 4
Implementing multiple protection domains in java
ATEC '98 Proceedings of the annual conference on USENIX Annual Technical Conference
The design and implementation of an operating system to support distributed multimedia applications
IEEE Journal on Selected Areas in Communications
Composable memory transactions
Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming
The KaffeOS Java runtime system
ACM Transactions on Programming Languages and Systems (TOPLAS)
AtomCaml: first-class atomicity via rollback
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
Stabilizers: a modular checkpointing abstraction for concurrent functional programs
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
Deconstructing process isolation
Proceedings of the 2006 workshop on Memory system performance and correctness
Specialization of CML message-passing primitives
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Manticore: a heterogeneous parallel language
Proceedings of the 2007 workshop on Declarative aspects of multicore programming
Modular Checkpointing for Atomicity
Electronic Notes in Theoretical Computer Science (ENTCS)
Sealing OS processes to improve dependability and safety
Proceedings of the 2nd ACM SIGOPS/EuroSys European Conference on Computer Systems 2007
Status report: the manticore project
ML '07 Proceedings of the 2007 workshop on Workshop on ML
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
Journal of Functional Programming
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
A concurrent ML library in concurrent Haskell
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
Failboxes: Provably Safe Exception Handling
Genoa Proceedings of the 23rd European Conference on ECOOP 2009 --- Object-Oriented Programming
Communications of the ACM
A fair protocol for non-deterministic message passing
Proceedings of the Third C* Conference on Computer Science and Software Engineering
Lightweight checkpointing for concurrent ml
Journal of Functional Programming
Programming in Manticore, a heterogenous parallel functional language
CEFP'09 Proceedings of the Third summer school conference on Central European functional programming school
Composable asynchronous events
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Temporal higher-order contracts
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
Places: adding message-passing parallelism to racket
Proceedings of the 7th symposium on Dynamic languages
Ribbons: a partially shared memory programming model
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Hi-index | 0.02 |
When an individual task can be forcefully terminated at any time, cooperating tasks must communicate carefully. For example, if two tasks share an object, and if one task is terminated while it manipulates the object, the object may remain in an inconsistent or frozen state that incapacitates the other task. To support communication among terminable tasks, language run-time systems (and operating systems) provide kill-safe abstractions for inter-task communication. No kill-safe guarantee is available, however, for abstractions that are implemented outside the run-time system.In this paper, we show how a run-time system can support new kill-safe abstractions without requiring modification to the run-time system, and without requiring the run-time system to trust any new code. Our design frees the run-time implementor to provide only a modest set of synchronization primitives in the trusted computing base, while still allowing tasks to communicate using sophisticated abstractions.