Changes between Version 55 and Version 56 of Language


Ignore:
Timestamp:
05/25/23 06:28:03 (3 years ago)
Author:
Alex Wilton
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Language

    v55 v56  
    329329
    330330Semantics: there is a global atomic lock which is initially free.
    331 A process attempting to execute an atomic statement will wait until the atomic lock becomes free, i.e., no other process is inside an atomic statement.
    332 The process must also wait until the guard of the atomic statement holds; this means that the first sub-statement of the statement is enabled.
    333 Once the atomic lock is free and the guard holds, the atomic statement becomes enabled and the process may enter the atomic statement.
     331The global atomic lock can be obtained by a process by entering an atomic statement.
     332Whenever the lock is held by some process, all other processes must wait until the atomic lock becomes free to continue execution.
     333The guard of an atomic statement is simply the guard of the first sub-statement of the atomic statement.
     334So, a process may only enter an atomic statement if the lock is free (or if the process already owns the lock) and the guard holds.
    334335The process may not necessarily enter the atomic statement as soon as these conditions hold, because some other enabled process may be scheduled first.
    335336In fact, some other process may obtain the atomic lock.