模拟文件系统的设计与实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

模拟文件系统的设

计与实现

1

2020年4月19日

2

2020年4月19日

中北大学

操作系统课程设计

说 明 书

学 院、系: 软件学院 专 业: 软件工程 学 生 姓 名: xxx 学

号: xxx

设 计 题 目:

模拟文件系统的设计与实现

起 迄 日 期: 12月28日- 1月8日

指 导 教 师:

xxx

年1月8日

1 需求分析

经过模拟文件系统的实现,深入理解操作系统中文件系统的理论知识, 加深对教材中的重要算法的理解。同时经过编程实现这些算法,更好地掌握操作系统的原理及实现方法,提高综合运用各专业课知识的能力;掌握操作系统结构、实现机理和各种典型算法,系统地了解操作系统的设计和实现思路,并了解操作系统的发展动向和趋势。

模拟二级文件管理系统的课程设计目的是经过研究Linux 的文件系统结构,模拟设计一个简单的二级文件系统,第一级为主目录文件,第二级为用户文件。

2

总体设计

结合数据结构、程序设计、计算机原理等课程的知识,设计一个二级文件系统,进一步理解操作系统。

文件的创立: create 文件关闭:close 文件的打开:open

文件的读:read 文件的写:write 文件关闭:close 删除文件:delete 创立子目录:mkdir 删除子目录:rmdir

列出文件目录:dir 退出:exit

系统执行流程图

3.详细设计

主要数据结构:

#define MEM_D_SIZE 1024*1024 //总磁盘空间为1M

#define DISKSIZE 1024 //磁盘块的大小1K

#define DISK_NUM 1024 //磁盘块数目1K

#define FATSIZE DISK_NUM*sizeof(struct fatitem) //FAT表大小#define ROOT_DISK_NO FATSIZE/DISKSIZE+1 //根目录起始盘块号

#define ROOT_DISK_SIZE sizeof(struct direct) //根目录大小#define DIR_MAXSIZE 1024 //路径最大长度为1KB

#define MSD 5 //最大子目录数5

#define MOFN 5 //最大文件深度为5

4

2020年4月19日

#define MAX_WRITE 1024*128 //最大写入文字长度128KB

struct fatitem /* size 8*/

{

int item; /*存放文件下一个磁盘的指针*/

char em_disk; /*磁盘块是否空闲标志位 0 空闲*/

};

struct direct

{

/*-----文件控制快信息-----*/

struct FCB

{

char name[9]; /*文件/目录名 8位*/

char property; /*属性 1位目录 0位普通文件*/

int size; /*文件/目录字节数、盘块数)*/

int firstdisk; /*文件/目录起始盘块号*/

int next; /*子目录起始盘块号*/

int sign; /*1是根目录 0不是根目录*/

}directitem[MSD+2];

5

2020年4月19日

相关文档
最新文档