
Another consistency model that has been designed to be used with critical sections is entry consistency. Like both variants of release consistency , it requires the programmer to use acquire and release at the start and end of each critical section, respectively. However, unlike release consistency, entry consistency requires each ordinary shared variable to be associated with some synchronization variable such as a lock or barrier. If it is desired that elements of an array be accessed independently in parallel, then different array elements must be associated with different locks. When an acquire is done on a synchronization variable, only those ordinary shared variables guarded by that synchronization variable are made consistent. Entry consistency differs from lazy release consistency in that the latter does not associate shared variables with locks or barriers and at acquire time has to determine empirically which variables it needs.
Formally, a memory exhibits entry consistency if it meets all the following conditions :
![]()
![]()
![]()
DSM Home Subway Consistency Release Page Map Models Consistency