操作系统:文件系统

目录

1、文件

概念:

UNIX文件分类:

2、文件系统

3、文件的访问方式

顺序访问

随机访问

4、文件的组织

逻辑组织

物理组织

5、倒排结构(了解)

5、文件目录

文件控制块(FCB)

​编辑

目录项

单级目录

二级目录

多级目录

6、文件目录的改进

7、文件存储空间的管理

空闲块表

空闲块链

位图

8、内存所需表目


1、文件

概念:

具有符号名而且在逻辑上具有完整意义的信息项序列

UNIX文件分类:

1、普通文件

内容可以是程序、数据、图象等,保存在磁盘块中

2、目录文件

(文件名,文件号)序列,保存在磁盘块中

3、特殊文件

设备

2、文件系统

文件与管理信息资源的程序集合

3、文件的访问方式

顺序访问

分类:

1、从文件头开始顺序访问

2、从文件中间某处开始顺序访问

随机访问

分类:

1、按记录编号随机访问,相当于数组访问索引。

2、按关键字(key)随机访问,相当于Map通过键访问键值。

4、文件的组织

逻辑组织

**定义:**用户看到的文件组织形式
分类:

流式文件: 字节的序列(UNIX, Windows, etc),文件的基本单位是字节

记录式文件:

等长记录(优点:处理方便,速度快;缺点:空间浪费)

不等长记录(优点:省空间;缺点:处理不便,速度慢)

文件的基本单位是记录。

一条记录可能包含多个域,域指的是信息的一个特定类别或字段。

例如:一条员工记录可能包含姓名、职位、部门、入职日期等域。

当记录的域只有一个,且域的类型为字符型,则记录式文件便退化为流式文件。

流式文件是记录式文件的特例

物理组织

**定义:**逻辑组织(文件)到磁盘块的映射

1、顺序结构

**定义:**一个文件占有若干连续的磁盘块。

2、链接结构:

**定义:**一文件可存于不连续块中,块间以指针相连。

3、索引结构

**定义:**一文件可存于不连续块中,块号记在索引块中。

4、散列结构(重点):

杂凑结构,适用于定长记录和按键随机查找的访问方式。一个文件由若干个记录构成,一个记录由若干个域。散列结构是通过给键key计算哈希值,从而计算出记录在磁盘中或文件中的存储位置。

hash(key)=addr (记录在磁盘或文件中的存放位置)

对于哈希函数的冲突碰撞问题,采用顺序探查法, 如发生冲突,则从冲突位置开始顺序探查第一个空闲的存储位置。

要给记录增加两个域,一个是冲突计数,一个是空闲标记。冲突计数主要是记录与当前地址发生冲突的个数,也就是说**记录位置=addr+冲突计数往回找。**而空闲标志是来标志当前记录空间是否被占用。以下是查找过程

5、倒排结构(了解)

**定义:**以键值和记录地址构成的索引结构称为倒排结构。以键值和记录地址构成的索引结构称为倒排结构。倒排结构以多个键和多个索引作为特征的。

优点:速度快

缺点:索引会带来较大的系统开销。

5、文件目录

文件控制块(FCB)

**定义:**文件存在的标志,其中保存系统管理文件需要的全部信息。每个文件都有一个文件控制块。

目录项

**定义:**目录文件中的一项,内容为FCB。

单级目录

**定义:**一个系统只有一个目录。

二级目录

**定义:**每个用户都有一个自己的专有目录。

多级目录

**定义:**从根节点出发的目录系统

6、文件目录的改进

FCB次部(文件名,文件号)保存在目录文件(内存)中。

FCB主部(其他,标识该主部与多少次部相对应的链接记数)保存在外存inode区域。

提示:当链接计数为0时,表示空闲未用的FCB主部。

7、文件存储空间的管理

**引入:**用于保存文件的外存空间是被划分为块的,需要对外存块进行管理。

空闲块表

**定义:**所有空闲块记录同一个表中,表中包括两栏目:首空闲块号和空闲块数。

空闲块链

**定义:**所有空闲块连成一条链。

位图

**定义:**使用1bit表示外存储器中一块的状态,1表示占用,0表示释放。位图需要永久保存在外存空间中。

8、内存所需表目

**用户打开文件表:**用于记录进程所打开的文件,其长度决定该进程可以同时开多少个文件,每个进程一个。

系统打开文件表: 存放在内存中,用来保存已打开文件的文件控制块,其长度决定整个系统可以同时开多少个文件,整个系统一个。

相关推荐
躺不平的理查德2 分钟前
shell-特殊位置变量
linux·运维·服务器·bash
刘什么洋啊Zz9 分钟前
K8S--边车容器
运维·云原生·容器·kubernetes
ζั͡山 ั͡有扶苏 ั͡✾11 分钟前
KubeSphere部署安装,接入KubeKey安装的k8s集群
运维·云原生·容器·kubernetes·kupesphere
Clarence Liu13 分钟前
macOS docker hub / docker desktop替代方案
运维·docker·容器
GottdesKrieges18 分钟前
GaussDB数据库故障定位手段
java·数据库·gaussdb
半聋半瞎38 分钟前
【MySQL索引:B+树与页的深度解析】
数据库·b树·mysql
东软吴彦祖1 小时前
利用 LNMP 实现 WordPress 站点搭建
数据库·架构
dal118网工任子仪1 小时前
40,【5】CTFHUB WEB SQL 时间盲注
数据库
凌龍墨1 小时前
SQL 递归 ---- WITH RECURSIVE 的用法
数据库·sql·mysql·回归
对自己不够狠1 小时前
SQL ON与WHERE区别
数据库·sql