嵌入式系统软件技术解析
1. 嵌入式 Linux 概述
1.1 任务调度与期限错过率
在多处理器系统中,SCHED_DEADLINE 实现了全局最早截止时间优先(EDF)调度算法。在四处理器系统中,当利用率为 380% 时,错过期限的比例小于 0.2%;利用率为 390% 时,错过期限的比例为 0.615%。六处理器系统的相关数据量级类似。而在单处理器系统或进程固定在特定核心的多核系统中,不会出现期限错过的情况。
1.2 闪存文件系统
嵌入式系统对永久存储的要求与服务器或桌面环境不同,通常有大量静态只读数据,可变数据量有限。因此,针对 NAND 闪存存储开发了多种文件系统,其中日志结构的 Journaling Flash File System version 2(JFFS2)较为稳定。
- 节点类型 :JFFS2 中有两种节点,索引节点(inode)包含文件元数据头和可选的文件数据负载;目录项节点(dirent)包含名称和索引节点号。
- 节点状态 :节点创建时有效,新节点创建后旧节点会过时。
- 数据压缩 :JFFS2 支持透明数据压缩,将压缩数据作为索引节点负载存储。
- 块管理 :与其他日志结构文件系统不同,JFFS2 使用块,块大小与闪存擦除段相同。块从下往上依次填充节点,干净块只包含有效节点,脏块包含至少一个过时节点。
- 垃圾回收 :后台垃圾回收器收集脏块,将有效节点复制到新块,跳过过时节点,然后标记脏