二级目录的文件系统模拟

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
filename mode length addr
A
1
3
50
17#-33#物理块:固定用于存放主文件目录UOF, 假定一个用户需要一个块存放UOF,一个UOF项占32 字节,则一个块可存放512/32=16个UOF,即一个用 户可同时打开的文件数为16个。用户已打开 表”(UOF), 用以说明用户当前正在使用文件的情况.如果用户最多 同时找开或建立16个文件,则用户已打开文件表UOF 应 该有16个登记栏,结构如下:
文件名 文件属性
状态 (打开/建立)
读指针 写指针
应该为16个登记栏 用户请求打开或建立一个文件时,相应的文件操 作把有关该文件的信息登记到UOF中,读指针和 写打针用于指出对文件进行存取的相应位置.
mode length addr
34#-100#:数据块(物理块),用于存放文件内 容;为了实现物理块的分配和回收,程序始终维护一个 空闲物理块表,以物理块号从小到大排列。物理块以链 接分配方式,以最先适应法从空闲表中分配。数据结构: 物理块: typedef struct cluster {Num ;////物理块号 long nextcluster;/////指向下一物理块号 }Cluster;
用户名 Peter Ben
密码 12345 Abc
用户文件目录地址 3 5
2#-17#物理块:固定用于存放用户文件目录UFD。假 设一个用户需要一个UFD块,因此,16个用户共需 要16个UFD块。 typedef struct { filename //文件名14B; mode; ///文件权限0-readonly;1-writeonly;2-read/write length; ///文件长度(以字节数计算) addr;//该文件的第1个文件块对应的物理块号 }UFD; 一个UFD项设为32 Bytes,一个块可存放16个 UFD项。则,一个用户最多可创建16个文件
Passwd oldPwd newPwd Login userName pwd 用户登陆
Create filename mode 建立文件 Open Write Read Help filename mode 打开文件
Close filename 关闭文件
filename buffer nbytes 写文件 filename buffer nbytes 写文件 dir 列出该用户下所有文件 显示本系统命令
1#:硬盘的第1个物理块固定用于存放主文件目录MFD。 MFD结构 typedef struct mfd{ username ;///用户名 14B userpwd ; 密码14B link; //该用户的UFD所在的物理块号(4B) }MFD; 每个MFD项占32字节,因此,1个物理块可存放512/32=16个 MFD(用户),即本文件系统最多可管理16个用户。如下所示:
3. 二级目录结构
主文件目录MFD
用户名
用户文件目录地址
用户文件目录UFD
文件名 文件属性
文件起始块
文件长度
百度文库 4. 文件系统的主要功能
假定文件系统提供的文件操作有建立文件(create)、 打开文件(open)、关闭文件(close)、显示文件 (type)、写文件(write)和删除文件(delete)。在模 拟程序,用户先login,然后从键盘上输入文件操作命 令来模拟各用户程序中所调用的各种文件操作,最 后用logout退出系统。程序的结构可参考:
2)输入命令 如输入错误命令,则提示可用Help 输入Help命令,则列出所有可用命令 输入其他可用命令,调用相关函数
文件系统模拟总结
文件的逻辑结构:流式文件。 物理结构:链接文件。 物理空间管理:空闲链法。 目录结构:二级目录结构。 目录搜索技术:线性搜索。 FCB:含文件相关的全部属性。
二级文件系统模拟软件结构设计
•采用分层结构构造系统。可分为五层:主控层(Unix)、 命令解释层(Command)、文件层(File)、块层(Block)、 流层(Stream) 。 •主控层(Unix)类:实现初始界面,用户登录,若登录成 功,允许用户输入不同的命令,调用命令命令解释层对应的 方法,完成用户要求; •命令解释层( Command )类:要求实现各种命令的解释, 并调用文件层相应的方法实现。 •文件处理层(File):完成文件系统的各种操作,并将文 件操作处理过程和底层块处理联系起来。其中可设计MFD类: 管理主目录;UFD类:管理用户目录; •块层(Block):实现块一级的操作;读、写一个块; •流层(Stream):实现流一级的操作。读、写文件 :从文 件中读出、写入字符。
文件打开后可用 “read”操作读指 定文件中的若干个 字符,放在buffer 中,约定从读指针 开始顺序读nbytes
用显示 buffer 内容来 模拟
5)关闭文件 Close(filename) Close(fd) 根据用户提供的 文件名或文件描 述符,在该文件 的控制块上做修 改,如文件控制 块内容、文件内 容等已修改,则 要写回外存。文 件关闭后,删除 在UOF中的登 记栏,且要建立 文件的结束标志
操作系统课程设计 文件系统模拟
实验时间:第9~16周
一 、实验内容
模拟采用二级目录结构的磁盘文件系统中 的文件操作。
二、实验目的
掌握文件子系统的原理,加深对二级目录结构的 文件系统中用户管理、文件管理、目录管理的理解, 并用程序实现对文件子系统的模拟。
三、实验要求:
实现的命令: Chmod Chown Mv Copy Type filename mode filename new_owner srcFile desFile srcFile desFile filename 改变文件权限 改变文件拥有者 改变文件名 文件拷贝 显示文件内容 修改用户口令 Logout Delete 用户登出 filename 删除文件
3)写文件 Write(filename, buffer,nbytes) 或Write(fd, buffer,nbytes ):将buffer中的 nbytes写入fd指定 的文件中。执行 Create后可写。 Open后写(修改 或追加) 用显示写入的 buffer内容和写入 的块号来模拟。
4)读文件 Read(filename, buffer,nbytes)
6)删除文件 Delete(filename) 要求删除的文件 从用户文件目录 表中除名,收回 该文件占用的存 储区域。
程序流程 1)登录: 首先为欢迎词:欢迎使用由XXX等完成的二级目录文件 系统. 提示1:请问您想要登录还是退出? 退出则结束程序. 登录,则从模拟硬盘内读入第0、第1个物理块号 提示2:您是老用户还是新用户? 老用户则从MFD中核对用户名和密码 新用户则从MFD中核对用户名是否重复?如不重 复,则MFD是否有空间?如有则在MFD中添加用户, 并分配一个空闲物理块用于该用户的UFD和UOF (初始为无记录)
用输入命令来模拟文件 操作格式如下 1)创建文件 fd=Create (filename,mode) 显示“建立成功”,并 返 回fd(一个非负整数)。
2)打开文件 fd= Open(filename, mode)
约定处于建立状态 的文件不允许打开。 显示“打开成功”, 并返回fd(一个非 负整数。
四、实验指导
1.基本思想:用一个disk.txt 文件模拟一 个物理硬盘, 通过对该文件的一系列操作, 模拟文件系统中对文件的各种操作。因此, 大型实验中所有的文件操作均对disk.txt文 件进行。
2.物理盘块的设计
以一个文本文件disk.txt模拟硬盘,设定硬盘容量分为 100个物理块,每个物理块的大小512字节,盘块之间用 (‘\n’)分割。因此一个盘块:512字节数据+1字节(‘\n’)分 割符=513字节,则disk.txt 长度=51300( 100×513 ) +1字节(文件结束符)=51301字节 。 100块盘块的分布: 1#: MFD块,存放MFD信息; 2-17#: UFD块,存放UFD信息; 18-33#: UOF块,存放UOF信息; 其余物理块用于存放文件内容。
相关文档
最新文档