OK6410A 开发板 (八) 95 linux-5.11 OK6410A linux高速缓存

高速缓存,也称为缓存,是计算机系统中提高数据访问速度的关键技术。它通过将常用数据存储在快速但昂贵的存储层级,如L1、L2和L3缓存,来减少对较慢但成本较低的内存的访问。文件系统中的高速缓存,如dentry、inode和pagecache,加速了文件操作。此外,内存管理中的交换高速缓存用于在物理内存紧张时将数据交换到磁盘。缓存管理涉及何时缓存、缓存什么、如何同步以及何时淘汰等问题。slab是一种内存高速缓存机制,用于更高效地分配和回收内存。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

高速缓存是什么

存储器在访问(读写)速度上有 金字塔等级架构

高速缓存 其实就是缓存, 高速只是缓存的一个特性(高等级的内存相对于低等级的内存)

缓存 其实 就是 将 低等级存储中的数据 放置到 高等级存储中

可以这么说,高等级存储 就是 低层级存储的缓存

在这里,我们有时候将 缓存 看成一个动词(将 低等级存储中的数据 放置到 高等级存储中 这个动作),有时候也被看成一个名词(高等级存储中的数据)

缓存的理论分析
源数据在哪个等级都有
	在cache等级有 二进制指令
	在物理内存等级有 二进制指令
	在物理内存等级有 页表数据
	在本地磁盘等级有 文件
	在本地磁盘等级有 二进制指令
	在网络磁盘等级有 文件

而我们总是想把 源数据 放置到内存金字塔中更高一层(甚至两层的)位置
	在cache等级有 二进制指令				, 想要将其缓存到 寄存器
	在物理内存等级有 二进制指令			, 想要将其缓存到 cache
	在物理内存等级有 页表数据				, 想要将其缓存到 TLB
	在本地磁盘等级有 文件 				, 想要将其缓存到 物理内存
	在本地磁盘等级有 二进制指令 			, 想要将其缓存到 物理内存
	在网络磁盘等级有 文件 				, 想要将其缓存到 本地磁盘
源数据在哪个等级都有
	在cache等级有 二进制指令
	在物理内存等级有 二进制指令
	在物理内存等级有 页表数据
	在本地磁盘等级有 文件
	在本地磁盘等级有 二进制指令
	在网络磁盘等级有 文件

当高等级资源紧张的时候我们总是 把源数据 放置到内存金字塔中更低一层的位置
	在物理内存等级有 二进制指令			, 想要将其swap到 本地磁盘
	在物理内存等级有 数据					, 想要将其swap到 本地磁盘

这样子,我们就可以使用 原先被 (数据/二进制指令) 占用的 物理内存 中 放置其他的二进制

当我们还要用这些 (数据/二进制指令) 的时候 ,我们再把他们 从 硬盘 回来

当内存再次紧张的时候, 我们会第二次 将其 swap 到本地磁盘
	在 将其 swap 到本地磁盘前,此时 同一个(数据/二进制指令) 存在于 内存和磁盘, 我们考虑
		如果第一次 load 到内存之后,页面没被修改,就不用swap到本地磁盘,(因为内存中的数据和磁盘是一摸一样的)
		如果第一次 load 到内存之后,页面有被修改,就需要swap到本地磁盘,(因为内存中的数据和磁盘是不一样的)


为了达到这种目的 : "对应同一个页表,本地磁盘页表数据和内存页表数据一样的情景下不再swap"
我们需要维护 脏的swap内存页 组成的 数据结构, 只 写回 此数据结构中的 成员

缓存需要解决的问题
	1. 什么时候缓存
	2. 缓存什么
	3. 从哪一级别缓存到哪一级别
	4. 保持缓存与源数据的同步
	5. 缓存什么时候被删除

高速缓存实例
  • 硬件 soc (与linux无关,与代码无关)
L1 cache
L2 cache
Lx cache
TLB
  • 文件系统-文件缓存
在文件系统这一块实现了 "高速缓存" 中的 文件系统相关部分
	1. dentry 高速缓存 dentry cache
	2. inode 高速缓存 inode cache
	3. super_block 高速缓存
	4. 页高速缓存 page cache
	5. 缓冲区高速缓存 buffer cache
	6. 块高速缓存 block cache
  • 文件系统-可执行二进制缓存
	1. load 二进制文件到 内存
	2. load share 文件到 内存

// 按道理 二进制文件也是 文件 , 可不可以按 文件缓存 分类呢?
  • 内存
交换高速缓存
	为了达到这种目的 : "对应同一个页表,本地磁盘页表数据和内存页表数据一样的情景下不再swap"
	我们需要维护 脏的swap内存页 组成的 数据结构, 只 写回 此数据结构中的 成员
其他高速缓存
  • slab 是相对于 buddy的 缓存
slab 机制 提供 kmem_cache_alloc
kmem_cache_alloc 得到的内存空间被称为 内存高速缓存 
内容概要:本文档提供了关于“微型车间生产线的设计与生产数据采集试验研究”的毕业设计复现代码,涵盖从论文结构生成、机械结构设计、PLC控制系统设计、生产数据采集与分析系统、有限元分析、进度管理、文献管理和论文排版系统的完整实现。通过Python代码和API调用,详细展示了各个模块的功能实现和相互协作。例如,利用SolidWorks API设计机械结构,通过PLC控制系统模拟生产流程,使用数据分析工具进行生产数据的采集和异常检测,以及利用进度管理系统规划项目时间表。 适合人群:具有机械工程、自动化控制或计算机编程基础的学生或研究人员,尤其是从事智能制造领域相关工作的人员。 使用场景及目标:①帮助学生或研究人员快速搭建和理解微型车间生产线的设计与实现;②提供完整的代码框架,便于修改和扩展以适应不同的应用场景;③作为教学或科研项目的参考资料,用于学习和研究智能制造技术。 阅读建议:此资源不仅包含详细的代码实现,还涉及多个学科领域的知识,如机械设计、电气控制、数据分析等。因此,在学习过程中,建议读者结合实际操作,逐步理解每个模块的功能和原理,并尝试调整参数以观察不同设置下的系统表现。同时,可以参考提供的文献资料,深入研究相关理论和技术背景。
本次的学生体质健康信息管理网站,按照用户的角色可以分为教师与学生,后台设置管理员角色来对学生的信息进行管理。,设计如下: 1、后台管理系统 后台管理系统主要是为该系统的管理员提供信息管理服务的系统,具体包括的功能模块如下: (1)管理员信息管理 (2)教师信息管理 (3)学生信息管理 (4)健康信息统计(图形化进行健康,亚健康等学生的信息数量统计) 2、教师角色的功能模块设计 教师角色所需要的功能模块主要包括了如下的一些内容: (1)个人资料修改 (2)学生体质健康管理:录入相关数据,包括但不限于身高、体重、肺活量、视力等生理指标以及运动能力、身体成分、骨密度等健康指标,并且设置健康,亚健康状态 (3)学生健康建议:根据体质信息,进行学生健康的建议 (4)健康预警:对健康出问题的学生,进行健康预警 (5)饮食和锻炼情况管理,查看 3、学生角色 学生角色可以通过该信息网站看到个人的基本信息,能够看到教师给与学生的健康建议等,功能模块设计如下: (1)个人资料修改 (2)我的健康建议查看 (3)我的健康预警 (4)饮食和锻炼情况管理,记录平时的饮食和锻炼情况 完整前后端源码,部署后可正常运行! 环境说明 开发语言:Java后端 框架:ssm,mybatis JDK版本:JDK1.8+ 数据库:mysql 5.7+ 数据库工具:Navicat11+ 开发软件:eclipse/idea Maven包:Maven3.3+ 部署容器:tomcat7.5+
网站前台: (1)站内新闻:及时发布康复中心动态、行业资讯等,让用户了解最新消息。 (2)用户注册,登录:支持用户注册新账号并登录系统,开启预约等操作。 (3)科室介绍:详细介绍康复中心各科室,含功能、特色治疗等信息。 (4)医生列表,详情:展示医生信息,如履历、擅长领域,助用户选医生。 (5)老年生活风采:呈现老年人康复生活照片等,展示康复后的精彩状态。 (6)预约入院:用户填写姓名、电话等信息,提交入院预约申请。 网站后台: 管理员 (1)管理员密码修改:管理员可自主修改登录密码,保障账号安全。 (2)用户注册管理,审核:对新用户注册信息审核,确保信息真实合规。 (3)站内新闻管理:发布、编辑、删除站内新闻,把控资讯更新与质量。 (4)科室信息管理:维护科室信息,包括介绍、设备等内容的增删改。 (5)医生信息管理:管理医生资料,可更新履历、擅长方向等信息。 (6)老年生活风采管理:上传、整理、替换老年生活风采相关展示内容。 (7)预约入院管理:处理用户入院预约,安排入院时间和流程。 用户 (1)用户资料修改:用户可修改个人注册资料,保证信息准确性。 (2)我的预约住院结果:查询预约入院审核结果,了解住院安排情况。 完整前后端源码,部署后可正常运行! 环境说明 开发语言:Java后端 框架:ssm,mybatis JDK版本:JDK1.8+ 数据库:mysql 5.7+ 数据库工具:Navicat11+ 开发软件:eclipse/idea Maven包:Maven3.3+ 部署容器:tomcat7.5+
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值