Operating Systems: Three Easy Pieces阅读笔记(四)FILE SYSTEM- VSFC&FSCK
2016-03-01 20:03
495 查看
very simple file system(VSFS)
superblock:记录了系统的类型,inodes数量,data region数量,inodes的起始位置,还包含指向free block的指针
bitmap:
用位表示block的使用情况,0表示free,1表示in-used,用两个bitmap:
分别代表inodes和data region
inodes:
即index nodes,类似数组的形式存在inode table中,用inumber标识不同的inode,根据inode table的起始地址和inumber所代表的偏移量,可以计算出该inode所在的位置。inodes储存了关于文件的关键信息metadata,其中block中含有指向该文件所在block的指针。
当文件过大时,采用一个额外的间接指针指向另一个block,该block继续储存着该文件所在block的指针;另外一个办法是,用指针和长度表示文件所在block,但要求其分布需要是连续的。
data region:储存用户数据。如果是directory的话储存着用户名字->inodes 的对应关系
file system checker(FSCK)
采用环状队列的数据结构,在journal的superblock中有指向队首和队尾的指针。
call write() -> batch write() in memory caches -> write data to its final position -> log inode and bitmap ->commit ->check point ->free
相关文章推荐
- 使用OS Watcher监控操作系统
- 什么是Mac OS X?跟Linux有什么区别
- DOS命令全集(一)
- DOS下内存的配置
- SqlServer应用之sys.dm_os_waiting_tasks 引发的疑问(中)
- SqlServer应用之sys.dm_os_waiting_tasks 引发的疑问(上)
- 基于SQL Server OS的任务调度机制详解
- mac系统OS X10.10版本安装最新5.7.9mysql的方法
- DOS下的必备工具
- SqlServer应用之sys.dm_os_waiting_tasks 引发的疑问(下)
- DOS 下的批处理文件
- 在MAC OS X上安装MYSQL
- python使用os模块的os.walk遍历文件夹示例
- 举例详解Go语言中os库的常用函数用法
- DOS命令全集(二)
- iOS、Mac OS X系统中编程实现汉字转拼音的方法(超级简单)
- Python os模块介绍
- Python os模块中的isfile()和isdir()函数均返回false问题解决方法
- Python os模块学习笔记
- 使用os包和flag包实现读取main命令入参