This memo is based on the course of Dr.Li with Operating System as the reference book.
本章内容:
- 原子事务
原子事务
6.9.1 系统模型
执行单个逻辑功能的一组指令或操作称为事务。可以认为事务是访问且可能更新各种驻留在磁盘文件中的数据项的程序单元。
从用户观点来看,事务只是一系列read 操作和write 操作, 井以commit 操作或abort 操作终止。
操作commit 表示事务已成功执行;操作abort 表示因各种逻辑错误,事务必须停止执行。已成功完成执行的终止事务称为提交(commited); 否则, 称为撤销(aborted ) 。
被中止的事务所访问的数据状态必须恢复到事务刚刚开始执行之前,即这个事务已经回退(rolled back ) 。确保这一属性是系统的责任。
为了决定系统如何确保原子性,首先需要识别用于存储事务所访问的各种数据的设备的属性。不同类型的存储介质可以通过它们的相对速度、容量和容错能力来区分。
- 易失性存储:驻留在易失性存储上的信息通常在系统崩溃后不能保存。内存和高速缓存就是这种存储的例子。对易失性存储的访问非常快, 这是由于内存访问本身的速度以及易失性存储内的任何数据项都可以直接访问。
- 非易失性存储:驻留在非易失性存储上的信息通常在系统崩溃后能保存。磁盘和磁带就是这种存储介质的例子。磁盘比内存更为可靠,磁带比磁盘更为可靠。然而,磁盘和磁带也会出错,从而导致信息遗失。当前,非易失性存储要比易失性存储慢几个数量级,因为磁盘和磁带设备为机电的且要求物理运动以访问数据。
- 稳定存储:驻留在稳定存储上的信息绝不会损失(“绝