虚拟文件系统和高速缓存区
来源:互联网 发布:整容整形网络咨询师 编辑:程序博客网 时间:2024/06/05 21:10
虚拟文件系统(VFS)
为用户空间程序提供了文件和文件系统相关的接口。内核在它的底层文件系统接口上建立了一个抽象层。vfs定义了所有文件系统都支持的基本的接口和数据结构。
VFS对象
超级块对象,索引节点对象,目录项对象,文件对象以及它们的操作对象。
超级块对象:用于存储特定文件系统的信息。 magic,dirty,s_op
索引节点对象:包含了内核在操作文件和目录时需要的全部信息。仅在文件被访问时,才在内存中创建。 dirty
目录项对象:每个目录项代表路径中的一个特定部分。 /bin/vi inode,
文件对象:表示进程已打开的文件
linux文件系统
为用户空间程序提供了文件和文件系统相关的接口。内核在它的底层文件系统接口上建立了一个抽象层。vfs定义了所有文件系统都支持的基本的接口和数据结构。
VFS对象
超级块对象,索引节点对象,目录项对象,文件对象以及它们的操作对象。
超级块对象:用于存储特定文件系统的信息。 magic,dirty,s_op
索引节点对象:包含了内核在操作文件和目录时需要的全部信息。仅在文件被访问时,才在内存中创建。 dirty
目录项对象:每个目录项代表路径中的一个特定部分。 /bin/vi inode,
文件对象:表示进程已打开的文件
linux文件系统
引导块,超级块,空闲空间管理(块位图,inode位图),索引节点表(i-node table),数据块(data block)
文件类型
“-”正规文件(文本文件和二进制文件)
“d”目录
“s”, ”l”符号链接
“p”管道
“c”字符设备文件
“b”块设备文件
高速缓存区
位于内核代码块和主内存区之间。
高速缓存区在块设备和内核其他程序之间起一个桥梁的作用。
高速缓存头结构(双向循环链表,空闲链表),缓存块
高速缓存头结构:b_prev, b_next, b_prev_free, b_next_free
free_list 头指针,指向空闲块链表中第一个最为空闲缓存块
为了能快速有效的在缓存区中寻找判断出请求的数据块是否已经读入到缓存区中,buffer.c使用了一个具有307个buffer_head指针项(散列项)的hash数组表结构。
更新和同步
任何同步操作都被分成俩个阶段,
(1)数据结构信息和高速缓存区的缓存块同步问题,由驱动程序独立负责。
(2)高速缓存区中数据块和磁盘对应块的同步问题,由缓存管理程序负责。
0 0
- 虚拟文件系统和高速缓存区
- 虚拟存储器和高速缓存总结
- 关于虚拟存储器和高速缓存的理解
- linux文件系统体系结构 和 虚拟文件系统(VFS)
- linux文件系统体系结构 和 虚拟文件系统(VFS)
- linux的文件系统和虚拟文件系统(VFS)
- Linux内核源码分析--文件系统(二、高速缓存区)
- Linux虚拟文件系统(三)驱动和虚拟文件系统读书笔记
- Linux内核-文件系统-页高速缓存
- 创建分区和文件系统、虚拟文件系统,Swap区——Redhat
- 虚拟文件系统
- 虚拟文件系统
- 虚拟文件系统
- 虚拟文件系统
- 虚拟文件系统
- 虚拟文件系统
- 虚拟文件系统
- 虚拟文件系统
- Centos 6.4 python 2.6 升级到 2.7
- Uva10152
- Java字符串处理之详解String自带方法
- leetcode 176. Second Highest Salary
- java反射机制详解
- 虚拟文件系统和高速缓存区
- 基本操作_Scanner_String
- Hibernate小结
- 第十四周阅读程序——1
- ACM天梯赛练习L1-005. 考试座位号
- MySQL语法(二 )--update--and 和 or--order by--delect(数据的操作)----drop(库的操作)
- 第十/十一周项目六-是春哥啊
- 求两个数的最大公约数
- 统一建模语言 UML