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 个块就是保留区,其中包含如下信息:位图与文件描述符。

位图用来描述磁盘块得分配情况.位图中得每一位对应一个逻辑块.创建或者删除文件,以及

文件得长度发生变化时,文件系统都需要进行位图操作.前

个块得剩余部分包含一组文件

描述符。每个文件描述符包含如下信息:

• 文件长度,单位字节

• 文件分配到得磁盘块号数组。该数组得长度就是一个系统参数.在实验中我们可以把它设

置为一个比较小得数,例如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):


本文标签: 文件 磁盘 目录 指定