跳转至

文件管理(汇总)

来源:操作系统 / note/文件管理/文件管理(汇总).md

文件

文件类型

  • 普通文件
  • ASCII文件
  • 二进制文件
  • 目录
  • UNIX的特殊文件

文件访问

  • 顺序访问
  • 随机访问

文件操作

  • create
  • open
  • close
  • write
  • read

目录

一级目录系统

所有文件都在一个目录下

image-20260527174937742|433

层次目录系统

image-20260527174956964|347

硬盘介绍

硬盘是文件的储存介质

能够长期保存数据,具有非易失性

磁盘

存储容量大、数据传输率高(相对)、存储数据可长期保存

固态硬盘

Solid State Disk,SSD,基于闪存的存储技术

利用高电压擦去内容

❑ 没有磁盘、没有机械驱动器

❑ 优点

速度快(平均比磁盘快3-6倍),没有寻道时间和旋转时间

具有一定的抗冲击性

静音省电

体积小

有一定的寿命,存在写次数的极限

文件系统的实现

文件系统布局

image.png|428

文件系统存放在硬盘上

多数硬盘划分为一个或多个分区,每个分区中有一个独立的文件系统

磁盘的0号扇区(或块)称为主引导记录(Master Boot Record,MBR),用来引导计算机。在MBR的结尾是分区表。

文件系统中包含的项目
  • 引导块
  • 引导装载在该分区的操作系统
  • 该分区没有操作系统也存在

  • 超级块

​ • 包括文件系统的关键参数:魔数、块的数量、其他关键信息

  • 空闲块的信息
  • i节点
  • 目录
  • 文件

文件的实现

连续分配

把每个文件作为一连串连续数据块存储在磁盘上 image.png|493

优点:实现简单,读操作性能好

缺点:磁盘容易变得零碎(删除文件时会产生碎片)

链表分配

image.png|445 为每个文件构造磁盘块链表 优点:充分利用每个磁盘块(删除只需要修改指针,不会有碎片),顺序访问速度非常快 缺点:随机访问非常慢

采用内存中的表进行链表分配(FAT

image.png|311

取出每个磁盘块的指针字,把它们放在内存的一个表中

使用此组织,整个区块可用于数据。此外,隨機訪問要容易得多。虽然仍然必须遵循链才能在文件中找到给定的偏移量,但链完全在内存中,因此无需进行任何磁盘引用即可遵循(访问内存速度要比访问磁盘速度快得多)

与之前的方法一样,目录条目只需要保留一个整数(起始块号),并且仍然能够找到所有块,无论文件有多大

缺点:必须把整个表都存放在内存中

这种方法的主要缺点是,整个表格必须一直处于内存中才能工作。该表具有1TB磁盘和1KB块大小,需要10亿个条目,10亿个磁盘块中每个条目一个条目。每个条目必须至少包含3个字节。对于查询速度,它们应该是4字节。因此,该表将一直占用3GB或2.4GB的主内存

FAT的管理方式不能较好地扩展并应用于大型磁盘中(因为磁盘越大,需要占用的内存越大),它是原始的MS-DOS文件系统,但仍然完全支持所有版本的Windows。

i节点

给每个文件赋予一个称为i节点的数据结构,包括文件属性和文件块的磁盘地址 image.png|383 只有打开的文件的i节点才在内存中 因此i节点占用的内存只和打开的文件数量有关,而与磁盘大小无关

(前面的FAT是任何时候都加载在内存中的,而这个i节点只有打开的时候才会加载) 如何解决节点空间不够的问题? 最后一个“磁盘地址” 指向一个包含额外磁盘块地址的块的地址 可以有两个或更多个包含磁盘地址的块

适用于NTFS、UNIX的文件系统

目录的实现

目录系统的主要功能是把文件名映射成定位文件数据所需的信息

文件属性可以放在目录里或者文件的i节点里

共享文件:链接

硬链接

直接共享inode:一个inode对应多个名字

Linux的命令:link 或 ln

特点:

• 文件有相同的 inode 及 data block;

• 不能交叉文件系统进行硬链接的创建;

• 不能对目录进行创建,只可对文件创建;

• 删除一个硬链接文件并不影响其他有相同 inode 号的文件。

软链接(符号链接)

文件数据块中存放的内容是另一文件的路径名的指向

Linux 命令:ln –s

Window下面又叫做快捷方式(略有区别)

特点:

• 软链接有自己的文件属性及权限等;

• 可对不存在的文件或目录创建软链接;

• 软链接可交叉文件系统;

• 软链接可对文件或目录创建;

• 创建软链接时,链接计数 i_nlink 不会增加;

• 删除软链接并不影响被指向的文件,但若被指向的原文件被删

除,则相关软连接被称为死链接(即 dangling link,若被指向路

径文件被重新创建,死链接可恢复为正常的软链接)。

日支结构文件系统(LFS)

虚拟文件系统

文件系统的管理和优化

磁盘空间管理

块大小

记录空闲块

磁盘配额

文件系统备份

文件系统的一致性

文件系统的性能

文件系统实例

FAT

UNIX v7

Linux Ext2

NTFS