Skip to content
GitLab
Explore
Projects
Groups
Topics
Snippets
Projects
Groups
Topics
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
twis
project2721707
Commits
66271317
Commit
66271317
authored
2 months ago
by
twis
Browse files
Options
Download
Patches
Plain Diff
Add README.md
parent
7b1da085
main
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
README.md
+210
-0
README.md
with
210 additions
and
0 deletions
+210
-0
README.md
0 → 100644
+
210
−
0
View file @
66271317
# 赛道文档大纲
---
## 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 **比赛经验**
-
积累了参加大型比赛的经验,提升应对压力与挑战的能力。
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment
Menu
Explore
Projects
Groups
Topics
Snippets