




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
compcache 详细说明文档 一 基本概念一 基本概念 1 Swap 是什么 是什么 在我们了解 compcache 之前 我们需要先了解什么是 swap 简单 地说 swap 就是虚拟内存 换句话说 计算机会划出一小部分硬盘空间来 当作内存使用 一般来说 计算机会在内存中保留尽可能多的信息 直到内存占满 在这种情况 下 计算机会开始把处于非活动状态的数据 块 称作页 移到 swap 里面 以为 活动进程腾出内存 尽管 swap 比物理内存速度慢 但当你需要更多内存而又由 于种种原因无法增加的时候 它仍然很有用 随着内存价格的 降低 普通意义上 的 swap 应用也越来越少 2 Compcache 是什么 是什么 Compcache 压缩缓存 提供了使用部分内存作为虚拟 压缩 swap 的 能力 换句话说 你可以把一部分你的物理内存 默认为 25 当作虚拟 压缩 swap 使 用 这是一种经典的时间 空间权衡 你得到了更多 内存 但伴随数 据读出写入时的压缩 解压过程又会降低速度 当处理器变得更快 压缩 解压耗 时更少 而计算设备变得更小 没有空间放更多物理内存 时 虚拟 扩展 内 存听起来就更有吸引力了 二 二 应应用用场场景景 Android 操作系统中的应用操作系统中的应用 在默认出厂情况下 当 Android 用光 内存之后 它会杀掉进程而不是将它们 置入 swap 从技术上来说 当手机内存不足时 Android 会通知非活动进程它将 要被杀死 而进程则会写下一小段 信息 比如说地图会写下你的 GPS 位置 然后 死掉 当以后再次启用进程时 它会直接载入这段信息 这样一来 对一些应用 来说 就好像它从来没有被关闭过一 样 从机理上说 这跟 swap 差不多 这两 种方式的不同之处在于 Android 进程只会在它们被关闭的时候记下特定的信息 而 swap compcache 则会记下任何非活动的内存页 而不论这个页里存了些什么 东西 理论上说这使得 Androids 的内存管理机制相对于传统的 swap compcache 更有效率 三 系三 系统统介介绍绍 Compache 由 3 部分构成 分别是 xvMalloc rzscontrol ramzswap 关系图如 下 1 xvMalloc 该工程基于 RAM 块设备创建 swap Swap 在 RAM 中 以压缩 的方式存储内容 Rzscontrol Ramzswap xvMalloc Ramzswap 2 rzscontrol rzscontrol 用来控制 ramzswap 的组件 Compache 核心模块在初 始化的时候会创建多个 ramzswap 设备 rzscontrol 就是用来控制每 一个 ramzswap 设备的组件 例如使用 rzscontrol 进行 ramzswap 的初 始化化或者状态查询等 3 ramzswap 使用 xvMalloc 在内存中开辟的用来存放压缩数据的 swap 区域 四 关四 关键键技技术术 1 内存管理原理 Compcache 采用 xvmalloc 模块来管理系统内存 内存管理结构如下图所示 UsedBlock 结构如图所示 Used Block Free BlockFree BlockFree Block 内存池内存池 系统内存系统内存 Size 块的大小 Prev 上一块的偏移量 F1 本块已使用 未使用 F2 上一块已使用 未使用 User Data 数据区 FreeBlock 结构如下图所示 2 内存管理关键函数 内存管理函数主要集中在 xvmalloc c 文件中 1 struct xv pool xv create pool void 函数 该函数从内存空间中创建内存分配池 2 void xv destroy pool struct xv pool pool 函数 销毁内存分配池 3 int xv malloc struct xv pool pool u32 size struct page page u32 offset gfp t flags 函数 申请内存空间 4 void xv free struct xv po 5 ol pool struct page page u32 offset 函数 释放内存空间 3 设备管理 设备管理函数主要集中在 ramzswap c 文件中 1 static int create device struct ramzswap rzs int device id 函数 创建设备 2 static void destroy device struct ramzswap rzs 函数 销毁设备 3 static int init ramzswap init void 函数 设备初始化 4 static int ramzswap read struct ramzswap rzs struct bio bio 函数 读设备 5 static int ramzswap write struct ramzswap rzs struct bio bio 函数 写设备 五 系五 系统统功能流程功能流程 1 设备操作总流程 开始 创建内存设备 初始化内存设备 读设备写设备状态查询 注销设备 处理操作请求 其他 IO 控制 是否合理 抛出异常 否 2 内存管理流程 3 设备读写流程 Ioctl 控制 I O 设备 Int ioctl int handle int cmd int argdx int argcx ioctl 是设备驱动程序中对设备的 I O 通道进行管理的函数 所谓对 I O 通道进行管理 就是对设备的一些特性进行控制 例如串口的传输波特率等 Cmd 参数得出方法 cmd 参数在用户程式端由一些宏根据设备类型 序列号 传送方 向 数据尺寸等生成 这个整数通过系统调用传递到内核中的驱动程式 在由驱动程式使 用解码宏从这个整数中得到设备的类型 序列号 传动方向和数据尺寸等信息 然后通过 switch case 结构进行相应的操作 快速启动是嵌入式 Linux 需要解决的关键问题 在比较目前加速嵌入式 Linux 启 动的几种方法的基础上 给出了一种针对内核启动优化的快速启动方案 通过 测量内核启动过程时间 获取了主要的延时因素 一次为依据 引入 Kernel XIP 技术消除了内核映像拷贝解压时间 提出了不检测 驱动模块化 驱动管理化 开始 创建内存池 销毁内存池 分配内存空间 释放内存空间 是否有空间 否 扩展内存 池 结束 设备准备申请解压空间数据解压数据冲刷 设备准备申请压缩空间数据压缩存储 等加速设备初始化策略 设计了一种既适合快速启动又实用的文件系统架构 试验结果表明 该方案明显地加快了嵌入式 Linux 的启动速度 需要注意的是 方案中使用 XIP 技术会对系统运行性能造成轻微的影响 在对性能要求高的场 合 需采用一定的技术对 XIP 做进一步优化 如采用 Partial XIP 此外 鉴于嵌 入式 Linux 快速启动问题的复杂性 在不同应用背景下 应灵活采用相应的优 化技术 嵌入式系统作为以应用为中心的专用计算机系统 需要在启动速度 实时性 系统尺寸 电源管理等方面进行优化 近年来 linux 凭借其优良的特性广泛地 应用于嵌入式系统 但是 作为一种原来为 PC 机设计的操作系统 设计者开始 并没有考虑嵌入式应用对启动速度的要求 导致其用典型的方法启动时 启动 时间一般都在几十秒以上 这对于用户来说是无法接受的 此外随着 Linux 内 核的不断膨胀 启动时间越来越长 因此 加快启动速度已经成为嵌入式 Linux 亟待解决的关键问题之一 目前对加快嵌入式 linux 启动速度的研究主要在以下 三个方面 一是待机技术 二是休眠启动 三是常规启动优化 2 本文在分析嵌入式 Linux 启动各个阶段的基础上 结合相关的研究 提出 了在嵌入式设备上综合 XIP 机制和休眠机制 利用休眠的状态信息以加速启动 的方案 嵌入式系统大多是专用的计算机系统 以应用为中心 需要在系统的尺寸 启 动速度 运行实时性以及电源管理诸方面进行优化 与 PC机相比 嵌入式系 统具有不同的硬件结构和软件要求 很多信息设备甚至要求系统即开即用 这 就对嵌入式系统的启动速度提出了要求 Linux 系统源代码开放 具有内核小 效率高 性能稳定等优点 在嵌入式领域得到了广泛的应用 但启动过程稍显 繁琐 因此 Linux 应用于嵌入式系统 不仅仅要求在某些功能上的 删减 加快启动速度也是应用时需要解决的一个重要问题 快速启动对于普及嵌入式 Linux 系统具有重要的意义 本文通过分析嵌入式系 统的引导过程 提出了综合 XIP 和 linux 休眠机制 通过改造 bootloader 和利用 休眠的状态信息 软硬件结合 加速启动的方案 经验证此方案在加快嵌入式 Linux 启动速度方面效果明显 这对研究和简化嵌入式 Linux 的引导过程 缩短 嵌入式设备的启动时间具有十分重要的研究和借鉴意义 测试的话可以分 5 到六次 每次得出采用这种方式的启动时间和不采用这种方 式的启动时间画一个表 XIP 技术 execute in place 即就地执行的意思 操作系统内核直接在 Flash 中 运行 不需要拷贝到 RAM 但是 NOR Flash 的存储器访问周期要比 RAM 大的 多 在使用 XIP 技术后可能会降低程序的运行速度 不过由于 CPU 的指令预取 机制及 Cache 机制 实际使用起来并不会明显降低应用程序的运行速度 3 提高系统在配置较低的嵌入式设备上的启动速度 对嵌入式 Linux 的推广 应用具有重要的意义 详细分析了嵌入式 Linux 启动引导过程的 Bootloader 部 分和内核的初始化部分之后 通过对部分内核源代码的修改及 U boot的重新 设计实现 提出了一种基于状态恢复的系统快速引导策略 并在基于 Intel Xscale 的嵌入式开发板上进行验证 Linux 近年来在嵌入式领域得到了广泛的应用 嵌入式 Linux 具有内核小 效率 高 源代码开放 性能稳定等优点 但启动过程稍显繁琐 信息家电等领域要 求系统能够即开即用 简化嵌入式 Linux 的启动引导过程 缩短启动时间对嵌 入式 Linux 的流行和发展将具有十分重要的意义 01 tar 格式 解包 tar xvf FileName tar 打包 tar cvf FileName tar DirName 注 tar 是打包 不 是压缩 02 gz 格式 解压 1 gunzip FileName gz 解压 2 gzip d FileName gz 压 缩 gzip FileName 03 tar gz 格式 解压 tar zxvf FileName tar gz 压缩 tar zcvf FileName tar gz DirName 04 bz2 格式 解压 1 bzip2 d FileName bz2 解压 2 bunzip2 FileName bz2 压 缩 bzip2 z FileName 05 tar bz2 格式 解压 tar jxvf FileName tar bz2 压缩 tar jcvf FileName tar bz2 DirName 06 bz 格式 解压 1 bzip2 d FileName bz 解压 2 bunzip2 FileName bz 07 tar bz 格式 解压 tar jxvf FileName tar bz 08 Z 格式 解压 uncompress FileName Z 压缩 compress FileName 09 tar Z 格式 解压 tar Zxvf FileName tar Z 压缩 tar Zcvf FileName tar Z DirName 10 tgz 格式 解压 tar zxvf FileName tgz 11 tar tgz 格式 解压 tar zxvf FileName tar tgz 压缩 tar zcvf FileName tar tgz FileName
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 摄影工作室行业服务方案
- 农业科研院所2025年农产品无损检测技术创新路径研究
- 河北省衡水市安平县安平中学2025-2026学年高一上学期开学测试历史试卷
- 河北省面试真题及答案
- 数学篮球题目及答案
- 2025年山西省教师职称考试(语文)(小学)测试题及答案
- CN222977475U 一种锻钢固定球阀的注脂结构 (成都成高阀门股份有限公司)
- CN120218158A 用于从经修剪的神经网络中去除掩膜的技术(辉达公司)
- 2025年良肢位考试题及答案
- CN120107265B 一种基于图像处理的油石静压成型质量检测方法 (西安博尔新材料有限责任公司)
- 三级物联网安装调试员技能鉴定考试题及答案
- 体能恢复练习课时3:1、连续单脚跳;2、仰卧两头起;3、俯卧撑 教案
- 三年级上册信息技术教案全册
- 浙教版信息科技四年级上册全册教学设计
- 西师版小学六年级上册数学全册教案(表格式)
- SJ∕T 11614-2016 电动汽车驱动电机系统用金属化薄膜电容器规范
- 小学校本教材《中草药的认识》(中学也可用)
- (高清版)JTGT 3610-2019 公路路基施工技术规范
- 初中英语单词表大全(2182个带音标)
- 第一单元项目一探秘鸟类研究认识数据信息与知识课件沪科版高中信息技术必修1
- 个体工商户变更经营者协议书
评论
0/150
提交评论