长沙理工大学继续教育学院。
年级。专业: 计算机科学与技术
姓名。学号。
指导老师。时间: 2024年月日。
模拟linux文件系统。
一、课程设计任务书 1
二、课程设计内容 2
1、 详细设计及编码 5
1.1 初始化命令——format 9
1.2 系统初始化——自动完成 10
1.3 建立文件——mf filename 10
1.4 建立子目录——md filename 11
1.5 打开文件——open filename 12
1.6 删除文件——del filename 14
1.7 删除目录——rd filename 15
1.8 显示目录——dir(即显示目录下的信息,包括文件、子目录等) 15
1.9 正常退出指令exit 16
三、存在问题及改进意见 39
四、参考资料 39
一、课程设计任务书。
模拟linux文件系统。在任一os下,建立一个大文件,把它假象成一张盘,在其中实现一个简单的模拟linux文件系统。
1.在现有机器硬盘上开辟20m的硬盘空间,作为设定的硬盘空间。
2.编写一管理程序对此空间进行管理,以模拟linux文件系统,具体要求如下:
1)要求盘块大小1k 正规文件。
2)i结点文件类型目录文件 (共1byte)
块设备管道文件物理地址(索引表) 共有13个表项,每表项2byte
文件长度 4byte。联结计数 1byte
3)0号块超级块栈长度50
空闲盘块的管理:成组链接(unix)
位示图法(linux)
4)每建一个目录,分配4个物理块。
文件名 14byte
5)目录项信息。
i 结点号 2byte
6)结构:0#:超级块。
#-20#号为i结点区。
#-30#号为根目录区。
3.该管理程序的功能要求如下:
1)能够显示整个系统信息,源文件可以进行读写保护。目录名和文件名支持全路径名和相对路径名,路径名各分量间用“/”隔开。
2)改变目录:改变当前工作目录,目录不存在时给出出错信息。
3)显示目录:显示指定目录下或当前目录下的信息,包括文件名、物理地址、保护码、文件长度、子目录等(带/s参数的dir命令,显示所有子目录)。
4)创建目录:在指定路径或当前路径下创建指定目录。重名时给出错信息。
5)删除目录:删除指定目录下所有文件和子目录。要删目录不空时,要给出提示是否要删除。
6)建立文件(需给出文件名,文件长度)。
7)打开文件(显示文件所占的盘块)。
8)删除文件:删除指定文件,不存在时给出出错信息。
4.程序的总体流程为:
1)初始化文件目录;
2)输出提示符,等待接受命令,分析键入的命令;
3)对合法的命令,执行相应的处理程序,否则输出错误信息,继续等待新命令,直到键入exit退出为止。
二、课程设计内容。
在现有机器硬盘上开辟20m的硬盘空间(利用一个循环操作,在disk中写入20m的零,创建一个20m的文件即是),作为设定的硬盘空间。
磁盘块物理模型如下:
文件则是指具有文件名的若干相关元素的集合。
文件属性主要如下。
文件名:实现了按名存取,文件名和目录文件允许重名。
文件类型:可以从不同的角度来规定文件的类型。普通文件、管道文件、块文件。
文件长度:指文件的当前长度,长度的单位可以是kb。
文件的物理位置:文件在磁盘中物理的存储,并打印出来。
此次unix文件系统最简单的目录结构。整个文件系统中只建立一张目录表,每个文件一个目录项,目录项含有文件相关信息。每建立一个新文件要先检索所有的目录项保证文件名唯一。
然后找出一空白目录项填入相关信息,并修改状态位。删除文件是找到对应目录项,**所占用空间,清除该目录。
逻辑结构如下。
unix文件系统当文件很多时,文件目录要占用大量的盘块。在查找目录的过程中,可能需要多次启动磁盘读入目录文件的盘块。在检索目录文件中只用到了文件名,显然,文件的物理地址等文件的描述信息在检索目录时不需调入内存。
为此,可以把文件名与文件描述信息分开。使文件描述信息单独形成一个索引结点。
把文件描述信息单独形成一个称为索引结点的数据结构,简称为inode;文件目录中的每个目录项,则仅由文件名及指向该文件所对应的inode的指针所构成。这样,为找到一个文件的平均启动磁盘的次数减少很多。
模型如下:
存储空间的分配与**。
成组链接法。
首先,建立操作系统课程的设计模型。这个系统将利用一个20m的文件作为自己的磁盘空间,设计时由于一个盘块占用1kb,所以20m空间可以产生20480个盘块系统本身将0##块作为系统区,所以用户区便剩下20450个盘块,每50个盘块为一组,一共可以分为409个组。
将每一组含有的盘块总数n和该组的盘块号,记入其前一组的第一个盘块的这样由各组的第一个盘块形成了一条链。
将第一组的盘块总数和所有的盘块号,记入空闲盘块号栈中,作为当前可供分配的空闲盘块号。最末一组只有49个盘块,其盘块号分别记入其前一组的中,而在中则存放0,作为空闲盘块链的结束标志。
基本功能:初始化;建立文件;建立子目录;打开文件 ;删除文件;删除目录;显示目录。
1、详细设计和编码。
正规文件。i 结点文件类型目录文件。
(共1byte块设备。
管道文件 物理地址(索引表)
共有13个表项,每表项2byte
文件长度 4byte
联结计数 1byte
struct inode;//0,1,2,3
short ss[51超级栈,指针为ss[0],保存当前可用盘快。
short freeblocknum=0当前可用盘快所在组记录的盘快号。
short freetotalb=20450文件总长度。
short freedirnode[29可用索引节点栈。
short freedircount=30索引节点栈指针。
short currdirnum当前目录所在的磁盘号。
short currinum
dirnode *currdir当前目录节点。
inode *inode当前inode节点。
系统调用函数列表。
操作系统课程设计报告
西安郵電大學。院系名称 计算机学院。专业名称 软件工程。班级 1104 学生姓名 赵大伟。学号 8位 04113124 指导教师 舒新峰。设计起止时间 2013.11.10 2013.11.20 1 通过观察 分析实验现象,深入理解进程及进程在调度执行和内存空间等方面的特点,掌握在posix 规范中...
操作系统课程设计报告
课程设计。课程名称操作系统。题目名称多级文件系统 2 学生学院计算机学院 专业班级。学号。学生姓名。指导教师。年月日。目录。一 课程设计 6 二 开发工具及环境 6 三 设计内容 6 四 结构图 8 五 部分 9 六 运行截图 11 七 参考文献 15 八 心得体会 15 本课程设计要求设计一个模拟...
操作系统课程设计报告
实验一进程管理。一 实验目的。1 开发一个函数,建立进程控制块和资源控制块结构,并实现相关数据结构的初始化。2 开发一系列操作,由进程调用这些操作,达到控制进程申请或释放各种资源的目的。通过实验理解进程的概念,进程的组成 pcb结构 进程的并发执行和操作系统进行进程管理的相关原语 主要是进程的创建 ...