【操作系统】文件系统(一):文件的存储介质及结构

操作系统之文件系统与磁盘管理 文件系统通过逻辑结构与元数据管理实现高效存储,而磁盘管理则优化物理资源分配与访问效率。现代系统需综合考虑文件系统类型(如ReFS的高可靠性)、磁盘技术(如SSD优化)及操作系统特性(如Windows Server 2025的ReFS支持),以应对大数据与高并发需求。未来趋势包括AI驱动的存储优化、非易失性内存(NVM)集成及分布式文件系统扩展。 阅读详情

技术是开源的,知识是共享的。

1 文件与文件系统

1.1 基本概念

文件实际上是对磁盘的抽象,是指一组带标识(即文件名)的、在逻辑上有完整意义的信息项的序列。

信息项:是构成文件内容的基本单位(单个或多个字节),各信息项之间具有顺序关系。

文件系统是操作系统中统一管理信息资源的一种软件,管理文件的存储、检索、更新,提供安全可靠的共享和保护手段,并且方便用户使用。主要作用有:

  • 统一管理磁盘空间,实施磁盘空间的分配回收
  • 实现文件的按名存取
  • 实现文件信息的共享,并提供文件的保护、保密手段
  • 提供与I/O系统的统一接口

表1-1 文件的分类

类别描述
普通文件(regular)包含了用户的信息
目录文件(directory)管理文件系统的系统文件
特殊文件(special file)字符设备文件:和输入输出有关,如打印机、网卡等;块设备文件:磁盘

1.2 文件的逻辑结构与文件存取

1.2.1 文件的逻辑结构

流式文件:构成文件的基本单位是字符。文件是有逻辑意义、无结构的一串字符的集合。
记录式文件:文件由若干个记录组成,可以按记录进行读、写、查找等操作。每条记录都有其内部结构。
此外还有树形结构、堆结构、顺序结构、索引结构等。

1.2.2 文件存取

包括顺序访问和随机访问(该方式需要提供读写位置)。

2 文件的存储介质

2.1 存储介质与物理块

存储介质主要包括磁盘(包括固态硬盘SSD)、磁带、U盘、光盘等。
物理块(块block、簇cluster)是信息存储、传输、分配的独立单位。存储设备被划分为大小相等的物理块,统一编号。

2.2 磁盘的典型结构

每个磁盘包含一个盘面,盘面上有很多个同心圆,称之为磁道,每个磁道上有若干个圆弧称之为扇区。每个盘面上都有唯一的一个读写磁头,该磁头沿半径方向运动。
任何时刻只有一个磁头处于活动状态并且输入输出的数据流以位串的形式出现。
磁盘中的物理地址有三部分组成:磁头号(盘面号)、磁道号(柱面号)、扇区号。
每个扇区包含三部分内容**:标题、数据、校验信息**。
在这里插入图片描述

2.3 磁盘访问

每次磁盘请求有三个步骤组成(SSD只有第三步):
1、寻道时间:磁头移动定位到指定磁道;
2、旋转延迟时间:等待指定扇区从磁头下旋转经过;
3、数据传输时间:数据在磁盘与内存之间的实际传输。

3 磁盘空间管理

3.1 相关数据结构

1 位图

  • 用一串二进制位反映磁盘空间中分配使用情况,每个物理块对应一位,已被分配的物理块为0,否则为0;
  • 申请物理块时,可以在位图中查找为1的位,返回对应的物理块号并同时将对应位修改成0;归还时将对应位置1。
    2 空闲块表
    将所有的空闲块记录在一个表中,即空闲块表。表中主要记录两项内容:起始块号,块数。
    3 空闲块链表
    把所有空闲块链成一个链。为了防止链过多,可以用成组链接法。

3.2 磁盘地址和块号的转换

已知块号,则磁盘地址:

柱面号=[块号/(磁头数扇区数)]
磁头号=[(块号mod(磁头数
扇区数))/扇区数]
扇区号=(块号mod(磁头数*扇区数))mod扇区数

已知磁盘地址:

块号=柱面号*(磁头数扇区数)+磁头号扇区数+扇区号

当采用位图的数据结构时:

已知字号i、位号j:块号=i*字长+j
已知块号:字号=[块号/字长] 位号=块号mod 字长

4 文件控制块及文件目录

4.1 文件属性

文件属性,又称为文件控制块(File Control Block),是为管理文件而设置的数据结构,保存管理文件所需的所有有关信息。主要包括文件名、文件大小、文件地址、创建时间、最后修改时间、各种标志(只读、隐藏、系统、归档)等。

4.2 文件目录、目录文件与目录项

文件目录
统一管理每个文件的元数据以支持文件名到文件物理地址的转换;将所有文件的管理信息组织在一起,即构成文件目录。
目录文件
将文件目录以文件的形式存放在磁盘上。
目录项
目录项是构成文件目录的基本单元,可以是FCB,目录是文件控制块的有序集合。

4.3 与目录相关的概念

路径名(文件名)
绝对路径名:从根目录开始
相对路径名:从当前目录开始

5 文件的物理结构

5.1 连续结构

文件信息存放在若干连续的物理块中。
优点
支持顺序存取和随机存取;所需的磁盘寻道次数和寻道时间最少。
缺点
文件不能动态增长;不利于文件的插入和删除;容易造成外部碎片。

5.2 链接结构

5.2.1 概念

一个文件的信息存放在若干不连续的物理块中,各块之间通过指针连接,前一个物理块指向下一个物理块。
优点
提高了磁盘空间利用率;有利于文件插入和删除;有利于文件动态扩充
缺点
存取速度慢,不适于随机存取;有可靠性问题,如指针出错;需要更多的寻道次数和寻道时间;链接指针还需要占用一定的空间。

5.2.2 链接结构的一种变形——文件分配表FAT

将所有的物理块放在统一的表中,称为文件分配表,表中记录了所有物理块的块号及对应的表项的值:0表示是空的物理块,正整数表示下一块块号,-1表示这个是该文件的最后一块。

5.3 索引结构

5.3.1 概念

一个文件的信息存放在若干个不连续的物理块中,系统为每个文件建立一个专用数据结构——索引表,并将这些物理块的块号存放在该索引表中。索引表就是磁盘块地址数组,其中第i个条目指向文件的第i块。

5.3.2 索引表的组织方式

链接方式
一个盘块存放一个索引表,多个索引表链接起来
多级索引方式
将文件的索引表地址放在另一个索引表中
综合模式
直接索引方式与间接索引方式结合

5.3.3 Unix的三级索引结构

1、每个文件的主索引表有15个索引项(FCB中),每项2个字节;
2、前12项直接存放文件的物理块号(直接寻址);
3、如果文件大于12块,则利用第13项指向一个物理块,在该块中存放的是一级索引表;

假设扇区大小是512个字节,物理块等于扇区的大小,则一级索引表可以存放256个物理块号

4、对于更大的文件还可利用第14和第15项作为二级和三级索引表。
故Unix的三级索引结构最多可以容纳12+256+2562+2563个块

6 文件系统的实现

6.1 相关术语

磁盘分区(partition):把一个物理磁盘的存储空间划分为几个相互独立的部分,称为分区。
文件卷(volume):磁盘上的逻辑分区,由一个或多个物理块组成。

一个文件卷可以是整个磁盘或者部分磁盘或者跨盘(RAID)。
同一个文件卷中使用同一份管理数据进行文件分配和磁盘空间管理。
一个文件卷上包括:文件系统信息、一组文件(用户文件、目录文件)、未分配空间。
块(Block)或簇(Cluster):一个或多个(2的幂)联系的扇区,可寻址数据块。

格式化(format):在一个文件卷上建立文件系统,即建立并初始化用于文件分配和磁盘空闲空间管理的管理数据(即元数据)。

6.2 磁盘上的内容

表6-1 磁盘内容

分区说明
引导区包括了从该卷引导操作系统所需要的信息,每个卷一个,通常为第一个扇区
卷信息包括该卷的块(簇)数、块(簇)大小、空闲块(簇)数量和指针等
目录文件根目录文件和其它目录文件
用户文件

6.3 内存中所需的数据结构——以Unix为例

在这里插入图片描述

7 文件系统的实例——Unix

7.1文件目录检索

访问一个文件有两个步骤组成:
1 目录检索
用户给出文件名–>按文件名查找到目录项FCB

根据路径名检索:
全路径名:从根开始 \A\B\C\File1
相对路径:从当前目录开始 C\File1

2 文件寻址
根据目录项/FCB中文件物理地址等信息,计算出文件中任意记录或字符在存储介质上的地址。

7.2 Unix的文件系统

1 构成
Unix系统中,每个文件由一个目录项、一个i节点和若干个磁盘块组成。目录文件是由目录项构成的。
在这里插入图片描述
2 查找文件的流程
在这里插入图片描述

(王道408考研操作系统)第四章文件管理-第二节1:磁盘的结构 文章目录(1)磁盘设备组成A:存储区域B:硬盘存储器的构成(2)磁盘性能指标(3)磁盘地址(4)磁盘工作过程 (1)磁盘设备组成 A:存储区域 一块硬盘含有若干记录面,每个记录面划分为若干条磁道,每条磁道又划分为若干扇区,扇区(也称之为块)是磁盘读写的最小单位,也就是磁盘是按块存取 磁头数:也即记录面数,表示硬盘总共有多个磁头,磁头分为读磁头和写磁头,每个磁头对应一个记录面 柱面数:表示硬盘每一面盘片上有多少条磁道。在一个盘组中,不同记录面的相同编号(位置)的诸磁道构成一个圆柱面 扇区数:表示每一条磁道上 阅读详情

相关推荐

Windows磁盘与文件管理

1. 磁盘简介磁盘名用字母和英文冒号组成,其中A:和B:表示软盘,现在很少用了 打开“我的电脑”,在下面的“可移动存储设备”中,第一个就是软盘。硬盘一般分成几个区,从C:盘开始,C:一般也叫系统盘,里面安装有操作系统。光盘也在“可移动存储设备”中,图标是一个光盘。如果插上 U盘或者其它USB设备,在“可移动存储设备”中,还有一个可移动磁盘。2. 文件文件是按一定形式组织在一起的一个完整的、有名称的信息集合,是计算机系统中数据组织的基本存储单位。

悦分享 2933

Windows存储管理之磁盘结构详解

Windows磁盘结构: Windows的主流磁盘结构分为MBR和GPT两种。MBR是早期Windows的唯一选择,但是随着物理磁盘的容量不断增大。GPT结构成为目前的主流,最大支持超过2TB的容量,提供容错,多分区支持,比MBR来的更加强大。 MBR(Master Boot Record)磁盘结构: 在Basic MBR Disk中...

weixin_30607659的博客 414

【软件设计师备考 专题 】文件管理(文件目录、文件组织、存取方法、存取控制、恢复处理)

文件目录是文件系统中用于存储和管理文件信息的一种数据结构。它记录了文件的名称、大小、创建时间、修改时间等属性,以及文件在存储介质上的物理位置。文件目录的作用是为用户提供方便的文件访问和管理功能。

探索C++编程的奥秘,分享深入的技术见解和实践,旨在激发读者创造力与解决问题的思维。 931

文件系统与文件---概念、存储结构、访问

参考文档: https://blog.youkuaiyun.com/github_37882837/article/details/90672881 http://c.biancheng.net/view/880.html https://blog.youkuaiyun.com/qq_22613757/article/details/80853391 https://www.iteye.com/topic/816268 前言 网络上关于文件与文件系统的内容比较零散,这里只是搬砖。把各路大神的文章读了之后以自己理..

the_wan的博客 1730

操作系统课程设计:全面掌握文件系统管理

文件系统是操作系统中管理数据的组成部分,它负责数据的存储、检索、更新和共享。在IT行业,尤其是在数据密集型的应用中,文件系统的重要性不言而喻。它是实现数据持久化存储和组织的关键技术,确保数据的可靠性、安全性和高效访问。

weixin_42430341的博客 1190

ComfyUI安装包运行前准备:增加虚拟内存

在Windows系统中,虚拟内存是一种重要的系统资源管理机制,它主要通过将硬盘空间用作内存来扩展系统的可用内存容量。以下是虚拟内存的主要作用: 1. 扩展物理内存容量 当物理内存(RAM)不足时,系统会将一部分数据从内存转移到硬盘上的虚拟内存区域(也称为“分页文件”或“交换文件”)。这样可以为正在运行的程序提供额外的“内存空间”,确保系统能够继续运行,而不会因为内存不足而崩溃。 2. 提高系统稳定性 虚拟内存为系统提供了一个缓冲区。如果没有虚拟内存...

聚梦小课堂 1万+

Linux文件系统详解

从操作系统的角度详解Linux文件系统层次、文件系统分类、文件系统的存储结构、不同存储介质的区别(RAM、ROM、Flash)、存储节点inode。本文参考: http://blog.chinaunix.net/uid-8698570-id-1763151.html http://www.iteye.com/topic/816268 http://soft.chinabyte.com/os/142...

github_37882837的博客 9万+

PCIE Lane Margining Linux 环境配置

Copy all the provided files in folder PYC38 or PYC310 to the created pcie_lmt folder. Index of /ftp/python/3.8.10/Copy below commands to a file and rename it as "scan_pcie.py", the commands are from "685662 PCIe-LMT-Gen4_Gen5-r0p77.pdf" in the lane margi

mysongshine的博客 1436

操作系统文件系统题库

网络课课后题 1、UNIX系统中,把输入输出设备看做是 A、普通文件 B、目录文件 C、特殊文件 D、索引文件 解析: 2、文件的逻辑结构是由下列哪一项决定的? A、操作系统 B、磁盘容量 C、用户 D、文件属性 解析: 3、文件系统实现文件的按名存取是通过下列哪一项工作完成的? A、文件寻址 B、位示图查找 C、目录项分解 D、文件目录查找 ...

闲狗的博客 1万+

斯坦福大学CS224d基础1:线性代数知识

本文为斯坦福CS229的内容,也是CS224d课程的背景数学知识。概括了在机器学习和深度学习中用到的大部分线性代数知识。为了便于大家查漏补缺,这里根据英文版本整理了一个中文版本。

龙心尘 2万+

【Simscape】用Simscape实现三维物理仿真(三)——创建一个滑块单摆系统

1 首先创建一个Simscape Multibody 模型 (方法见 【Simscape】用Simscape实现三维物理仿真(一)——创建一个自由落体小球) 2 创建四个Solid模块 (1)摆杆 Shape : Brick Dimensions : [0.1 0.05 1] m (2)摆杆轴 Shape : Cylinder Radius : 0.02 m Le...

ReadAir的专栏 9036

Linux文件系统详解(文件系统层次、分类、存储结构、存储介质、文件节点inode)

本文按照自己的理解从硬件磁盘到文件系统的逐层网上的思路开展,从操作系统的角度详解Linux文件系统层次、文件系统分类、文件系统的存储结构、不同存储介质的区别(RAM、ROM、Flash)、存储节点inode。

月下小溪 4万+

新手避坑指南:HT7036计量芯片SPI读取电压的完整流程(从复位到校准)

本文详细介绍了HT7036计量芯片的SPI读取电压完整流程,从硬件准备到校准设置,重点解析了复位引脚处理、SPI通信配置、芯片初始化及数据处理等关键步骤。针对常见问题如晶振焊接、SPI时序错误等提供实用解决方案,帮助开发者高效完成电压测量与校准。

weixin_30070339的博客 326

操作系统(4)——文件系统

计算机操作系统中的文件系统相关内容总结

AI+全栈,AI+应用,实操落地,前沿技术 2315

【Claude】权限被拒绝 (Permission Denied) 全场景排查 — 已解决

权限配置是 Claude Code 安全使用的核心机制。通过合理的 allow/deny 规则、正确的通配符使用、子代理独立配置、定期安全审计,可以在保证安全性的同时不影响开发效率。deny 优先:deny 规则优先级高于 allow,先保护敏感资源通配符精确单层匹配,**递归匹配,Bash(cmd*)允许带参数最小权限:只允许必要的操作,避免Bash(*)等危险规则CI 用 skip:Headless 模式用避免挂起子代理独立:每个子代理单独配置权限,不自动继承保护密钥:deny.env。

一键难忘的博客 3943

新版ThingsBoard 4.2.0在windows上用IDEA编译记录

编译thingsboard4.2.0在windows上使用Idea

hssjf的专栏 1482

深入理解操作系统原理之文件系统

一、概述 操作系统对系统的软件资源(不论是应用软件和系统软件)的管理都以文件方式进行,承担这部分功能的操作系统称为文件系统。 1、文件 计算机系统对系统中软件资源:无论是程序或数据、系统软件或应用软件都以文件方式来管理。文件是存贮在某种介质上的(如磁盘、磁带等)并具有文件名的一组有序信息的集合。 文件名是由字符和数字组成的,例如MS-DOS中文件名由三部分组成,格式如下:[] [.

想作会飞的鱼的博客 3万+

【算能】TPU(张量处理单元)的深度解析

算能(SOPHGO)作为国产AI芯片领域的核心企业,其TPU(张量处理单元)以高能效比与全场景覆盖能力为核心竞争力,专注于边缘计算与行业垂直领域的AI推理加速。

浩瀚之水的专栏 1548

文件系统(一)---文件系统基础知识

前面主要是学习linux进程管理的调度,其细节越来越多,结合目前移动设备,其调度算法越来越复杂,涉及到芯片涉及,电源管理,多核负载等,这块内容暂时告一段落,本章正式进入到文件系统的学习。 现在的磁盘是具有大容量、低成本以及持久化的特点,即使发生断电、磁盘上的数据也不会丢失。但是对于一般用户而言,磁盘的使用是一个非常痛苦的,因为他们不清楚如何驱动一个磁盘,以及计算数据在磁盘上存放的位置。对于操作系统是一个魔术师,它提供用户各种抽象。前面章节我们学习了进程的抽象是CPU,虚拟内存的抽象是内存,对于磁盘来说,操作

奇小葩 1万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

操作系统——文件系统

将顺序文件中的所有记录分为若干个组,再为顺序文件建立一张索引表,表中记录每个组的第一个记录,该索引项包含记录的键值和指向该记录的指针。连续分配是最简单的物理文件结构,它将逻辑上连续的文件信息依次存放在外存连续的物理块中,每一个文件占用一个连续的磁盘块的集合。按照用途分类——系统文件(系统软件构成的文件,大多数系统文件只允许用户调用而不允许修改)、库文件(系统提供给用户使用的各种标准子程序库,这类文件允许用户调用,而不允许修改)、用户文件(用户委托文件系统保存的文件,如源程序、原始数据等)。

天問*的后花园 3074

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

【操作系统-113】文件系统的层次结构

物理层(Physical Layer):涉及硬盘、存储设备、磁盘块等底层存储介质。块层(Block Layer):管理存储介质上的最小存储单位(如磁盘块或数据块)。文件层(File Layer):将块层的存储单位组织成文件,支持文件的创建、删除、读取和写入。目录层(Directory Layer):管理文件的组织、命名和查找,使得文件能够被有效地定位。路径层(Path Layer):管理文件和目录的路径,提供路径解析功能。这些层次相互依赖和交互,共同确保文件系统的高效和可靠性。

m0_69378371的博客 1890

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

FatFs文件系统

本文介绍了FatFs文件操作系统,以及FatFs文件系统的移植。 FatFs是面向小型嵌入式系统的一种通用的FAT文件系统。它完全是由AISIC语言编写并且完全独立于底层的I/O介质。因此它可以很容易地不加修改地移植到其他的处理器当中,如8051、PIC、AVR、SH、Z80、H8、ARM等。

雩风廿二YJ的博客 2462

跨存储介质文件系统

Strara:跨存储介质的文件系统 参考来源 SOSP 2017 论文Topics https://www.jianshu.com/p/128a49cebe28?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendationhttps://www.jianshu....

小鸟达子的博客 1310

深入解析操作系统的文件系统:从存储介质到数据管理的核心引擎

机械硬盘时代:追求空间利用率与碎片管理SSD时代:优化写入放大与磨损均衡云存储时代:实现无限扩展与全球访问。

2301_76794365的博客 936

手把手教你玩转Linux嵌入式操作系统的移植和裁剪--第6章 根文件系统:嵌入式系统的“灵魂仓库”​​根文件系统的本质:从initramfs到ext4的存储介质选择

initramfs适用于临时环境,ext4是通用首选,而Btrfs/XFS则面向高性能场景。理解目录结构与文件系统特性,是确保系统稳定启动与高效运行的关键。根文件系统(Root Filesystem)是嵌入式Linux系统的核心组件,其本质是​。​,提供系统运行所需的目录结构、配置文件、命令行工具及动态库。根文件系统是嵌入式Linux的“灵魂仓库”,其存储介质选择需综合​。根文件系统的存储介质需满足​。

amy_mhd的博客 837

<操作系统>文件系统

文件分为内存文件和磁盘文件。磁盘文件,这是一个特殊的存在,因为它不属于冯诺依曼体系,而是位于专门的存储设备中,因此磁盘文件存在的意义是将文件更好的存储起来,以便后续对文件进行访问。文件系统是操作系统中负责管理持久数据的子系统,简单点就是负责把用户的文件存到磁盘硬件中,因为即使计算机断电了,磁盘里的数据并不会丢失,所以可以持久化的保存文件。文件系统的基本数据单位是文件,它的目的是对磁盘上的文件进行组织管理,那组织的方式不同,就会形成不同的文件系统。

2301_79991997的博客 1156
上一篇: 【数据结构与算法精炼】字符串解码讨论
下一篇: 【操作系统】文件系统(二):文件系统的管理及性能
少侠露飞
博客等级 码龄9年 214粉丝 117原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值