操作系统:文件系统

目录

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、内存所需表目

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

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

相关推荐
老邓计算机毕设8 分钟前
SSM智慧社区家政服务系统80q7o(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·ssm 框架
松涛和鸣1 小时前
72、IMX6ULL驱动实战:设备树(DTS/DTB)+ GPIO子系统+Platform总线
linux·服务器·arm开发·数据库·单片机
likangbinlxa1 小时前
【Oracle11g SQL详解】UPDATE 和 DELETE 操作的正确使用
数据库·sql
r i c k2 小时前
数据库系统学习笔记
数据库·笔记·学习
野犬寒鸦2 小时前
从零起步学习JVM || 第一章:类加载器与双亲委派机制模型详解
java·jvm·数据库·后端·学习
IvorySQL3 小时前
PostgreSQL 分区表的 ALTER TABLE 语句执行机制解析
数据库·postgresql·开源
Yeats_Liao3 小时前
评估体系构建:基于自动化指标与人工打分的双重验证
运维·人工智能·深度学习·算法·机器学习·自动化
·云扬·3 小时前
MySQL 8.0 Redo Log 归档与禁用实战指南
android·数据库·mysql
IT邦德3 小时前
Oracle 26ai DataGuard 搭建(RAC到单机)
数据库·oracle
爱吃生蚝的于勒3 小时前
【Linux】进程信号之捕捉(三)
linux·运维·服务器·c语言·数据结构·c++·学习