高级操作系统讲义f

高级操作系统讲义f

ID:18905811

大小:261.00 KB

页数:19页

时间:2018-09-26

高级操作系统讲义f_第1页
高级操作系统讲义f_第2页
高级操作系统讲义f_第3页
高级操作系统讲义f_第4页
高级操作系统讲义f_第5页
资源描述:

《高级操作系统讲义f》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第九章事务的并发控制9.1信号量:依赖于程序员;不适当的使用会死锁。分布式环境中很难实现,必须保持信号量数据的绝对一致性。管程:编译器支持的编程语言结构。编译器依靠共享内存实现信号量,没有共享内存,就不能使用管程。对事务的调度要保证对共享数据的执行效果与其串行调度等价,服务器可通过串行访问数据项来实现串行等价。19锁:串行结构的实现19可串行性(化):两个事务的全部冲突操作对应相同的顺序执行。为保证可串行性,常用的三种并发控制方法:加锁、乐观并发控制、时间戳定序。1加锁:当事务完成时解锁,当一数据项被加锁,则只有加锁的事务可访问它,其它事务或者等待锁被解

2、开,或者在某种情况下共享锁。使用锁会导致死锁,即事务彼此等待解锁。2乐观法:事务执行到提交前,在允许提交前,服务器完成一个检查,发现已完成的操作是否与相同数据项上的其它并发事务的操作发生冲突,若冲突,服务器终止它。3时间戳定序:服务器记录读写每个数据项的最19近时间,且对每一操作,要比较事务的时间戳和数据项的时间戳,以决定操作是否可立即执行、或被延迟、被拒绝。9.2锁机制读读不冲突读写冲突写写冲突1读锁:其它可读,但不能写,有一个事务即加一个锁;2写锁:写之前获得,不能读或写(再写);LockUnLock操作锁的粒度越小,加锁就可以越精确,也就能实现更大

3、的并行度。同时,锁的粒度越小,就需要更多的锁,这样开销也就越大,也19就更容易导致死锁。9.3乐观并发控制基础:在大多数应用中,两客户的事务访问同一数据项的可能性很小。19三个阶段:1读出阶段:每个事务修改的每个数据项都有一个试用性版本,所有的读操作都是在数据项的提交版本上完成的,不会读出“脏”数据。2验证阶段:当接到CloseTransaction请求,就检验事务是否存在对数据项上的操作与其它事务在同一数据项上的操作发生冲突,若验证通过,则事务提交,若验证失败,则要采用某种形式的冲突解决策略。3写入阶段:若事务通过验证,它的试用性质版本中的所有修改记录

4、将设置成永久的。事务验证即验证采用读/写冲突规则保证其特定事务的调度关于所有其他的重叠事务是串行等价的。19事务验证:是基于一对事务Ti和Tj的操作间冲突的,事务Tj关于一个重叠事务Ti是可串行化的,那么它们的操作必须遵守以下规则。优点:避免了死锁,允许最大的并行度。缺点:有时会失效,所有的事务都必须退回重新运行一遍。在重负载的情况下,比较严重。9.4时间戳定序每个事务开始时都被分配了一个唯一的时间戳,来自事务的申请就可以根据它们的时间戳获得一个全序。服务器可以用自己的时钟来分配时间戳,或者它可采用当分配时间戳时就加1的计数器——“伪时间”。优点:不会出

5、现死锁。19缺点:在于实现的复杂性,这将导致降低性能。19硬件、系统和语言对并发支持的总结19第十章分布式事务事务的ACID特性:原子性一致性独立性持久性分布式事务:其活动涉及多个服务器的事务;嵌套事务:间接涉及多个服务器的客户事务;每个服务器对其本地数据实行本地并发控制,以保证事务在本地可串行,分布式事务必须在全局可串行。在某些情况下,事务在本地服务器上是串行的,但同时可以发生不同服务器间的依赖循环,从而导致死锁。分布式事务的协调者事务的第一个服务器成为事务的协调者,负责终止或提交事务,以19及增加其他被称为参与者的服务器,协调者管理着一个参与者表列,

6、而每个参与者都记录了协调者服务器的标识。原子提交协议:两阶段提交协议191919两阶段提交协议中的超时若协调者失败了,则参与者不能获得应答直到协调者重新启动,这会导致参与者处于不确定状态的额外延迟。当客户发送了closetransaction给协调者,参与者只能检测到这种情况:长时间没有特定事务的请求。由于在这个时期没有作出决定,参与者可在一段时间后单向决定终止。事务实现中的问题:(1)预读写如果一个事务对一个数据进行读操作,而这个数据正在被其他将要退出的事务操作,这时预读问题就发生了。如果一个事务对一个数据进行写操作,而这个数据正在被另一个事务操作,预

7、写问题。19涉及到独立事务的相互作用。事务管理服务采用延迟执行就可以避免这些问题的发生。延迟执行使得正在被事务操作的数据不能被其他事务读写,直到当前事务进入提交阶段或者中途退出。延迟会降低系统的性能。(2)中途退出(dominoeffect)如果其他事务看到了与退出的事务有关的结果,这个事务的退出可能遭受dominoeffect。任何以预写的数据为执行基础的事务在预写的事务中途退出后,也都必须退出。(3)保证恢复能力如果另一个未完成的提交请求涉及到相同的数据,则应延迟当前19的提交。暂时拷贝可以保存在本地的易失存储器中,如果一直不进入提交阶段,则删除暂时

8、拷贝。如果进入提交阶段,则把暂时拷贝复制到永久的不易丢失的存储器中。分布式事务的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。