假设我们新增一个文件时,文件系统的行为是:
- 1:先确定用户对于欲新增文件的目录是否有w与x的权限,有的话才能新增。
- 2:根据inode bitmap找到没有使用的inode号码,并将新的权限、属性写入。
- 3:根据block bitmap找到没有使用的block号码,并将实际数据写入block中,且更新的inode的block指向数据。
- 4:将刚刚写入的inode与block号码数据同步更新inode bitmap 及 block bitmap,并更新superblock的内容。
日志式文件系统:
在文件系统中划出一个区块专门记录写入或修改文件时的步骤,这样就可以简化一致性检查的步骤了。
- 1:预备:当系统要写入一个文件时,会先在日志记录区块中记录某个文件准备要写入的信息。
- 2:实际写入:开始写入文件的权限与数据;更新中介数据的数据。
- 3:结束:完成数据与中介数据的更新后,在日志记录区块当中完成该文件的记录。
在这样的程序中,万一数据的记录过程当中出现了问题,那么通过检查日志记录区块就会很快的知道哪个文件发生了问题,然后对该文件进行一致性检查,这样比一一比对快的多了。这就是日志式文件系统最基础的功能。