【操作系统】实验名称: 实验五 文件系统

实验目的:

1. 掌握文件系统的基本概念和工作机制

2. 掌握文件系统的主要数据结构的实现

3、掌握软件系统实现算法

实验内容:

设计并实现一个虚拟的一级(单用户)文件系统程序

提供以下操作

1、文件创建/删除接口命令

2、目录创建/删除接口命令

3、显示目录内容命令

算法设计与实现(附流程图和源代码):

申明函数

void login(void); 用户登录,如果是新用户则创建用户

void init(void); 程序初始化,将所有i节点读入内存

int analyse(char *); 输入参数分析,分析用户命令

void save_inode(int); 将num号i节点保存到虚拟磁盘文件hd.dat

int get_blknum(void); 申请一个数据块

void read_blk(int); 将i节点号为num的文件读入temp

void write_blk(int); 将temp的内容写入hd.dat的数据区

void release_blk(int); 释放文件块号为num的文件占用的空间

void pathset(); 打印当前路径

void deltree(int innum); 实现删除目录树函数

int check(int); 检查用户权限

用户命令处理函数

void help(void); 命令提示帮助函数

void cd(void); 改变当前目录

void dir(void); 显示当前目录下所有文件和目录

void mkdir(void); 创建目录

void rd(void); 删除目录

void creat(void); 创建文件

void open(void); 打开

void read(void); 读文件

void write(void); 写文件

void close(void); 关闭文件

void del(void); 删除文件

void logout(void); 用户注销

void command(void); 命令管理函数

void format(void); 格式化虚拟磁盘

函数间关系:

【操作系统】实验名称: 实验五 文件系统_第1张图片

流程图:

【操作系统】实验名称: 实验五 文件系统_第2张图片

【操作系统】实验名称: 实验五 文件系统_第3张图片

【操作系统】实验名称: 实验五 文件系统_第4张图片

【操作系统】实验名称: 实验五 文件系统_第5张图片

【操作系统】实验名称: 实验五 文件系统_第6张图片

【操作系统】实验名称: 实验五 文件系统_第7张图片

【操作系统】实验名称: 实验五 文件系统_第8张图片

【操作系统】实验名称: 实验五 文件系统_第9张图片

【操作系统】实验名称: 实验五 文件系统_第10张图片

调试过程及实验结果(附截图):

注册用户

【操作系统】实验名称: 实验五 文件系统_第11张图片

登陆登出

创建/进入目录

创建/打开文件

可以选择打开方式,只读,只写和读写

写文件

【操作系统】实验名称: 实验五 文件系统_第12张图片

初始长度为0,输入想要写入的长度20,以及内容12345678916281294abc

读文件

【操作系统】实验名称: 实验五 文件系统_第13张图片

接下来进行读取,可以看到长度为20,选择起始位置7,选择读取长度10,结果为8916281294,结果正确

删除文件

【操作系统】实验名称: 实验五 文件系统_第14张图片

可以看到,删除文件后,再次打开就会提示文件不存在,而如果输入错命令就会提示指令错误。

删除目录

【操作系统】实验名称: 实验五 文件系统_第15张图片

先输入cd …进入上级目录,删除之前创建的lzh目录,再次进入就会提示文件夹不存在

格式化

【操作系统】实验名称: 实验五 文件系统_第16张图片

格式化后会清空“磁盘”,同时创建一个新的文件系统。

思考题:

  1. 单个文件的大小是否为无限的?受到哪个因素限制?

文件系统的限制: 不同的文件系统对单个文件的最大大小有限制。例如,FAT32文件系统通常限制单个文件大小为4GB,而NTFS或exFAT允许更大的文件大小。

操作系统的限制: 操作系统也可能对单个文件大小设置限制。例如,32位操作系统可能限制单个文件大小为2GB,而64位操作系统可以支持更大的文件。

硬件限制: 存储设备的硬件特性也可能对单个文件大小产生影响。某些文件系统和硬件可能限制文件的最大尺寸。

应用程序的限制: 有些应用程序也可能对单个文件大小有限制,这可能是为了确保更好的性能或适应特定的用途。

  1. 你认为一个设计成功的文件系统应该具备哪些特征?

可靠性: 文件系统应该能够保护数据免受损坏或丢失。这可能包括实现数据冗余、错误检测和纠正等机制。

性能: 文件系统应该提供高效的读写操作,适应不同类型的应用程序和工作负载。

可扩展性: 文件系统应该能够方便地扩展以适应不断增长的存储需求,而无需对整个系统进行大规模更改。

安全性: 文件系统应该提供对数据的访问控制和权限管理,以确保只有授权用户可以访问敏感数据。

兼容性: 文件系统应该能够与多种操作系统和硬件平台兼容,以便用户可以在不同环境中使用。

易用性: 文件系统应该提供用户友好的界面和操作方式,使用户能够轻松管理和使用存储空间。

恢复性: 文件系统应该具备良好的恢复机制,能够在发生错误或故障时快速自愈,以确保数据的完整性和可用性。

实验小结:

你可能感兴趣的:(操作系统,服务器,linux,网络)