文件管理(第八章、九)

文件

分类

文件逻辑结构

文件内部数据的组织方式和关系,决定文件中数据元素之间的逻辑联系和存储方式

无结构/流式文件:

一些二进制或字符流组成

有结果/流式文件:

一组相似的记录组成,又称为"记录式文件"

记录是一组相关数据项的集合,数据项是文件系统中最基本的数据单位

类型:顺序文件(存取速度快,插删记录困难,不利于动态扩充);索引文件(索引表;检索速度快,插删记录方便,系统开销大);索引顺序文件(顺序存取速度快,随机访问,增删改记录方便);直接文件(也称为直接存取文件;直接寻址)和哈希文件

文件物理结构

文件在存储介质上的实际存储方式和组织形式,影响文件的存取速度

文件在外存的组织方式

常见物理结构:

①连续分配

②链接分配------

隐式链接【不会有碎片问题,只支持顺序访问】

显式链接【文件分配表,常驻内存;顺序访问和随机访问,不会有碎片问题,占用存储空间】

FAT文件系统

③索引分配【顺序访问和随机访问,占用存储空间】

基本操作

创建文件

分配空间

在目录中记录该文件

写文件

分配指针

读文件

文件寻址

删除文件

打开文件的关联信息

文件指针

文件打开技术

文件磁盘位置

访问权限

※文件系统

主要是实现按名存取

※逻辑文件

从用户观点看的文件组织形式,是用户可以直接处理的数据及结构

※文件访问速度

提前读、为文件分配连续的簇、延迟写、采用磁盘高速缓存

※文件多级间址

目录结构

目录:文件名称和它的索引节点号结合在一起的一张表

数据结构

文件控制块FCB------目录文件中一条记录就是一个文件控制块,包含文件基本信息

索引节点------一个结构,包含文件长度、创建及修改时间、权限、所属关系、磁盘中的位置等信息

操作

搜索

创建文件

删除文件

显示目录

修改目录

结构

单级结构目录

两级结构目录

树形目录结构

无环图目录结构

目录查询技术

线性检索法

哈希法

※目录项组成

文件共享

基于索引节点的共享方式------链接到多个目录中;硬链接

利用符号连接实现文件共享------只存放路径link;软链接

※多进程共享文件

多进程可以同时以"读"或"写"方式打开文件

系统打开文件表只有一张

各进程的用户打开文件表中,同样一个文件的表项内容不一定相同

进程关闭时会是文件的引用技术-1,引用计数为0时删除表项

文件保护

访问类型:

执行

添加

访问控制:

控制用户身份

口令密码

文件存储管理

初始化

目录区

文件区

管理方法

空闲表

空闲链

位示图

成组链接法

※磁盘空闲区管理

可用于文件系统管理空闲磁盘块的数据结构是位示图、空闲磁盘块链、文件分配表FAT、成组链接法

相关推荐
玄同76543 分钟前
SQLite + LLM:大模型应用落地的轻量级数据存储方案
jvm·数据库·人工智能·python·语言模型·sqlite·知识图谱
吾日三省吾码44 分钟前
别只会“加索引”了!这 3 个 PostgreSQL 反常识优化,能把性能和成本一起打下来
数据库·postgresql
chian-ocean1 小时前
百万级图文检索实战:`ops-transformer` + 向量数据库构建语义搜索引擎
数据库·搜索引擎·transformer
小Tomkk1 小时前
数据库 变更和版本控制管理工具 --Bytebase 安装部署(linux 安装篇)
linux·运维·数据库·ci/cd·bytebase
qq_12498707531 小时前
基于JavaWeb的大学生房屋租赁系统(源码+论文+部署+安装)
java·数据库·人工智能·spring boot·计算机视觉·毕业设计·计算机毕业设计
倒流时光三十年2 小时前
SpringBoot 数据库同步 Elasticsearch 性能优化
数据库·spring boot·elasticsearch
码农小卡拉2 小时前
深入解析Spring Boot文件加载顺序与加载方式
java·数据库·spring boot
怣502 小时前
MySQL多表连接:全外连接、交叉连接与结果集合并详解
数据库·sql
wjhx3 小时前
QT中对蓝牙权限的申请,整理一下
java·数据库·qt
冰暮流星3 小时前
javascript之二重循环练习
开发语言·javascript·数据库