
二级操作系统文件系统被设计为一种简化的结构。
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
共有两个不同的设计实例,均包含详尽的文档资料。任务二要求设计一个简洁的二级文件系统方案,其设计目标是在任何操作系统环境下,构建一个大型文件并将其模拟成硬盘,并在其中实现一个基本的模拟文件系统。 针对此空间,需要编写一个管理程序来进行有效管理,该程序必须满足以下要求:首先,实现盘块的管理机制;其次,实现文件的读写操作功能;最后,每组最多包含两名成员,小组内应明确分工协作。课程设计报告中的设计部分可以保持一致性,而个人实现的模块则应有所不同。我们建议将模拟硬盘的文件空间划分为目录区和文件区;同时,采用位图示技术进行空间管理,并使用显示链接(FAT表)的方式来分配盘块。关于设计技术参数(数据结构),参考以下定义:`#define MaxSize 100` 和 `#define Disk 512` (每个盘块大小为512位),以及 `#define NumDisk 2048` (总共有2048个盘块,可用于分配约1MB的空间)。
/*目录和文件的结构定义*/
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) //判断队列是否为空函数
①.Dir: 显示目录内容命令,展示当前目录下所有文件和子目录。②.Md: 创建目录操作。③.Create: 创建文件操作,在当前目录下创建一个新文件。④. all: 显示从根目录开始的所有目录和文件及其层次关系。⑤.Cd: 改变目录命令。⑥.Del: 删除文件操作。⑦. Rd: 删除目录操作,删除当前目录下指定的子目录。⑧. Ren: 重命名函数⑨. Exit: 退出命令
全部评论 (0)


