[深入理解文件系统之十] ext2中重要的数据结构

简介:


 如果把文件系统比作一个大楼的话,它的数据布局方式和内部数据结构就是高楼的基础和框架,因此理解了它的数据布局方式和数据结构就能对数据结构有一个整体的认识。ext2作为一个经典的文件系统,不失作为一个号的入口


1. ext2文件系统的数据拓扑结构:

wKioL1j1rFXhK4TmAAA-B1gNwKA408.png


2. ext2重要的数据结构如下


wKioL1j1rLGCqgWVAALKGSPQEFA590.png


3. ext2 数据结构内部关系


wKioL1j1rQzRbK5EAABt_ufwpc8140.png


4. Linux  文件系统中的cache:

inode cache, Directory cache,buffer cache,

上面这些cache再加上内存里面的 file table, 以及外面的supper block构成了主要的meta data.


Linux文件系统发展到2.4之后的变化包括:

1.数据流向page cache

2.每一个打开的文件都有一个dcache引用,而且它自身在dcache中有一个条目;

3.类似SVR4 vnodeops的移植

4. SMP-based 锁机制的实现,以便提高SMP系统性能


2.4x内核中和文件系统访问相关的主要数据结构如下:





















本文转自存储之厨51CTO博客,原文链接:http://blog.51cto.com/xiamachao/1916998 ,如需转载请自行联系原作者







相关文章
|
4天前
|
机器学习/深度学习 算法 测试技术
【单调栈】3113. 边界元素是最大值的子数组数目
【单调栈】3113. 边界元素是最大值的子数组数目
|
2天前
栈的基本应用
栈的基本应用
10 3
|
2天前
栈与队列理解
栈与队列理解
8 1
|
2天前
|
存储 算法
数据结构与算法 栈与队列
数据结构与算法 栈与队列
7 0
数据结构与算法 栈与队列
|
2天前
|
C++
数据结构(共享栈
数据结构(共享栈
6 0
|
2天前
|
C++
数据结构(顺序栈
数据结构(顺序栈
8 2
|
3天前
|
容器
【栈与队列】栈与队列的相互转换OJ题
栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。
10 0
|
3天前
|
存储
【栈】基于顺序表的栈功能实现
栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端 称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。
11 0
|
3天前
|
存储 程序员
什么是堆,什么是栈
什么是堆,什么是栈
5 0