二级目录的文件系统模拟
操作系统课程设计 文件系统模拟
实验时间:第9~16周
一 、实验内容
模拟采用二级目录结构的磁盘文件系统中 的文件操作。二、实验目的掌握文件子系统的原理,加深对二级目录结构的 文件系统中用户管理、文件管理、目录管理的理解, 并用程序实现对文件子系统的模拟。
三、实验要求:实现的命令: Chmod Chown Mv Copy Type filename mode filename new_owner srcFile desFile srcFile desFile filename 改变文件权限 改变文件拥有者 改变文件名 文件拷贝 显示文件内容 修改用户口令 Logout Delete 用户登出 filename 删除文件
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.基本思想:用一个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信息; 其余物理块用于存放文件内容。
1#:硬盘的第1个物理块固定用于存放主文件目录MFD。 MFD结构 typedef struct mfd{ username ;///用户名 14B userpwd ; 密码14B link; //该用户的UFD所在的物理块号(4B) }MFD; 每个MFD项占32字节,因此,1个物理块可存放512/32=16个 MFD(用户),即本文件系统最多可管理16个用户。如下所示:
用户名 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个文件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;
3. 二级目录结构主文件目录MFD
用户名
用户文件目录地址
用户文件目录UFD
文件名 文件属性
文件起始块
文件长度
4. 文件系统的主要功能假定文件系统提供的文件操作有建立文件(create)、 打开文件(open)、关闭文件(close)、显示文件 (type)、写文件(write)和删除文件(delete)。在模 拟程序,用户先login,然后从键盘上输入文件操作命 令来模拟各用户程序中所调用的各种文件操作,最 后用logout退出系统。程序的结构可参考:
用输入命令来模拟文件 操作格式如下 1)创建文件 fd=Create (filename,mode) 显示“建立成功”,并 返 回fd(一个非负整数)。
2)打开文件 fd= Open(filename, mode)约定处于建立状态 的文件不允许打开。 显示“打开成功”, 并返回fd(一个非 负整数。
3)写文件 Write(filename, buffer,nbytes) 或Write(fd, buffer,nbytes ):将buffer中的 nbytes写入fd指定 的文件中。执行 Create后可写。 Open后写(修改 或追加) 用显示写入的 buffer内容和写入 的块号来模拟。
…… 此处隐藏:736字,全部文档内容请下载后查看。喜欢就下载吧 ……- 基于PLC控制的航空电镀生产线自动输送
- 中考预测课内外文言文对比阅读2
- 2018-2023年中国商业智能(BI)产业市场
- 中国金融体制改革研究2011new
- 外窗淋水试验方案
- 精益生产(Lean Production)
- 学校安全事故处置和信息报送制度
- Chapter 5 Human Resources Management
- 【小学数学】人教版小学六年级上册数学
- 初中数学解题方法与技巧
- 山东省创伤中心建设与管理指导原则(试
- 函数与数列的极限的强化练习题答案
- 10分钟淋巴按摩消脂
- 网络应急演练预案
- 服装设计入门基础知识
- 初二数学分式计算题练习
- (人教新课标)高二数学必修5第二章 数列
- 最新自主创业项目
- 北京大学 无机化学课件 4第4章 配合物
- 贸易公司业务管理制度




