搜档网
当前位置:搜档网 › 济南大学优秀操作系统课程设计报告

济南大学优秀操作系统课程设计报告

济南大学优秀操作系统课程设计报告
济南大学优秀操作系统课程设计报告

操作系统课程设计

学院:信息科学与工程学院

专业:计算机科学

班级:计1122班

学号:20111221000

学生姓名:黄小秉

指导教师:蔡老师

2014年3月7日

、实验内容

1. 题目要求题目名称:模拟文件系统

[问题描述]

在任一OS 下,建立一个大文件,把它假象成一张盘,在其中实现一个简单的小型文件系统。

[基本要求]该小型文件系统没有子目录机制,文件连续分配,不考虑分区。做一个简单的操作界面,提供四条简单的命令:简单的ls、cat、cp、rd.

进一步增强:文件系统功能:文件系统不连续分配,可以有子目录机制,(如两级子目录机制)。

2. 指令设计:

1?系统初始化指令format:将文件表中所有项删除,将物理存储块格式化

2. 查看系统信息Is:打印系统信息,包括系统名称,版本,设计时间,总容量和剩余容量。

3. 查看当前目录信息Im:打印目录下所有文件夹和文件的信息。

4. 查看目录下文件信息cat:打印用户指定文件和文件夹信息,需用户输入文件名

5. 创建目录cm:在当前目录下创建一个子目录,需要用户输入目录名

6. 创建文件cf:在当前目录下创建一个文件,需要用户输入文件名和文件大小

7. 删除目录或者文件rd:删除当前目录下用户指定的文件或者目录,需要用户输入文件名

8. 进入指定目录cd:进入当前目录下的一个子目录,需要用户输入子目录名

9. 将指定文件或目录拷贝到另一目录下cp:实现将指定的文件或者目录拷贝的功能,需要用户输入源文件的文件夹名,文件名和目标位置的文件名

10. 退出系统quit:退出当前系统

11. 清屏cls:用户认为当前屏幕内容过多可以使用该指令

二、数据结构设计

1. 文件表文件项数据结构

struct File

{

char file_name[50];

int file_length; //文件表文件项数据结构

//文件名

//文件大小

//物理地址块数据结构

//正在使用为 1,没被使用为 0

//标志位,-1 表示文件地址连续, 0 ~ 16384 表示

//使用位示图储存文件

三、算法设计(总体设计及模块设计)

1. 总体设计

仿照 DOS 界面,通过用户输入指令来执行相应的操作。

2. 模块设计

① 菜单及输入输出模块:采用 while 循环方式,直到用户输入quit 指令终止 操作退出系统,每次循环获取用户输入的指令(当然不同的指令有不同的格式, 调用不同的函数),执行完成后进入下一次循环。

② 指令设计:

format :系统初始化,与windows 格式化命令相似,将所有物理块清空,

初始化。

ls :输出当前系统的信息,总容量,剩余容量和版权信息。

Im :打印当前目录下所有文件和文件夹信息

cat :查看指定文件或者文件夹的大小和信息,指令格式: cat +文件名

cm :在当前目录下创建一个文件夹,指令格式: cm +文件夹名

cf :在当前目录下创建一个文件,指定文件名和文件大小,指令格式: cf + 文件名 + 文件大小

rd :删除当前目录下的一个文件或者文件夹,指令格式:

rd +文件夹名 cd:进入当前的一个文件夹,指令格式:cd +文件夹名 char dir_name[50];

FileType file_type;

int file_addr;

int flag;

}root[16384]; 2. 物理地址块数据结构

//文件所属文件名 //文件类型 //文件储存首地址 //标志位,文件是否存在 //定义文件表

struct Block

{ int isUsed; int flag; 下一块地

址 }block[128][1

cp:copy 指令,将指定文件路径下的文件拷贝到另一个文件目录下,指令格式:cp + 源文件的路径名+ 源文件名+ 目标路径名

help:帮助,显示帮助菜单

quit:退出系统命令

cis:清屏

③创建文件算法设计:读取用户输入的文件名遍历文件表寻找当前路径下是

否有重名文件,若有则创建文件失败;若无则可以创建在文件夹列表中加入一条

记录,即用户输入的文件信息,创建成功。

④删除文件算法设计:读取用户输入的文件名遍历文件表,查找文件是否存在,若不存在,则删除操作失败,文件存在则查看是否是一个文件目录,若是文件目录则查找文件目录下是否存在其他文件或文件夹,一并从文件列表中删除。若是普通文件,则直接删除。

⑤文件拷贝操作:首先检验用户输入的源地址和目标地址是否正确,再查看文件是否存在,若校验错误,则输入错误信息,拷贝操作结束。若都校验成功,则在文件列表中添加文件信息,若是文件夹,也将目录下所有文件拷贝一份到目标地址。

四、测试数据及程序运行情况

1.菜单页面:

2?测试数据:系统总容量:16384KB,初始化后根目录文件占用4KB,剩余16380KB,此时查看系统信息:

在根目录“ admin”下创建如下文件及文件夹

Doc_A

200KB

Doc_B

321KB

查看系统容量:

剩余容量:16384 -200 -321 -4 * 4 = 15847 正确

查看根目录下文件夹file_B 的信息:输入指令:cat file_B 在admin 下创建文件夹一个文件夹file :输入指令cm file

再次查看目录信息:

相关主题