一.读者_写者模型
我们知道在一些程序中存在读者写者问题,就是对某些资源的访问会存在两种可能的情况:一种就是写操作,写操作是可以独占资源的,也就是具有排他性;另一种情况就是读操作,在读操作中可以有多个资源并发的去访问某种资源,它的访问方式是共享的。这种模型是从对文件的读写操作中总结出的一种模型。
1.在读者和写者的这种模型中,存在3种关系,他们是:
1).读者和读者之间,读者与读者之间是可以并发的访问某种资源的,所以他们之间是没有关系的。
2).读者和写者之间,我们知道对一个文件来说是不可以既读又写的,可能会导致数据的二义性问题。读者和写着之间是互斥和同步的关系。
3).写着和写着之间,存在互斥的关系。
2.在上面描述读者写者关系中提到了互斥和同步,那仫为什仫要保证互斥和同步的关系呢?
互斥:指某一种资源某一时刻只能允许一个访问者对它进行访问,具有唯一性和排他性。但是资源的互斥是无法保证访问者对资源的访问顺序的,即如果有多个访问者访问该资源时,访问是无顺序的。
同步:同步是在互斥的基础上(大多数是互斥+同步,有的情况下只需要同步),通过一些机制实现访问者对资源的有序访问
理解了互斥和同步让我们继续来看读者和写者问题