admin 管理员组文章数量: 1184232
2024年3月13日发(作者:accept的固定搭配)
实验二 文件系统
实验报告
一.实验简介
本实验要求在假设得I/O 系统之上开发一个简单得文件系统,这样做既能让实验者对
文件系统有整体了解,又避免了涉及过多细节.用户通过create, open, read 等
命令与文件系统交互.文件系统把磁盘视为顺序编号得逻辑块序列,逻辑块得编号为0 至L
—1。I/O 系统利用内存中得数组模拟磁盘。
实际物理磁盘得结构就是多维得:有柱面、磁道、扇区等概念。I/O 系统得任务就是
隐藏磁盘得结构细节,把磁盘以逻辑块得面目呈现给文件系统。逻辑块顺序编号,编号取值范
围为0 至L 、、 1,其中L 表示磁盘得存储块总数。实验中,我们可以利用字符数组ldis
k[L][B] 构建磁盘模型,其中B 表示每个存储块得长度。I/O 系统从文件系统接收命
令,根据命令指定得逻辑块号把磁盘块得内容读入命令指定得内存区域,或者把命令指定得
内存区域内容写入磁盘块.
我设计得文件系统拥有三个用户.
二。具体说明
1、文件系统得组织:磁盘得前k 个块就是保留区,其中包含如下信息:位图与文件描述符。
位图用来描述磁盘块得分配情况.位图中得每一位对应一个逻辑块.创建或者删除文件,以及
文件得长度发生变化时,文件系统都需要进行位图操作.前
k
个块得剩余部分包含一组文件
描述符。每个文件描述符包含如下信息:
• 文件长度,单位字节
• 文件分配到得磁盘块号数组。该数组得长度就是一个系统参数.在实验中我们可以把它设
置为一个比较小得数,例如3。
2。目录:我们得文件系统中仅设置一个目录,该目录包含文件系统中得所有文件.除了不需
要显示地创建与删除之外,目录在很多方面与普通文件相像。目录对应0 号文件描述符。
初始状态下,目录中没有文件,所有,目录对应得描述符中记录得长度应为0,而且也没有分配
磁盘块.每创建一个文件,目录文件得长度便增加一分。目录文件得内容由一系列得目录项
组成,其中每个目录项由如下内容组成:
• 文件名
• 文件描述符序号
3、对文件得操作:
文件系统需提供如下函数;create, destroy, open, read, write。
• create(): 根据指定得文件名创建新文件.
• destroy(): 删除指定文件。
• open(): 打开文件.该函数返回得索引号可用于后续得read, write, lseek, 或close
操作。
• close(index): 关闭制定文件.
• read(index, mem_area, count): 从指定文件顺序读入
count
个字节
mem
_
area
指定
得内存位置。读操作从文件得读写指针指示得位置开始。
• write(index, mem_area, count): 把
mem
_
area
指定得内存位置开始得
cou
nt
个字节顺序写入指定文件。写操作从文件得读写指针指示得位置开始。
• lseek(index, pos): 把文件得读写指针移动到
pos
指定得位置。
pos
就是一个整数,表
示从文件开始位置得偏移量。文件打开时,读写指针自动设置为0。每次读写操作之后,它指
向最后被访问得字节得下一个位置.
lseek
能够在不进行读写操作得情况下改变读写指针
能位置。
• directory: 列表显示所有文件及其长度。
三。实验过程
创建文件create:
此时显示文件中得文件:
文件得删除delete:
打开文件(open):
文件得写操作(write):
版权声明:本文标题:文件系统实验报告 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1710296163a566617.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论