文件系统

1 文件系统的概念

1.1 引言

在这里插入图片描述

1.2 文件

一、文件定义
1、文件是具有符号名的信息(数据)项的集合。
2、文件是具有符号名的记录的集合。

二、文件名
根据文件的定义,每个文件必须有一个唯一的文件名,不论是系统管理,还是用户使用文件都使用文件名。
文件名是一个有限长度的字符串。
DOS、WINDOWS系统中文件名:
文件名 · [文件扩展名]
文件名是一个不大于8个字符的字符串,但WINDOWS系统中允许超长文件名,最多可有256个字符,不区分英文字母的大小写。

文件扩展名:
不大于3个字符,一般用来表示文件的类型。
例如:
C C语言源程序文件
COM 可执行文件(小模式)
EXE 可执行文件(大模式)
BAT 批处理文件
OBJ 目标文件
hust.txt ll.c ll.obj ll.com ll.exe

UNIX系统中的文件名:
文件名是一个不大于14个字符的字符串。并且区分英文字母的大小写。
例如:unix linux ll.c a .out aa AA
注意:在UNIX系统中文件名就是一个字符串,没有文件名和文件扩展名之分,文件的类型由用户命名时确定。
例如,li.c,UNIX系统认为这个文件名的长度是4个字符。
而在DOS、WINDOWS系统中则解释这个文件名,li是文件名,c是文件扩展名,表示该文件是一个C语言的源程序文件,而·是文件名和文件扩展名的分隔符。

三、文件的分类
教材讲了三种文件分类的方法,下面介绍UNIX系统文件分类方法:
1、普通文件
普通文件是无结构的字符的集合。
2、目录文件
目录文件是由文件的目录项组成的文件。
3、特别文件
特别文件就是设备。

四、文件的属性
文件属性反映文件的类型、存取控制等
UNIX系统中文件属性:
- 普通文件
d 目录文件
p 管道文件
c 字符型设备文件
b 块设备文件

1.3 文件系统

文件系统是操作系统中负责管理和存取文件信息的软件机构,它是由管理文件所需的数据结构和相应的管理软件以及访问文件的一组操作组成。
从系统的角度看:文件系统是一个负责文件存储空间管理的机构。
从用户的角度看:文件系统是用户在计算机上存储信息、和使用信息的接口。

通用文件系统应具有以下功能:
1、提供用户对文件操作的命令;
2、提供用户共享文件的机制;
3、管理文件的存储介质;
4、提供文件的存取控制的机制,保障文件及文件系统的安全性;
5、提供文件及文件系统的备份和恢复功能;
6、提供对文件的加密和解密功能。

可以用两种不同的观点去进行研究文件结构
用户观点:
是研究用户“思维”中的抽象文件,或称逻辑文件,其研究的侧重点在于为用户提供一种逻辑结构清晰、使用简便的逻辑文件形式。用户将按照这种形式去存储、检索和加工有关文件中的信息。

实现观点:
是研究驻留在设备“介质”中的实际文件,或称物理文件。它研究的侧重点是选择一些工作性能良好、设备利用率高的物理文件形式。系统将按照这种形式同外部设备打交道并控制信息的传输

2 文件的逻辑组织与存取方法

2.1 文件的组织

文件的组织有两种:
文件的逻辑结构:
文件的逻辑结构是指用户思维中文件的结构。
文件的物理结构:
文件的物理结构是指文件在存储介质上的结构(或称组织)。在当代,文件的存储介质是磁盘,包括软盘、硬盘和光盘、磁带,早期还有磁鼓。由于目前的磁带是模拟磁盘的结构,所以文件的物理结构主要是指磁盘上文件的结构。

一、文件的逻辑结构
文件的逻辑结构:
结构文件--记录式文件。
无结构文件--流式文件
1、流式文件
无结构的流式文件是相关的有序字符的集合。文件的长度为所含字符数。
UNIX、DOS、WINDOWS系统中的普通文件都是流式文件。

2、记录式文件
记录式文件是一种结构式文件,文件是记录的集合. 每个记录由彼此相关的域构成。记录可按顺序编号为记录1,记录2,…,记录n。如果文件中所有记录的长度都相同,则这种文件为定长记录文件。
定长记录文件的长度 = 记录个数x记录长度。
变长记录文件的长度为各记录长度之和。
例如:学生登记表文件 xsdjb.dbf
姓名 学号 籍贯 通信地址 邮政编码
李铭 925678 武昌 武昌关山街125号 430074
司马乐 925679 北京 北京海军路88号 100034

3、两种文件的比较
流式文件就象给一张白纸给用户,用户可将他的信息任意地写到纸上,没有任何格式上的限制。
记录式文件就象给一张表格给用户,用户要按表规定的格式填信息。
显然,结构式文件对用户的限制很大,使用起来就不方便,所以记录式文件被淘汰是理所当然的。

二、存取方法
顺序存取:
后一次存取总是在前次存取的基础上进行的。每次存取不必给出存取开始的位置。
随机存取:
每次存取操作都要指定存取操作的开始位置。在系统中提供文件存取操作有:
n = read(fd,buffer,size);
m = write(fd,buffer,size);
这两个操作总是从当前位置开始读(或写),执行顺序存取操作。

leek(fd,offset,mode)
调整文件的读写起始位置的系统调用,若在read、write之前执行leek操作,就调整了文件的读写指针(读写开始的位置),实现了随机存取。

3 文件的物理结构

一个文件存储介质,格式化后就分成许多大小相等的单位--存储块(物理盘块),在现代计算机系统中,一般来说,每个物理块是一个磁盘的扇区,512字节。并给每个存储块有个编号,称为物理块号。

文件的物理结构指文件在存储介质上的结构,目前有三种基本结构,即连续文件结构、串联文件结构和索引文件结构。
在这里插入图片描述

3.1 连续文件

在这里插入图片描述
评价:
优点:结构简单,实现容易,不需要额外的开销。
缺点:用户创建文件时要给出文件的大小;
不利于文件的动态增加和修改;
连续文件是一种连续结构的文件,对每个文件要求存放在存储介质上的连续的物理块中,存储空间利用率不高。类似于存储管理中的分区
适用于变化不大的顺序访问的文件,在流行的UNIX系统中仍保留了连续文件结构。

3.2 串联文件

一个串联文件结构是按顺序由串联的块组成的,即文件的信息按存储介质的物理特性存于若干块中。
每个物理块的最末一个字(或第一个字)作为链接字,它指出后继块的物理地址。链首指针存放在该文件目录中。文件的结尾块的指针为“∧”。
这种文件结构不要求连续存放。
对于记录式文件一块中可包含一个逻辑记录或多个逻辑记录,也可以若干物理块包含一个逻辑记录。
在这里插入图片描述
评价:
1.存储空间利用率高;
2.文件创建时用户不必指出文件的大小;
3.文件动态扩充和修改容易。
4.顺序存取效率高,随机存取效率太低,如果访问文件的最后的内容,实际上是要访问整个文件。
类似于存储管理中的页式

3.3 文件照映

为了克服链接文件的存取效率太低的问题,人们提出文件映照的技术,即把链接文件中的链接字集中在一结构中,这样既保持了链接文件的优点,也克服了其缺点,DOS、WINDOWS系统就采用了这样结构。
FAT:文件分配表,磁盘格式化后建立,从磁盘的第二个开始,有两个相同的FAT。
磁盘的类型 :
FDF,双面,FCH,单面(9扇
区/磁道)
F8H,硬盘
000H:空闲簇
FFFH:文件的结尾簇
XXXH:文件的下一簇
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.4 随机文件

随机文件结构是另一种形式的非连续文件,文件数据存放的存储介质上的物理块号与文件的逻辑块号一一对应,并建立这样对应关系的数据结构--文件索引表。
访问文件时,根据文件的逻辑块号查文件索引表,找到对应的物理块号,然后,进行访问。
随机文件有三种形式的结构:直接地址结构、索引结构、计算寻址结构。
索引结构是当代计算机操作系统中普遍采用的结构,如UNIX系统、LINUX系统。

索引文件结构
这种文件结构的数据结构是文件的索引表,每个文件有一个索引表,表中每个表目包括:逻辑块号,物理块号。
索引表位置:文件目录中,文件的开头等。
索引表大小:固定大小,非固定大小。
在这里插入图片描述
UNIX系统采用索引文件结构,UNIX系统采用多级间接索引结构,对小型文件采用直接索引,对大型文件采用间接索引,从而,既保证绝大多数的文件有高的存取效率,又能适应存取一些大型文件。(既保证了文件系统的高效率,又使其有很宽的适应面)。
在这里插入图片描述
在这里插入图片描述

3.5 文件物理结构的比较

连续文件的优点是不需要额外的空间开销,只要在文件目录中指出文件的大小和首块的块号即可,对顺序的访问效率很高。适应于顺序存取。缺点是动态地增长和缩小系统开销很大;文件创建时要求用户提供文件的大小;存储空间浪费较大。
串联文件克服了连续文件的不足之处,但文件的随机访问系统开销较大。适应于顺序访问的文件。DOS系统中改造了串联文件的结构,使其克服了串联文件的不足,但增加了系统的危险性。

索引文件既适应于顺序存取访问,也适应于随机访问,是一种比较 好的文件物理结构,但要有用于索引表的空间开销和文件索引的时间开销。UNIX系统是使用索引结构成功的例子。
在当前流行的一些UNIX操作系统的版本中,同时支持连续文件结构和索引文件结构。DOS、WINDOWS系统支撑类似于文件映照结构

4 文件存储空间管理

UNIX系统的空闲块的管理在UNIX系统中每个子文件系统(一片软盘、一个硬盘的分区,一卷磁带)格式化后的结构如图所示,其中特别块是存放该子文件系统的管理信息,其中,包括空闲块管理信息。

s-nfree :空闲块数
s_free[100]:空闲块块号
s_flock:锁位
在这里插入图片描述

UNIX系统的空闲块的管理
在这里插入图片描述
在这里插入图片描述

5 文件目录

5.1 文件目录及内容

文件目录:
文件目录即文件名址录。它是一张记录所有文件名及其存放地址、文件的说明和控制信息的表格。
一般情况下,每个文件占用一个表目,即每个文件有一个文件的目录项。

文件目录项:
1.文件名
2.文件的大小,单位:字节
3.文件在物理存储介质中的位置。取决于文件的物理结构 。
对于连续文件:文件起始块号(即文件的第一个物理块块号);
对于串联文件:指向第一个物理块的指针;
对于索引文件:索引表。
4.存取控制信息
文件主和其它用户对该文件的访问权限。
5.管理信息
包含文件创建的日期和时间,最近修改该文件的日期和时间等。
6.文件的类型

5.2 一级目录结构

一级文件目录
最简单的文件目录结构是在系统中建立一张线性表,每
个文件占一表目,由文件名和文件的说明和管理信息组
成。这样的表称为一级文件目录.
一级文件目录的主要功能是实现“按名存取”, 并且实现
容易。
主要问题是"重名"问题
所谓“重名”是指不同用户对不同文件起了相同的名字,即两个或多个文件只有一个相同的符号名
在这里插入图片描述

5.3 二级目录结构

二级目录结构是将文件目录分成主文件目录和用户文件目录两级。系统为每个用户建立一个文件目录(UFD),每个用户的文件目录登记了该用户建立的所有文件名及其在辅存中的位置和有关说明信息。
主目录(MFD)则登记了进入系统的各个用户文件目录的情况,每个用户占一个表目,说明该用户目录的属性,包括用户名、目录的大小、组织形式及其所在的物理地址等。

5.4 多级目录结构(树型目录结构)

目录文件
由文件的目录项组成的文件称为目录文件。
系统中有一个根目录(或根目录文件),在这个目录中可登记一般文件,也可以登记目录文件,在每个目录文件中可以登记一般文件,也可以登记目录文件。
根据这个递归定义就形成了一个倒立的树的结构。对于一棵树,它有一个树根(只有一个,根目录),在树根上可以长树叶(一般文件),也可以长树枝(子目录文件);对于每个树技又可以长树枝,也可以长树叶。
在这里插入图片描述
路径名:
一个文件的路径名是由根目录到
该文件的通路上所有目录文件名
和该文件的符号名组成的。
DOS WINDOWS系统中文件路径名
\A\R\T \B\IU\I
\D \B\P
UNIX系统中文件路径名
/A/R/T /B/IU/I
/D /B/P

6 共享与安全

6.1 文件共享与安全性的关系

文件共享是指某一个或某一部分文件可以让事先规定的某些用户共同使用。
为实现文件共享,系统还必须提供文件保护的能力,即提供保证文件安全性的措施。
文件的保护是指文件本身不得被未经文件主授权的任何用户存取,而对于授权用户也只能在允许的存取权限内使用文件。

6.2 建立“当前目录”实现文件共享

建立“值班目录”或称“当前目录”,是多路信息计算系统(MULTICS)采用过的办法。
该系统令每个用户(或作业)获得一个“值班目录”,对文件的所有访问都是相对于“值班目录”进行的。

6.3 采用“链接技术”实现文件共享

链接,就是在相应目录表目之间进行链接,即一个目录中的表目直接指向另一个目录的表目。
采用这种方法,在文件说明中必须增加“连访属性”和“用户计数”两项。
“连访属性”说明表目中的地址是指向文件还是指向共享文件的目录表目。
“用户计数”说明共享文件的当前用户数目。

6.4 存取权限的类型及其验证方法

文件的存取控制很多系统按照用户间的关系,把它们分为三类对象:文件主、同组用户、和其他用户。每个文件都有一个文件主,由他创建这个文件。除上述两种身份之外的所有用户都属于其他用户,可根据需要为他们规定某些存取权限。在UNIX 系统中,对文件存取权限的规定比较简单,用9个二进制位表示,分成三个域,每个域三位,它们是:rwx , 分别控制读、写和执行操作。

(一)访问控制矩阵
(二)存取控制表
(三)用户权限表
(四)口令
(五)密码

7 文件的完整性

对信息的有意和无意的破坏确实存在。
系统必须保存所有文件的双份拷贝,以便在任何不幸的偶然事件后能够重新恢复所有文件。
建立文件拷贝的基本方法:
周期性转储;增量转储

8 文件操作

为了用户能方便、灵活地使用文件,文件系统通常提供使用文件的有关系统调用命令。这些有关文件的系统调用命令描述了文件系统呈现在用户面前的面貌。
命令的数目及其功能取决于操作系统环境。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值