3. Communication and Synchronisation

Side effect

When the side effect transcend the local process then all the access should be synchronised.

The way to Synchronizatiton(shared memory based Synchronization)

  1. flag(towards Synchronization)
    A group of process agree on considering an atomic operation as a flag to indicate synchronization condition.
    Problem: the busy waiting is required and it is not suitable for general mutual exclusion in critical section.
  2. Semaphore(towards Synchronization)
    Problem: it is not bound to any resource or method or region and it scattered all over the code (hard to read and maintain).
  3. Critical regions (distributed Synchronization)
    A set of associated code sections in different process, where are guaranteed to be executed in mutual execution.
    Condition synchronization is provided by guards and Code, data and synchronization primitives are associated.
    Problem:Potential live lock, all the guards need to be re-evaluated, when any critical region is left. The critical region is distributed everywhere with the semaphore.
  4. Monitor:(centralized Synchronization)
    1.collect all the operation with the data structures shared in critical region in one place monitor.
    2.All the operations are regard as the function or procedures.
    3.Only the monitored-functions and procedure can access the data structure.
    4.All the monitored-functions and procedures are mutual exclusion.
    5.Blocked tasks might be ordered and livelocks can be prevented.

Notice:
The signaling and waiting process are both active in the monitor
The signal should be the last action of process before it leaves the monitor.
A signal operation should have side-effect of executing a return statement
The monitor is still on the semaphore level, all the shortage of semaphore exists here.

  1. Protected object(centralized Synchronization )
    Combine the encapsulation feature of the monitor with the coordinated entries of conditional critical regions.
    The synchronization is realized by in the form of Protected procedure.
    1.Fairness inside the operation is guaranteed by queuing(according to their priorities); Fairness across all the operation is guaranteed by the "internal process first" rule.
    2.Reblocking provided by re-queuing to entries.
    3.Protected Function is can have ''in" parameter only and not allowed to modify the private data.

Synchronization by Protected object
The barriers need to be evaluated when on creating a protected object and leaving a protected procedure, entry.
An implement may choose to evaluate barriers on two occasions:

  1. on calling an entry
  2. on leaving a protected object or entry, all potential altered barriers with tasks queued up on them are re-evaluated.

3 important point:
Entry family: An array of protected entries.

Re-queue facility: this operation is to redirect the task to anther entry that can be private or internal... at the same time, the previous entry is finished and lock is released.

Private entries: the one which can not be accessed from the outside of the protected object, always the destination of the Re-queue facility.

3. Communication and Synchronisation_第1张图片
实例

Below operations are limited in the protected object:

  1. entry statement
  2. delay statement
  3. task creation or activation
  4. select statement
  5. accept statement

你可能感兴趣的:(3. Communication and Synchronisation)