预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共64页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第五章分布式系统文件共享5.1共享文件的语义两个以上的用户共享同一个文件时会产生多种情况从而产生不同的语义.故文件服务时必须精确定义服务的读写语义。一.UNIX语义(时间顺序)对于单处理机而言在UNIX系统中其读操作的语义是读取的结果是它前面最近一次写操作形成的结果。写操作的语义是若先后连续有两个写操作则文件结果决定于后面的写操作。因此最后形成的语义是严格意义下的时间序操作。在对分布式文件系统中的文件进行读操作时能看到以前所有对该文件执行写操作的效果。特别是客户对于已打开文件的写操作可立即为其它打开此文件的客户所见。客户可共享文件当前位置的指针。这样一个客户将指针向前推进时将影响所有共享客户的视图。此种语义的特点是易于理解和实现。二.会话语义对于打开文件的写操作可以立即为本地客户所见远程的客户也同时打开该文件但却不可见。一旦文件关闭对此文件所作的修改仅为后面进行的操作所见该文件已经打开的各副本不表现这些修改.三.不可改变文件语义一但文件为共享文件则所有用户均不能再修改它。这里的不可改变有两个含义:一是其名字不可再变;二是其内容不可改变。这样不可改变的文件的名字代表该文件的固定内容而不再是信息存储机制。这一语义非常简单易于实现但应用起来很不灵活.四.事务语义用户若要访问一个文件或了组文件首先要执行一个启动事务的操作表示下面的操作必须独立执行然后对文件进行读写操作当工作完成后再执行一个结束事务的操作。其关键特性是保证事务期间的所有文件操作按序执行而不受其它用户的干扰也就是说在事务内部严格具有UNIX语义、显然事务语义是一种比较实用的文件语义。事务的完成要求一个客户机与一个或几个服务器进行协作。5.2原子事务在分布式系统中原子事物又简称事物事务实际上就是一组逻辑上连续执行的操作其具有动态性有三种状态:①提交事务中的文件数据项的修改永久保存②中止由于同其他事务冲突或硬件故障导致事务中止③临时事务执行中的存在的临时状态5.2.1事务的特性事务具有以下四个特性简称ACID特性①原子性(Atomic):即事务的作用要么完整要么没有。②一致性(Consistent):事务处理不影响系统中的不变性:意思是当系统具有某种不变特性需要保持时在事务执行前后该不变性一定要保持。例如银行业务系统中有一个关键的不变特性是“金钱不灭”经过内部任何转帐之后银行的总钱数是不变的。③孤立性(Isolated):并发的事务不会相互影响多个事务处理可并发执行其结果和各事务处理串行执行结果一样也叫串行等价性。三个事务A、B、C被三个独立的进程同时执行若顺序执行其结果为1、2或3BEGIN_TRANSACTIONABEGIN_TRANSACTIONBBEGIN_TRANSACTIONCX=0;X=0;X=0;X=X+1;X=X+2;X=X+3;END_TRANSACTIONEND_TRANSACTIONEND_TRANSACTION时间④持久性(Durable):如果事务处理成功完成、则结果将永不消失除非发生硬故障。5.2.2事务需求银行服务的例子5.3并发控制并发控制的主要目标是满足事务处理的一致性(串行等价性)最早的方法:A.某一时刻只允许执行一个事务B在启动多个事物操作之前先检查是否满足一致性缺点:解决的不好.为弥补不足.提出下面三种方法.5.3.1加锁当某一事务访问一共享数据项时由服务器对该数据项加锁当完成访问时再由服务器开锁以便于其它事务访问。在上锁期间只有锁定该数据项的事务才能对其访问这样就保证了在某一时刻访问数据进程的唯一性和确定性。一.基本原理一个锁可由三都分组成:①一个二值逻辑变量用以指示上锁/开锁;②一个类似于信号灯的条件变量;③访问该锁的宿主事务标识符实现上锁机制时需要注意锁的粒度。粒度是指被加锁的数据项的大小粒度越细则并行度越高反之并行度越低。对整个文件