【lesson40】理解文件系统

问题

1.有没有没有被打开的文件?当然有
在哪里呢?磁盘中也叫磁盘级文件

2.学习磁盘级别文件的侧重点在哪?
站在单个文件角度:

  1. 这个文件在哪里?
  2. 这个文件有多大?
  3. 这个文件的其他属性是什么?

站在系统角度:

  1. 一共有多少个文件?
  2. 各自属性在哪里?
  3. 如何快速找到?
  4. 可以存储多少个文件?
  5. 如何快速的找到指定文件?
  6. 如何对磁盘文件进行分门别类的存储,用来支持更好的存取?

3.磁盘文件----了解磁盘
内存-----掉电易失数据的存储介质
磁盘----永久性存储介质
磁盘是一个外设,并且还是计算机中唯一的一个机械设备–>慢(OS一定会有一些提速的方式,我们不深究)

磁盘结构(物理)

磁盘盘片、磁头、伺服系统、音圈马达…
在这里插入图片描述
磁盘的盘片:
在这里插入图片描述
盘面上会存储数据!--->计算机只认识二进制----->而磁盘是两态的(南极,北极)---->而盘面上布满了这些---->向磁盘写入本质就是改变磁盘上的正负性---->通过磁头来改变。

磁盘的存储结构

在这里插入图片描述
在这里插入图片描述
同心圆为磁道,多个半径相同的磁道合起来称为柱面
在这里插入图片描述
扇区是磁盘存储的基本单位。

在物理上如何把数据写入到知道扇区里?----本质上是如何找到一个扇区
1.先确认在哪一个面上(对应的就是柱面)
2.在哪一个磁道上(也就是哪个磁头)
3.在哪一个扇区上

在这里插入图片描述
我们有了CHS寻址方式就能找到任意一个扇区。
扇区的基本大小是512字节(硬件要求)!最小也有4KB的但是比较少。

磁盘的抽象结构

我们先来看磁带结构
在这里插入图片描述
磁带没有被拉开是圆形结构---->拉出来就变成了线性结构。

而我们可以把卷起来的磁带看出磁盘。在物理上磁盘是圆形结构,在想象上可以想象为线性结构
在这里插入图片描述
所以访问扇区可以逻辑化成数组,所以访问扇区只要知道数组下标即可
所以访问扇区我们知道将LBA即可,然后通过某种方法将LBA转化为CHS

所以它们之间的对应关系:
将数据存储到磁盘------>将数据存储到该数组
找到磁盘特点扇区的位置-------->找到数组特定的位置
对磁盘的管理-------->对该数组的管理

但是磁盘是很大的,管理大的比较困难,所以我们就要对磁盘进行分区,把磁盘划分成小的来管理。
例子:
在这里插入图片描述
假设磁盘有500GB,很大那么我们就将它分成四个区。
但是分四个区后还是很大,那么我们再进行分区。
在这里插入图片描述
SuperBlock:整个文件系统属性信息,因为可能发生以外,导致前面的文件系统信息消失,进而导致文件系统瘫痪,所以在每个小区域都有整个系统的信息备份,以便恢复。

虽然磁盘的基本单位扇区是512字节,但是OS进行IO的基本单位是4KB(8*512字节)。
为什么不以512字节为单位呢?
1.太小了,有可能导致对此IO,进而导致效率降低!
2.如果OS使用和磁盘扇区一样的大小,万一磁盘变了的话,OS的源代码要不要改呢?
所以是为了软件和硬件进行解耦!

4KB为block块大小,所以磁盘也被称为块设备

Data blocks:多个4KB大小的集合
文件 = 内容 + 属性
Linux在磁盘上存储文件的时候,将内容和属性分开存储!而Data block块存的都是内容,每一个文件都有对应的inode编号

inode tableinode是一个大小为128字节的空间。保存的是对应文件的属性
该块组内
,所有文件的inode空间的集合,需要标识唯一性,每一个inode块都需要一个inode编号!
一般而言一个文件,一个inode块,一个inode编号。

Block Bitmap:假设有10000+个block,就有10000+个比特位,比特位和特定的block是一一对应的,Bitmap中某一位置比特位为1,代表该block被占用,比特位为0则表示该block可用。

inode Bitmap:假设有10000+个inode,就有10000+个比特位,比特位和特定的inode是一一对应的,Bitmap中某一位置比特位为1,代表该block被占用,比特位为0则表示该block可用。

Group Descriptor Table块组描述符,这个块组多大,已经使用了多少个。有多少inode,已经占用了多少个,还剩多少个。共有多少block,使用了多少。

如果上面的都清楚,那么就能让一个文件的信息可追溯,可管理!

我们将块组分割成为上面的内容,并且写入相关的管理数据----->每一个块组都这么干----->整个分区就被写入了文件系统信息------>也叫格式化
在这里插入图片描述
一个文件“只”对应一个inode属性节点和inode编号
一个文件只能有一个block块吗不一定

下面就有几个问题了
1.哪些block块属于同一个文件
2.找到文件,只要找到文件对应的inode编号就能找到文件的inode属性集合,可是文件内容呢?
我们的inode属性节点里面,保存了该inode文件下的所有block块编号
在这里插入图片描述
如果这个文件特别大怎么办?下次再讲

  • 18
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值