【操作系统】文件系统(一):文件的存储介质及结构
技术是开源的,知识是共享的。
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 查找文件的流程
【操作系统】文件系统(一):文件的存储介质及结构相关推荐
- 文件系统(文件系统目录结构、磁盘分区、虚拟文件系统)、linux内核结构框图
什么是文件系统? 常规认知就是根目录下那些文件,但其实并不是那样.文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构:即在存储设备 ...
- 计算机操作系统感悟随笔--文件和文件系统
一.文件和文件系统 文件管理:把所管理的程序和数据组织成一系列的文件,并能进行合理的存储.使用等操作. 1 )基本概念 数据项:描述对象某种属性的字符集:是数据组织中可以命名的最小逻辑数据单位. 记录 ...
- 操作系统之文件管理:2、文件的逻辑结构(有结构文件、无结构文件、顺序文件、索引文件、索引顺序文件)
2.文件的逻辑结构 思维导图 逻辑结构VS物理结构 文件的逻辑结果分类 1.无结构文件 2.有结构文件 按照记录的长度来分: 按照逻辑结构来分: 1.顺序文件 问题:能否实现随机存取? 2.索引文件 ...
- [架构之路-164]-《软考-系统分析师》-3-操作系统基本原理-文件系统(文件的逻辑组织、文件的物理组织、硬盘空间管理、分布式文件系统)
目录 3 . 4 文件系统 3.4.1文件的组织结构 1 . 逻辑结构 2 . 物理结构 3 . 树形文件结构 3.4.2 硬盘存储空间管理 1 . 空闲文件目录 2 . 空闲块链 3 . 位示图法 ...
- 操作系统——文件系统
文章目录 1.文件系统概述 1.1文件 1.1.1文件的定义和命名 1.1.2与文件相关的概念 1.2文件系统 1.2.1文件系统的定义和命名 1.2.2文件系统的类型 1.2.3文件管理的目的 2. ...
- Linux操作系统文件系统基础知识详解
标签:基础知识操作系统根目录Linux程序 一 .Linux文件结构 文件结构是文件存放在磁盘等存贮设备上的组织方法.主要体现在对文件和目录的组织上. 目录提供了管理文件的一个方便而有效的途径. Li ...
- linux存储--从内核文件系统看文件读写过程(四)
系统调用 操作系统的主要功能是为管理硬件资源和为应用程序开发人员提供良好的环境,但是计算机系统的各种硬件资源是有限的,因此为了保证每一个进程都能安全的执行.处理器设有两种模式:"用户模式&q ...
- 转 从内核文件系统看文件读写过程
系统调用 操作系统的主要功能是为管理硬件资源和为应用程序开发人员提供良好的环境,但是计算机系统的各种硬件资源是有限的,因此为了保证每一个进程都能安全的执行.处理器设有两种模式:"用户模式&q ...
- 从内核文件系统看文件读写过程
阅读目录 系统调用 虚拟文件系统 I/O 缓冲区 Page Cache Address Space 文件读写基本流程 系统调用 操作系统的主要功能是为管理硬件资源和为应用程序开发人员提供良好的环境,但 ...
最新文章
- Mockplus设计大赛获奖选手专访 | High音:轻松生活,随心嗨音
- python新手之一环境安装
- MapReduce简介
- Flume数据传输事务分析[转]
- java泛型程序设计——翻译泛型表达式+翻译泛型方法
- 微信无连接服务器1.104,微信成语猜猜看太子少师答案汇总 太子少师1-104关攻略...
- 【人工智能】命题逻辑测验题题解
- 在机器学习中为什么要进行 One-Hot 编码?
- if js 判断成绩等级_Java判断语句的语法和使用
- gridview自动编号
- Lua的协程和协程库详解
- 智能脚本植入与CBSS+
- “确定“和“取消“摆放顺序
- 华为设备MSDP配置命令
- 解答,修正(JAVA+=运算程序诡异事件 )
- php 遍历文件夹并压成zip_将文件夹压缩成zip文件的php代码
- 如何提升Excel水平?5个Excel常用技巧,学会不加班
- 面试吹牛B,入职就倒霉了
- 视频插件VideoJS5介绍
- 最简单粗暴的蓝牙耳机选购技巧,盲选不踩雷五款品牌推荐
热门文章
- 开机按F1才能进入系统的完整解决方法
- python骰子点数识别_Python n个骰子的点数
- 0x80070035(0x80070035找不到网络路径 共享打印机)
- Dell PowerEdge T110 BIOS无法保存设定
- 我的计算机管理里面没有家庭组,Win10控制面板没有家庭组怎么解决?
- 架构师之路--让代码和血液相融!!
- 【Nodejs博客项目开发】之原生nodejs实现博客系统(一)
- django动物领养救助系统 计算机毕设源码63583
- matlab最小拍单位速度绘图,疑问,最少拍计算机控制系统的设计问题?
- python实现概率论与数理统计_如何学概率论与数理统计?