State Abstraction-based Synchronization for Thread Libraries
Atsuo Ohki, Yasushi Kuno · 2007
“State Abstraction ” is a framework in which states of a data structure (or an object) are divided into small number of state is explicitly managed by the code. In “State Abstraction-based Synchronization ” (or AST-sync), abstract states of the data structure guarded by a critical region are similarly managed, and an activities can enter the region only when current state is included in the pre-specified set. For example, in a bounded buffer, “get ” operation can proceed only in “full ” or “mid ” state, but not in “empty ” state. AST-sync can express conditional synchronization in concise and readable manner, and can be efficiently implemented. Today, thread libraries are widely used for concurrent programming on shared-memory multiprocessors. On POSIX thread and other well-known thread libraries, condition variables are used for conditional inter-thread