Commit 66271317 authored by twis's avatar twis
Browse files

Add README.md

parent 7b1da085
No related merge requests found
Showing with 210 additions and 0 deletions
+210 -0
README.md 0 → 100644
# 赛道文档大纲
---
## 1. **目标描述**
- **项目名称**:基于 LZ4 压缩和磨损均衡的 Flash 文件系统
- **项目目标**
- 解决传统 Flash 文件系统在写入放大、寿命管理等方面的问题。
- 实现文件管理、数据压缩、磨损均衡和垃圾回收功能。
- 提升 Flash 存储的性能和寿命。
---
## 2. **比赛题目分析和相关资料调研**
### 2.1 **题目分析**
- **题目要求**
- 实现基本的文件系统功能(文件创建、删除、读取)。
- 使用数据压缩算法减少 Flash 写入量。
- 设计磨损均衡算法延长 Flash 寿命。
- 实现垃圾回收机制优化存储空间利用率。
- **技术难点**
- 压缩算法的选择与实现。
- 磨损均衡算法的设计与优化。
- 垃圾回收机制的数据一致性问题。
### 2.2 **相关资料调研**
- **Flash 存储特性**
- 擦除特性、写入放大、寿命管理。
- **现有文件系统**
- JFFS2、YAFFS、UBIFS 等文件系统的优缺点。
- **压缩算法**
- LZ4、Zstandard 等算法的性能对比。
- **磨损均衡算法**
- 动态磨损均衡、静态磨损均衡的实现方法。
- **垃圾回收机制**
- 标记-清除算法、复制算法的原理与应用。
---
## 3. **系统框架设计**
### 3.1 **总体架构**
- **文件系统层次结构**
- 文件管理模块:负责文件的创建、删除、读取。
- 压缩模块:使用 LZ4 算法压缩和解压缩数据。
- 磨损均衡模块:分配块时选择擦除次数最少的块。
- 垃圾回收模块:回收已删除文件占用的块。
- Flash 存储模块:管理 Flash 块的分配与擦除。
### 3.2 **模块设计**
- **文件管理模块**
- 实现文件的创建、删除、读取功能。
- **压缩模块**
- 使用 LZ4 算法压缩数据,减少 Flash 写入量。
- **磨损均衡模块**
- 设计简单的磨损均衡算法,延长 Flash 寿命。
- **垃圾回收模块**
- 实现标记-清除机制的垃圾回收功能。
- **Flash 存储模块**
- 管理 Flash 块的分配、擦除和使用状态。
---
## 4. **开发计划**
### 4.1 **阶段 1:需求分析与设计**
- 完成需求分析,确定系统功能模块。
- 设计系统架构与模块接口。
### 4.2 **阶段 2:基础功能实现**
- 实现文件系统基本功能(文件创建、删除、读取)。
- 实现 LZ4 压缩与解压缩功能。
### 4.3 **阶段 3:高级功能实现**
- 实现磨损均衡算法。
- 实现垃圾回收机制。
---
## 5. **比赛过程中的重要进展**
- **进展 1**:完成文件系统基本功能的实现,支持文件的创建、删除、读取操作。
- **进展 2**:实现 LZ4 压缩与解压缩功能,显著减少 Flash 写入量。
- **进展 3**:实现磨损均衡算法,延长 Flash 寿命。
- **进展 4**:实现垃圾回收机制,优化存储空间利用率。
- **进展 5**:完成系统测试与性能优化,确保系统稳定运行。
---
## 6. **系统测试情况**
### 6.1 **测试环境**
- **硬件**:模拟 Flash 存储设备。
- **软件**:Linux 操作系统,QEMU 模拟器。
### 6.2 **测试内容**
- **文件创建测试**:验证文件创建功能是否正常。
- **文件读取测试**:验证文件读取功能是否正常。
- **文件删除测试**:验证文件删除功能是否正常。
- **磨损均衡测试**:验证块的擦除次数是否均匀分布。
- **垃圾回收测试**:验证已删除文件占用的块是否被正确回收。
### 6.3 **测试结果**
- 文件创建、读取和删除功能正常。
- 磨损均衡算法有效延长 Flash 寿命。
- 垃圾回收机制优化存储空间利用率。
---
## 7. **遇到的主要问题和解决方法**
### 7.1 **问题 1:压缩算法的选择与实现**
- **解决方法**:调研多种压缩算法,最终选择 LZ4 算法,平衡压缩率与计算性能。
### 7.2 **问题 2:磨损均衡算法的设计**
- **解决方法**:设计基于擦除次数的简单磨损均衡算法,选择擦除次数最少的块进行分配。
### 7.3 **问题 3:垃圾回收机制的数据一致性问题**
- **解决方法**:实现标记-清除机制的垃圾回收功能,定期回收已删除文件占用的块。
---
## 8. **分工和协作**
均由组长一人完成
## 9. **提交仓库目录和文件描述**
代码存放在project.c中,文件描述详见READ_ME
## 10. **比赛收获**
### 10.1 **技术收获**
- 深入理解 Flash 文件系统的设计原理。
- 掌握 LZ4 压缩算法、磨损均衡算法和垃圾回收机制的实现方法。
- 提升系统设计与开发能力。
### 10.2 **比赛经验**
- 积累了参加大型比赛的经验,提升应对压力与挑战的能力。
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment