没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
文件系统实验
1.1 实验目的和要求
1.1.1 实验目的
通常把文件与管理信息资源的管理程序的集合称为文件系统,它是操作系统中负责存
取和管理信息资源的模块,采用统一的方法管理用户信息和系统信息的存储、检索、更新
共享和保护,并为用户提供一套行之有效的文件使用及操作方法。
本实验利用高级语言编写程序模拟文件系统,了解文件系统的基本结构和文件的各种
操作方法,加深理解文件系统的内部功能及内部实现,从而帮助学生对各种文件操作命令
的实质内容和执行过程有比较深入的了解。
1.1.2 实验要求
1.采用高级语言编写程序模拟文件系统,文件系统采用多级目录结构,实现对文件和
目录的创建、删除、重命名、变更权限、显示文件内容、修改文件内容等操作。
2.撰写实验报告,报告应包含以下内容:
(1)实验目的;
(2)实验内容;
(3)设计思路;
(4)程序流程图;
(5)程序中主要数据结构和函数说明;
(6)带注释的源程序代码;
(7)程序运行结果及分析
(8)实验收获与体会
1.2 预备知识
1.2.1 文件和文件系统
1.文件概念
现代计算机系统中都配置了外存,大量的程序和数据以文件的形式存放在外存。如果
由用户直接管理文件,不仅要求用户熟悉外存特性,了解各种文件的属性,以及它们在外
存上的位置,而且多用户环境下还必须能保持数据的安全性和一致性,这是用户不能胜任
的。因而,现代操作系统中都配备文件系统,以适应系统资源管理和用户使用信息的需要。
文件是指由创建者所定义的、具有文件名的一组相关元素的集合。用户通过文件名就
可对文件进行访问,文件名是由字母或数字组成的字母或数字串,其格式和长度都因系统
而异。
操作系统提供文件系统的优点有:
(1)便于用户使用。
(2)文件安全可靠。
(3)系统能有效利用存储空间,优化安排不同属主文件的位置。
(4)文件系统还能提供文件共享功能。
2.文件命名
在不同的操作系统中对文件名的规定有所不同,文件名的格式和长度因系统而异。一
般来说,文件名由文件名和扩展名两部分组成,前者用于标识文件,后者用于区分文件类
型,中间用“.”分割开来,它们都是字母或数字所组成的字母数字串。早期文件名的长度仅
限 1~8 个字符,现在文件名最长可达 255 个字符。扩展名是添加在文件名后面的若干个附
加字符,又称为后缀名,用于只是文件类型。例如,.txt 指明纯文本文件,.exe 表示可执行
二进制代码文件,.obj 表示编译或汇编生成的目标文件。
3.文件类型
为便于管理和控制文件,将文件分为多种类型,下面是几种常用的文件分类方法。
(1)按用途分类:系统文件,库文件,用户文件。
(2)按存取控制属性分类:只读文件,读写文件,不保护文件。
(3)按信息流向:输入文件,输出文件,输入输出文件。
(4)按文件中数据的形式分类:源文件,目标文件,可执行文件。
4.文件属性
文件属性是指操作系统为文件配置的控制和管理信息,其目的是为方便系统和用户对
文件的管理和使用,这组属性包括以下内容。
(1)文件基本属性:文件名和扩展名、文件属性 ID,文件所属组 ID 等。
(2)文件类型属性:如普通文件、目录文件、系统文件、隐藏文件、设备文件等。也
可按文件信息分为 ASCII 码文件、二进制码文件等。
(3)文件保护属性:规定谁能够访问文件,以何种方式访问。常用的文件访问方式有
可读、可写、可执行、可更新、可删除等;有的系统还为文件设置口令用作保护。
(4)文件管理属性:如文件创建时间、最后访问时间、最后修改时间等。
(5)文件控制属性:文件逻辑结构信息,如:记录键、记录类型、记录个数、记录长
度、成组因子数等;文件物理结构信息,如:文件所在设备名、物理设备类型、记录存放
的盘块号或文件信息首选盘块号,也可指出文件索引的位置等。
5.文件存取方法
存取方法是指读写文件存储器上的物理记录的方法,由于文件类型不同,用户使用的
要求也不同,因而需要操作系统提供多种存取方法来满足用户要求。常用的存取方法如下:
(1)顺序存取。无论是无结构字节流文件还是有结构记录式文件,存取操作都在上次
操作的基础上进行。顺序存取主要用于磁带文件,但也适用于磁盘上的顺序文件。
(2)直接存取。又称随机存取,可以非顺序的从文件中的任何位置存取文件内容。它
通常用于磁盘文件。
(3)索引存取。这是基于索引文件的存取方法,由于文件中的记录不按位置而是按其
记录名或记录键来编址,所以用户提供记录名或记录键之后,先按名搜索,再查找所需要
的记录。在实际系统中,大都采用多级索引以加速记录的查找过程。
6.文件系统
文件系统是操作系统中负责管理和存取文件的程序模块。它是由管理文件所需的数据
结构和相应的管理软件以及访问文件的一组操作所组成。
1.2.2 文件目录
为了对文件实施有效的管理,必须对它们加以妥善组织,这主要是通过文件目录实现
的。对目录管理的要求如下:
(1) 实现“按名存取”
(2) 提高对目录的检索速度。
(3) 实现文件共享
(4) 允许文件重名
1.文件控制块
文件控制块(File Control Block,FCB)是操作系统为每个文件建立的唯一数据结构,
其中包括了全部文件属性,其目的是为了方便操作系统对文件的管理、控制和存取。于是
一个文件有两部分组成:FCB 和文件体(文件信息)。有了 FCB 就可以方便的实现文件的
按名存取。每当创建一个文件时,系统就要为其建立一个 FCB,用来记录文件的属性信息;
每当存取文件时,先找到其 FCB,再找到文件信息盘块号、首块物理位置或索引表就能存
取文件信息。
2.一级目录结构
目录结构的组织关系到文件系统的存取速度,也关系到文件的共享性和安全性。因此
组织好文件的目录,是设计好文件系统的重要环节。
最简单的文件目录是一级目录结构,所有 FCB 排列在一张线性表中。一级目录的优点
是简单,但它只能实现目录管理中最基本的按名存取功能,文件重名和文件共享问题难以
解决。
3.两级目录结构
两级目录结构将文件目录分成主文件目录和用户文件目录两级。系统为每个用户建立
一个用户文件目录(UFD),每个用户的文件目录登记了该用户建立的所有文件名及其属
性信息。主目录(MFD)则登记了进入系统的各个用户文件目录的情况,每个用户占一个
表目,说明该用户目录的属性,包括用户名、目录大小、组织形式及其所在的位置等。
两级目录结构提高了目录检索的速度;允许不同的用户目录中使用相同的文件名;不
同用户也可以使用不同的文件名或相同的文件名来访问系统中的同一个共享文件。
两级目录结构虽然比较简单实用,但缺乏灵活性,特别是难以反映现实世界的多层次
关系。
4.多级树形目录结构
在现代操作系统中,所有文件系统都支持多级目录结构,根目录是唯一的,每一级目
录可以是下一级目录的说明,也可以是文件的说明,从而形成树状目录结构。如图 8.1 是
Linux 目录层次结构,它是一棵倒置的有根树,树根是根目录,从根向下,每个树枝是子目
录,而树叶是文件。树状多级目录结构有许多优点,可以较好地反映现实世界中具有层次
关系的数据结合,确切地反映系统内部文件的分支结构;不同文件可以重名,只要它们不
位于同一末端子目录中即可;易于规定不同层次或子目录中文件的不同存取权限,便于文
件的保护、保密和共享等,有利于系统的维护和查找。
图 8.1 Linux 目录层次结构
1.2.3 文件结构
在系统中的所有文件都存在着以下两种形式的文件结构:
(1) 文件的逻辑结构。这是从用户观点出发所观察到的文件组织形式,即文件是
由一系列的逻辑记录组成的,是用户可以直接处理的数据及其结构,它独立于文件的物理
特性。
(2) 文件的物理结构。这是指系统将文件存储在外存上所形成的一种存储组织形
式,是用户不能看见的。文件的物理结构不仅与存储介质的存储性能有关,而且与所采用
的外存分配方式有关。
1. 文件逻辑结构
文件的逻辑结构分为两种形式:流式文件和记录式文件。
(1)流式文件
这是一种无结构的文件,文件内的数据不再组成纪录,只是一串顺序的信息集合,称
为字节流文件。流式文件中的每个字节都有一个索引,第一个字节的索引为 0,第二个字
节的索引为 1……打开文件的进程使用文件读写指针来访问文件中的特定字节。当文件打开
时,文件读写指针指向首字节,每 k 个字节的读或写操作完成,则将文件读写指针加 k。事
实上,有许多应用不再要求文件内再区分记录,因而,为了简化系统,大多数现代操作系
统如 Linux 系统只提供流式文件。
(2)记录式文件
这是一种有结构的文件,它包含若干逻辑记录,逻辑记录是文件中按信息在逻辑上的
独立含义所划分的信息单位,记录在文件中的排列按其出现次序编号,记录 0,记录
1……。
记录式文件中有两种常用的记录组织和使用方法:
① 记录式顺序文件:文件的记录顺序生成并被顺序访问。
② 记录式索引顺序文件:这种文件使用索引表,表项包含记录键和索引指针,记录键
有应用程序确定,而索引指针便指向相应记录。这种文件可针对特定记录进行存取,它也
保持着顺序访问记录的功能。
2.文件物理结构
(1)顺序文件
将文件中逻辑上连续的信息存放到存储介质的相邻物理块上形成顺序结构,叫做顺序
文件,又称连续文件。这种文件结构的优点是管理简单,存取速度快。主要缺点是建立文
件之前需预先确定文件长度,以便分配存储空间;修改、插入和添加文件记录有一定的难
度;对于变长记录的处理很困难;对磁盘做连续分配会造成空闲块的浪费。
(2)连接文件。
把逻辑文件中各个逻辑记录存放到一些磁盘块中,这些磁盘块可以是不连续的,用指
针把这些磁盘块按逻辑记录的顺序连接起来,形成了文件的连接结构。文件信息存放在磁
盘的若干物理块中,第一块文件信息的物理地址由 FCB 给出,而每块的连接字出文件的下
一个物理块位置。通常,当连接字的内容为 0 时,表示文件至本块结束。
连接文件结构的优点是易于文件扩充,不要求占用连续的外存空间,存储空间利用率
高。由于连接文件只能按连接指针顺序搜索,因此存取速度慢。
剩余32页未读,继续阅读
资源评论
我想过六级
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功