OK6410A 开发板 (八) 89 linux-5.11 OK6410A 文件系统访问加速及一致性策略

发布者:Shuxiang最新更新时间:2022-08-16 来源: csdn关键字:OK6410A  开发板  11 手机看文章 扫描二维码
随时随地手机看文章

在磁盘文件系统是怎么 用以内存为cache加速访问 并 处理内存与实际硬盘文件系统的差异


在文件系统这一块实现了 "高速缓存" 中的 文件系统相关部分

1. dentry 高速缓存 dentry cache

2. inode 高速缓存 inode cache

3. super_block 高速缓存

4. 页高速缓存 page cache

5. 缓冲区高速缓存 buffer cache

6. 块高速缓存 block cache


superblock结构体/inode 缓存/dcache缓存/buffer cache/block cache / page cache/swap


总体描述

在关机时, 文件系统只存在于硬盘上

在开机后, 文件系统被挂载, 存在于硬盘和内存中 // 存在内存中,是因为要加速访问 , 硬盘和内存的访问延迟是多少,TODO

硬盘中是原始的文件

内存中是硬盘的copy和解析 // 具体看copy 哪些看文件系统实现

解析出了 super_block : 文件系统的信息

解析出了 inode : 该文件系统下,文件被支持的操作及文件的属性等

解析出了 dentry : 该文件系统下,各种文件的层次目录

copy出了 address_space : 该文件系统下, 某个文件的内容


一致性问题:

可以看出,一份内容(文件系统)有两份存在(硬盘和内存)

那么保证 硬盘和 内存中 文件系统的一致性 就很有必要.

在这里插入图片描述

分类描述

block cache

buffer_head

随着日渐倾向于使用基于也操作实现的通用文件存取方法,block cache 作为中暑系统缓存的重要性已经逐渐失去,主要的缓存任务由 page cache 来承担.

另外,基于 块 的 IO的标准数据结构,现在已经不是缓冲区,而是 struct bio


page cache

页高速缓存

struct address_space


buffer cache

缓冲区高速缓存 从 linux2.4起,并入 page cache

关键字:OK6410A  开发板  11 引用地址:OK6410A 开发板 (八) 89 linux-5.11 OK6410A 文件系统访问加速及一致性策略

上一篇:OK6410A 开发板 (八) 90 linux-5.11 OK6410A linux文件系统导读
下一篇:OK6410A 开发板 (八) 86 linux-5.11 OK6410A linux 调试总览

推荐阅读最新更新时间:2024-10-24 08:14

OK6410A 开发板 (八) 89 linux-5.11 OK6410A 文件系统访问加速及一致性策略
在磁盘文件系统是怎么 用以内存为cache加速访问 并 处理内存与实际硬盘文件系统的差异 在文件系统这一块实现了 高速缓存 中的 文件系统相关部分 1. dentry 高速缓存 dentry cache 2. inode 高速缓存 inode cache 3. super_block 高速缓存 4. 页高速缓存 page cache 5. 缓冲区高速缓存 buffer cache 6. 块高速缓存 block cache superblock结构体/inode 缓存/dcache缓存/buffer cache/block cache / page cache/swap 总体描述 在关
[单片机]
<font color='red'>OK6410A</font> <font color='red'>开发板</font> (八) 89 linux-5.<font color='red'>11</font> <font color='red'>OK6410A</font> 文件系统<font color='red'>访问</font><font color='red'>加速</font>及一致性策略
OK6410A 开发板 (八) 96 linux-5.11 OK6410A文件的访问 open-mmap-close
用户空间用的mmap函数,是glibc 提供的 声明通过 man mmap 查找 #include sys/mman.h void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset); mmap 其中的一个用途(共享文件映射/私有文件映射) 是 访问文件 demo #include sys/mman.h #include sys/stat.h #include fcntl.h #include stdio.h #include stdlib.h #include unistd.h #inclu
[单片机]
OK6410A 开发板 (八) 99 linux-5.11 OK6410A 文件访问实例mmap与read的比较
mmap 和 write 的实现 他们两个的实现,其实重点都在 linux 中,所以要比较 他们的区别,要注意 以下流程 在 linux 内核中的区别 open - addr=mmap(...); - addr - close open - read - close 相同点 要将 磁盘上的文件内容 搞到 用户能访问到的内存 里面,需要关注以下数据及过程,mmap和read都做了这些工作 1.硬盘中文件 的 起始硬盘地址 和 长度 2. 内核空间的虚拟内存地址 和 对应的 物理内存地址A 和 映射关系A 3. 用户空间的虚拟内存地址 和 对应的 物理内存地址B 和 映射关系B 4.文件内容从
[单片机]
OK6410A 开发板 (八) 123 linux-5.11 OK6410A rootfs中留给开发者的内存访问接口
与内存相关的文件系统 我们如果想用rootfs中的文件来观测内存或更改内存行为 则需要观测的文件所属的文件系统 为 内核文件系统 // https://blog.csdn.net/u011011827/article/details/119322870 中的 linux 真实文件系统分类 相关的文件系统有以下几种 sysfs,procfs,rootfs,devtmpfs,debugfs 可以从 /proc/filesystems中查看 当前的linux系统中注册了哪些 系统,在从中根据经验挑选出 内核文件系统 可以 利用 mount 来查看 这些文件系统挂载到哪个目录(挂载点)了 如果没有挂载,可以尝试用mount 命令挂载
[单片机]
OK6410A 开发板 (六) 2 OK6410A linux-5.11 移植
$ arm-linux-gnueabi-gcc --version arm-linux-gnueabi-gcc (Linaro GCC 7.4-2019.02) 7.4.1 20181213 Copyright (C) 2017 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. arch/arm/configs/s3
[单片机]
OK6410A 开发板 (六) 3 OK6410A linux-5.11编译分析
订阅专栏 linux编译对host环境的要求 Documentation/process/changes.rst 编译过程 1. 杂项 SYSHDR arch/arm/include/generated/uapi/asm/unistd-common.h sh './arch/arm/tools/syscallhdr.sh' 'arch/arm/tools/syscall.tbl' 'arch/arm/include/generated/uapi/asm/unistd-common.h' 'common' '' '__NR_SYSC
[单片机]
OK6410A 开发板 (三) 11 u-boot-2021.01 boot 解析 U-boot 镜像运行部分 命令的执行
1.命令的注册 2.命令的调用 3.命令的执行 4.命令的返回 1 命令的注册(以help为例) cmd/help.c 10 static int do_help(struct cmd_tbl *cmdtp, int flag, int argc, 11 char *const argv ) 12 { 13 #ifdef CONFIG_CMDLINE 14 struct cmd_tbl *sta
[单片机]
OK6410A 开发板 (六) 4 OK6410A linux-5.11 镜像生成过程解析
linux-5.11 镜像 的生成过程 vmlinux -objcopy- arch/arm/boot/Image arch/arm/boot/Image -gzip & add arch/arm/boot/compressed/head.S- arch/arm/boot/compressed/vmlinux arch/arm/boot/compressed/vmlinux -objcopy- arch/arm/boot/zImage arch/arm/boot/zImage -mkuboot- ar
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved