面试题答案
一键面试基本原理
文件系统日志记录了文件系统的关键操作,如元数据修改、数据块分配等。当操作系统崩溃后,利用日志可以重演或回滚这些操作,确保文件系统恢复到崩溃前的一致性状态。其核心基于事务的概念,将一组相关操作视为一个原子事务,要么全部完成,要么全部取消。
基本步骤
- 日志扫描:操作系统重启后,文件系统驱动程序首先定位并读取日志。从日志头部开始扫描,识别其中记录的事务。
- 重做阶段:
- 对于已经提交的事务,系统会按照日志记录,重新执行这些事务中的操作。例如,如果日志记录了某个文件元数据的修改操作,系统会再次执行该修改,将文件元数据恢复到崩溃前已提交的状态。
- 此过程确保已完成的事务对文件系统的影响被正确应用,即使这些操作在崩溃时部分完成。
- 回滚阶段:
- 对于未提交的事务,系统会根据日志记录撤销这些事务中已经执行的操作。比如,若某个事务在分配数据块过程中系统崩溃,回滚操作会释放这些已分配但未完全使用的数据块,防止文件系统出现不一致,如数据块被错误标记为已分配但实际未完整写入数据的情况。
- 日志清理:完成重做和回滚操作后,文件系统已恢复到一致性状态。此时,日志中已处理的记录可以被清理,为新的事务记录腾出空间。