资源简介
共两个不同设计例子,都含详细的文档资料。
任务2.设计一个简单的二级文件系统
设计要求:
在任一OS下,建立一个大文件,把它假象成硬盘,在其中实现一个简单的模拟文件系统。 编写一管理程序对此空间进行管理,要求:
1. 实现盘块管理
2. 实现文件的读写操作
3. 每组最多2人,小组内要有明确分工,课程设计报告中设计部分可以相同,个人实现部分不同
参考建议:
将模拟硬盘的文件空间划分为目录区,文件区;采用位示图进行空间管理,盘块的分配使用显示链接(FAT表)的方式。
设计技术参数(数据结构)参考:
#define MaxSize 100
#define Disk 512 //每个盘块大小为512bit
#define NumDisk 2048 //有2048个盘块,既可分配空间为 1M
/*************目录和文件的结构定义***********************/
struct DirectoryNode {
char name[9]; /*目录或文件的名字*/
int type; /*0代表目录,1代表普通文件*/
struct DirectoryNode *next; /*指向下一个兄弟结点的指针*/
struct DirectoryNode *preDirFile; /*指向父结点的指针*/
struct DirectoryNode *subFile; /*指向第一个子结点的指针*/
int size; /*如果是文件则表示文件的大小*/
int first; /*起始盘块号*/
int last; /*末尾盘块号*/
int order; /*备用*/
};
//连续分配
struct FileSys {
int VacTable[NumDisk]; //空闲表,0为空闲,1为被用
struct DirectoryNode root; //根目录
struct DirectoryNode Directory[NumDisk];
} *filesys;
typedef struct {
struct DirectoryNode *DirFile;
char name[9];
}DataType; //包含一个指向目录的指针和名字
typedef struct { //队列结构的实现
DataType data[MaxSize];
int front,rear; //分别表示队列的头结点和尾结点
}Tp;
void InitQueue(Tp *sq) //队列初始化
int EnAddQueue(Tp *sq,DataType data) //在队列中增加元素
DataType EnDelQueue(Tp *sq) //从队列中删除一个元素
int Empty(Tp *sq) //判断队列是否为空,返回0表示队列为空
①.Dir:显示目录内容命令,显示当前目录下的文件和子目录。
②.Md:创建目录操作。
③.Create:创建文件,在当前目录下创建一个文件。
④. all:显示从根目录开始的所有目录和文件及其层次结点。
⑤.Cd:改变目录。
⑥.Del:删除文件操作。
⑦. Rd:删除目录操作,删除当前目录下的子目录。
⑧. Ren:重命名函数
⑨. Exit:退出命令
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3197 2011-12-20 13:39 IGETPUT.C
文件 3184 2011-12-20 13:39 IALLFRE.C
文件 693 2011-12-20 13:39 HALTIT.C
文件 4245 2011-12-20 13:39 FORMATIT.C
文件 7139 2011-12-20 13:38 FILSYS.H
文件 1744 2011-12-20 13:38 DIRGETT.C
文件 4007 2011-12-20 13:38 DIR.C
文件 2611 2011-12-20 13:38 CREATDE.C
文件 238592 2012-01-12 16:36 MAIN.NCB
文件 52736 2012-01-12 16:36 MAIN.OPT
文件 4467 2011-12-20 13:39 MAIN.DSP
文件 533 2011-12-20 13:39 MAIN.DSW
....... 729088 2011-12-20 13:38 报告.doc
文件 1079 2011-12-20 13:38 ACCESS.C
文件 1768 2011-12-20 13:38 BALLFRE.C
文件 556 2011-12-20 13:38 BRDWT.C
文件 5915 2011-12-20 13:38 CMDEXP.C
文件 2848 2011-12-20 13:39 REG.C
文件 5479 2011-12-20 13:39 READWE.C
文件 2079 2011-12-20 13:39 OPENCLO.C
文件 933 2011-12-20 13:39 NAME.C
文件 2950 2011-12-20 13:39 MAIN.C
文件 2635 2011-12-20 13:39 LOG.C
文件 924 2011-12-20 13:39 INIT.C
文件 102113 2012-01-12 16:32 二级文件系统2.rar
----------- --------- ---------- ----- ----
1181515 25
----------- --------- ---------- ----- ----
文件 3197 2011-12-20 13:39 IGETPUT.C
文件 3184 2011-12-20 13:39 IALLFRE.C
文件 693 2011-12-20 13:39 HALTIT.C
文件 4245 2011-12-20 13:39 FORMATIT.C
文件 7139 2011-12-20 13:38 FILSYS.H
文件 1744 2011-12-20 13:38 DIRGETT.C
文件 4007 2011-12-20 13:38 DIR.C
文件 2611 2011-12-20 13:38 CREATDE.C
文件 238592 2012-01-12 16:36 MAIN.NCB
文件 52736 2012-01-12 16:36 MAIN.OPT
文件 4467 2011-12-20 13:39 MAIN.DSP
文件 533 2011-12-20 13:39 MAIN.DSW
....... 729088 2011-12-20 13:38 报告.doc
文件 1079 2011-12-20 13:38 ACCESS.C
文件 1768 2011-12-20 13:38 BALLFRE.C
文件 556 2011-12-20 13:38 BRDWT.C
文件 5915 2011-12-20 13:38 CMDEXP.C
文件 2848 2011-12-20 13:39 REG.C
文件 5479 2011-12-20 13:39 READWE.C
文件 2079 2011-12-20 13:39 OPENCLO.C
文件 933 2011-12-20 13:39 NAME.C
文件 2950 2011-12-20 13:39 MAIN.C
文件 2635 2011-12-20 13:39 LOG.C
文件 924 2011-12-20 13:39 INIT.C
文件 102113 2012-01-12 16:32 二级文件系统2.rar
----------- --------- ---------- ----- ----
1181515 25
- 上一篇:图的平均路径长度和网络直径
- 下一篇:基于51单片机的GSM功能实现
相关资源
- FTP课程设计(服务端+客户端)
- 升腾Win终端系统升级方法新版.doc
- Uninstall_Cortana_WINCLIENT.CN.rar
- 高频电子线路课程设计报告收音机
- 直流稳压电源的课程设计、安装及调
- EDA课程设计_密码锁
- STM32基于rt_thread操作系统的SDHC卡文件
- 单片机课程设计 篮球计分器
- 数据结构课程设计 6 1 彩票系统
- 端口扫描课程设计详细的报告
- 步进电机课程设计(个人设计)
- 校园网络规划与设计课程设计
- 编译原理课程设计:词法语法编译器
- 操作系统 LRU算法 实验报告 及 程序代
-
simuli
nk 课程设计 qpsk - 武汉理工大学 单片机课程设计 16*16点
- [免费]车载CE6.0操作系统
- 数据库VFP课程设计
- 分页系统模拟实验 操作系统 课程设
- 模拟段页式虚拟存储管理中地址转换
- 硬件课程设计—流水灯(quartus软件
- 超市收银系统eclipse access大学课程设计
- 航空订票系统_数据结构课程设计
- 操作系统实验——虚存管理实验
- c 课程设计 职工信息管理系统
- 广工操作系统实验
- 汇编语言,课程设计,红绿灯
- 机床液压系统课程设计卧式钻床动力
- 广东工业大学操作系统实验四文件系
- 课程设计蔬菜大棚自动控制系统,包
评论
共有 条评论