当前位置: 首页 > news >正文

文件管理系统

前言:之前我们讨论的是被打开文件的管理,那么未被打开的文件是如何管理的呢?

1.认识磁盘设备

1.1磁盘的物理结构

磁盘是由盘片(盘面,扇区,磁道,柱面),磁头,马达构成。具体工作如下:

  1.2磁盘的存储结构

磁盘的基本存储单元是扇区,一个扇区是512byte。尽管不同磁道的扇区大小不同,但是都是存储着512byte的数据。

如何定位扇区呢?首先可以通过柱面(同心圆同半径的磁道)确定磁道,通过磁头确定盘面,最后通过盘片的旋转确定扇区。这就是CHS寻址法。

1.3磁盘的逻辑结构

我们可以想象把磁盘扯开成一条,将其抽象成现性结构。

将其抽象成一个sector arr[N]的数组,这样就能将对磁盘的管理抽象成对一个数组的管理。知道扇区的下标,就能找到扇区的物理地址。这就是LBA寻址方法。 

在操作系统方面我们使用的LBA方法对磁盘进行管理,机械结构方面采用的是CHS方法对磁盘进行实际的读写。这样达到了方便管理,且不与硬件强耦合的目的。

2.认识OS的读取

虽然disk是以512byte的基本单位对数据存储,但是OS一次性是对文件系统的多个扇区进行读取的,常见的就有4kb为基本单位进行读取。

OS哪怕只读1bite的数据,也必须一次性将4kb的数据load到内存中读取或者修改,有必要再写回磁盘中。

操作系统对内存的管理也是以4kb大小的空间进行划分管理的,我们称为页。

3.文件管理系统

我们对磁盘的管理采用分治的思想,先将整个磁盘分区,也就是分为C盘D盘等,再将分区的再分组,再将组分为小块,通过对块的管理就能对整个磁盘的管理

例如我们创建文件的时候,首先就是在inode bitmap中找一个空的inode,并置为1, 在inode table中填写文件属性,再将data blocks中写数据,并映射块编号到inode 的blocks数组中,并将block bitmap中的特定数据块置为1.

我们删除文件,就只需要将文件的inode bitmap和blocks bitmap中对应的块置为0.

3.1目录文件

目录也是文件,目录的data blocks中存储着目录中文件名和inode的映射关系。因此我们可以理解

目录的r权限可读,意味着我们可以查看目录文件信息。也就是data blocks

目录的w权限可写,意味着我们可以在目录中创建文件,也就是在data blocks写文件名和inode映射关系

目录的x权限可执行,意味着我们可以在打开进入一个目录

4.软硬链接

4.1软链接

在linux中使用指令ln -s 目标文件 文件名,即可创建目标文件的软链接。

软链接的文件具有独立的inode,其指向的data blocks中存储的是目标文件的文件地址。

4.2硬链接

在linux中使用ln 目标文件 文件名,即可创建目标文件的硬链接。

硬链接与目标文件具有相同的inode ,意味着其指向相同的data blocks。例如我们的. 和..都是硬链接。

当我们删除原目标文件时,hardlink并不受影响,但text会因为找不到文件而无法访问。

4.3链接数

 

这样我们就能理解了,如果当一个inode的引用计数变为0时,才会真正的删除。 

相关文章:

  • Spring Boot 配置属性 (Configuration Properties) 详解:优雅地管理应用配置
  • 创建多模块教程
  • ARMv8.x-M架构计算能力概览
  • react路由5和6新增及区别
  • 【论文阅读】FairCLIP - 医疗视觉语言学习中的公平性提升
  • 基于香橙派 KunpengPro学习CANN(2)——Ascend Extension for PyTorch 配置与安装
  • 深度学习框架PyTorch——从入门到精通(5)自动微分
  • Web3游戏行业报告
  • XML转义符详解:如何在XML中正确处理特殊字符
  • Vue3项目匹配PC端和移动端---两套组件
  • 生成式人工智能大模型备案政策深度解读
  • 请大家推荐一款免费的网站模版。
  • 【C++】多参数构造函数使用explict的情形
  • LSM-Tree(Log-Structured Merge-Tree)详解
  • Java 单例模式与线程安全
  • Electron使用WebAssembly实现CRC-16 MAXIM校验
  • jmeter环境搭建及使用
  • 【第9章】亿级电商平台订单系统-整体技术架构设计
  • 【华为OD-E卷 -123 判断一组不等式是否满足约束并输出最大差 100分(python、java、c++、js、c)】
  • AI技术学习笔记系列003:`liger_kernel`、`flashattn2` 和 `unsloth` 介绍
  • 企业网站建设西安/注册域名后如何建立网站
  • 用vs2013做网站/南宁seo推广外包
  • wordpress禁止右键插件/seo最新教程
  • 大连网站推广工具/深圳新闻最新事件
  • 搜索引擎网站的搜素结果有何区别/站长统计app
  • 用dw做网站的视频/关键词优化是怎么做的