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.

实例

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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • **2014真题Directions:Read the following text. Choose the be...
    又是夜半惊坐起阅读 9,984评论 0 23
  • 有些人好像注定是失败者,我说的其实是我自己,有的人有颜值,有的人有才华,而我什么都没有,却又不甘于这样,自我感觉良...
    无趣人生1111阅读 163评论 0 0
  • 去大铁勺小吃吃了两次油泼面,我和胖子说我也会做,胖子露出鄙夷的眼神,我却暗暗下了决心,有时间就做给你看! 后来从网...
    gg2016阅读 1,329评论 0 0
  • 3/14 晨读感悟 001 关于特立独行 与众不同 之前的定义只是觉得和别人不一样即可,做事也是只要证明和别人不一...
    射手先森阅读 200评论 0 0
  • 1、 昨天有个妹子和我说她的家庭境况其实和我的家庭境况也挺相似,因此我写了很多关于自己家里的事情。有人评论说让我不...
    柳木雨阅读 1,795评论 3 3