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

王道操作系统笔记第四章-文件管理(非常完整!包学包会!融入笔者自己的思考!)

4.1.1、初识文件管理

image-20250101191238572

image-20250101191322220

image-20250101191544445

image-20250101191708096

image-20250101191812914

image-20250101192001956

image-20250101192114310

image-20250101192144930

image-20250101192248140

image-20250101192426587

image-20250101192512805

image-20250101192752115

image-20250101192900799

image-20250101193001268

image-20250101193057171

4.1.2、文件的逻辑结构

image-20250101194346793

image-20250101194413155

image-20250101194516685

image-20250101194707397

但可变长记录才是生活中最常见的。

image-20250101194813707

image-20250101194838488

image-20250101195101908

记录到底是定长的还是可变长的,记录是否按照关键字有序排列,记录在物理上到底是顺序存储还是链式存储都会影响顺序文件能不能实现某一些功能。

image-20250101235720971

image-20250101235903451

image-20250102000209956

image-20250102000822923

每个索引项记录了分组的名字以及存放的位置。索引表其实是一个定长记录的串结构的顺序文件。每一个分组都是一个顺序文件。

image-20250102001130112

image-20250102001230497

image-20250102001302419

image-20250102001423464

4.1.3、文件目录

image-20250102001515385

image-20250102001603330

image-20250102001727390

image-20250103103735276

image-20250103103833502image-20250103103934296image-20250103104045552

image-20250103104232571image-20250103104335294image-20250103104427609

树形结构不便于实现文件的共享

image-20250103104705464image-20250103104734236

image-20250103114927011

320/16=20

image-20250103115006255

image-20250103115102878

4.1.4、文件的物理结构(上)

image-20250103115243309

image-20250103115515204

image-20250103115555736

image-20250103115720402

image-20250103115941793

能够随机访问是连续分配方式的最大的优点

image-20250103120116016

顺序读/写速度快是第二个优点。

image-20250103120210609

image-20250103120256062

image-20250103120341471

image-20250103120401818

image-20250103120429157

image-20250103120559641

image-20250103120628805

image-20250103120639623

image-20250103120844379

image-20250103120959338

i=0的话就不用查FAT了,因为起始块就是i=0的块。

读FAT的时间远小于I/O时间,所以忽略不计。

image-20250103121024233

image-20250103121040220

4.1.4、文件的物理结构(下)

image-20250103164624375

4个字节的空间包含32个二进制位。

我有一个问题,如果索引表存放的索引项超过256个即1KB怎么办???

image-20250103164901928 image-20250103164941539

image-20250103165308851

一个磁盘块就只能存256个索引项,那么在哪里存下一个索引表的指针呢???

image-20250103165542331

image-20250103165553530

而如果一个文件很小只有1KB,采用多层索引的方式反而要读好几次磁盘,这不合适。

image-20250103165917973image-20250103170035840

image-20250103170244617

4.1.5、逻辑结构VS物理结构

image-20250103171005302

image-20250103171108971

image-20250103171217412

image-20250103171340396

image-20250103172046951

image-20250103171506833

image-20250103171828790

image-20250103171945342image-20250103172000473image-20250103172011627

image-20250103172659653

image-20250103172732146

image-20250103172925627

image-20250103173109480

image-20250103173250683

索引文件采用连续、链接、索引存储都可以,以上以索引分配为例。

image-20250103173349143

4.1.6、文件存储空间管理

image-20250103173442619

image-20250103173536644

image-20250103173727551

image-20250103173938827

image-20250103174025973

image-20250103174234240

疑问:系统如何知道某个空闲盘块前后有空闲盘块???

image-20250103174515976

image-20250103174607524

image-20250103183839780

image-20250103184753003

image-20250103184917102

image-20250103185211862

image-20250103185658452

超级块中记录着下一组空闲盘块数是多少,还需要记录这些空闲盘块号分别是多少。

每个分组的第一个磁盘块还需要记录下一组空闲盘块的信息。

倒数第二个分组的第一个盘块要设置成-1,代表下一个分组已经是最后一个分组了。

最后一组的盘块数比其他组的要少一块。

就上图来看,每个块能存101个数据,第一个数据是数量,剩下的数据要么是空闲的要么是链接。

image-20250103194533408

检查下一组的空闲盘块数是否满足当前需要。1<100,所以把下一组的最后一个盘块分出去并求改超级块的状态。

image-20250103194712716

image-20250103194830509

把300号块的信息放到超级块中是避免空闲块的链接信息断掉。

如果要分配更多磁盘块,就要一组一组分别分配,要注意每分配完一组都要把下一组空闲盘块的数据复制到超级块里。

image-20250103195053477

把新回收的这一块的链接放到超级块中,并且修改超级块中的下一组空闲盘块数修改成100

image-20250103195112562

这是第一种情况:分组没满时。

image-20250103201236809

image-20250103201348973image-20250103201425407

image-20250103201602838

4.1.7、文件的基本操作

image-20250103201640148

image-20250103201835212

image-20250103201959375

image-20250103202242523image-20250103202450732

image-20250103202533004

image-20250103202611055

image-20250103202741124

image-20250103202851344

疑问:如果写回的文件数据量超过了文件原有磁盘块的大小,还要怎么写回呢?

image-20250103203158579

4.1.8、文件共享

image-20250104004511968

image-20250104004808965

image-20250104004841885image-20250104004907492image-20250104005055891image-20250104005120796

image-20250104005158344

image-20250104005312000

如果User1和User2都不再使用索引结点1,那该结点会被删掉。软链接会失效。

image-20250104005400265

image-20250104005524043

4.1.9、文件保护

image-20250104005601748

image-20250104005705720

如果有人入侵系统得知了口令了的话,这种方式就不安全了。

image-20250104005954684

使用错误的密码解密,得到的结果和原始数据是不一样的,也就没有任何意义了。

image-20250104010135319

image-20250104010332267

不同系统对权限的划分不一样。

image-20250104010436648

image-20250104010502670

image-20250104010517886

image-20250104010553437

image-20250104010605769

image-20250104010720485

image-20250104010805891

image-20250104010941127

4.2.1、文件系统的层次结构

image-20250104011138330

image-20250104011454963

image-20250104011548572

4.2.2、文件系统的全局结构(布局)

一步一步认识文件系统在外存是如何建立的。

image-20250104011757496

一个磁盘刚生产出来的时候里面是没有划分扇区的。

image-20250104011957373

image-20250104012206916

image-20250104012240304

image-20250104012525498

4.2.3、虚拟文件系统

image-20250104012612274

不同存储介质可能会应用不同的文件系统,定义的接口可能就不相同,无法统一管理。

image-20250104012908772

image-20250104013034267

疑问:但是这样和没有虚拟文件系统又有什么区别呢?

image-20250104013151525

image-20250104013506356

在虚拟文件系统中,每当我们open打开一个文件后,虚拟文件系统就会给这个文件在主存中新建一个vnode(v)结点,这里面包含了一些文件的信息,那么无论我读的文件来自哪种文件系统,都会在打开后将数据信息复制到vnode结点中,这样的话,虚拟文件系统就可以用一个统一的数据结构vnode来标识任何一个文件的信息。

image-20250104013639128

image-20250104013736147

image-20250104013836769
剩余章节:王道操作系统笔记(非常完整!包学包会!融入笔者自己的思考!)

相关文章:

  • Vue3实战学习(IDEA中打开、启动与搭建Vue3工程极简脚手架教程(2025超详细教程)、Windows系统命令行启动Vue3工程)(2)
  • 整理一下高级设施农业栽培学这门课程的所有知识点
  • 清华同方超翔Z860装win10系统教程(兆芯KX-7000处理器装win10)
  • 高品质汉化解锁!
  • 中性点直接接地电网接地故障Simulink仿真
  • 如果布隆过滤器挂了,里边存的数据全丢失了,怎么恢复呢?
  • HTML5 表单属性
  • 字符串习题
  • 【Deepseek应用】调用 Zotero 阅读和分析文献(下)
  • SQL Server 与 MySQL 的库同步工具推荐
  • 前端充电 - 移动端 - 小程序登录、跳转/嵌入H5页面
  • MyBatis多表查询实现方式
  • 【技术白皮书】内功心法 | 第一部分 | IP协议的目的与工作原理(IP地址)
  • Linux 生成静态库
  • yarn install时报错certificate has expired
  • TON基金会确认冠名赞助2025香港Web3嘉年华,并将于4月8日重磅呈现“TON生态日”
  • Flow Matching 和 Rectified Flow的区别
  • 关于爱思唯尔官方Latex模版参考文献不是按照引用顺序编号,乱序问题
  • 怎么使用Sam Helper修改手机屏幕分辨率,使得游戏视野变广?
  • 为界面添加垂直滚动条事件
  • 网站建设是前端吗/pc网站优化排名软件
  • 建站系统源码下载/品牌宣传策略
  • 武汉市市政建设集团网站/百度手机软件应用中心
  • 网站建设案例基本流程/开一个网站需要多少钱
  • 厦门企业网站建设/软文推广模板
  • 北京市朝阳区网站制作/如何做电商新手入门