09 | 外存管理与文件系统
该思维导图由 AI 生成,仅供参考
外存的分类
- 深入了解
- 翻译
- 解释
- 总结
外置存储设备管理和文件系统是计算机系统中重要的组成部分。本文介绍了外置存储设备的种类和功能特性,以及文件系统的组织结构和不同类型存储设备所使用的文件系统。此外,还介绍了操作系统提供的管理工具和系统调用,以及虚拟内存的支持。文章强调了文件系统的设计复杂性,以及推荐了一个用于分析二进制数据格式的开源工具BPL语言。总的来说,本文深入探讨了外置存储设备管理和文件系统的技术细节,对于想要深入了解该领域的读者具有重要的参考价值。
《许式伟的架构课》,新⼈⾸单¥68
全部留言(50)
- 最新
- 精选
- Enthusiasm关于外存管理,有个问题从之前就困扰我:磁盘的IO是由CPU完成的吗?但之前见到的说法是“CPU只能操作内存”。既然今天又提到了这个问题,文中提到“大量的磁盘 IO 操作,非常占用 CPU 时间”,那这两种说法是否矛盾?还想知道磁盘中的数据是怎么被加载到内存上来的呢?另外,更多的文章是说,“CPU的速度远远大于磁盘IO,CPU经常需要‘等待’磁盘IO”,这明显也是一种将CPU和外存割舍开的一种说法,而且按这种说法,CPU不光无需分配很多时间片给IO,而且还有很多“等待”时间。这也和本文中“非常占用CPU时间”相矛盾吧?
作者回复: 所有外设cpu都统一基于数据交换(io)的方式操作。cpu并不知道数据的含义,但是设备的使用方和设备知道。这种情况下你可以简单理解cpu只是一根网线,但是很重要的一点是它让设备使用方和设备可以交互。cpu并不负责磁盘io,但是它要等它结束以接收数据。这方面当然也有一些新技术出现改善这一点,可以想一想可能的优化路径,这里不表。
2019-05-14817 - 开放(深度学习学者)太简单了感觉,基本没有怎么说清楚,第一硬盘存储其中一个文件他是怎么存放的数据块和元数据是怎么结构,inode是什么,还有数据和元数据的索引表,甚至作为文件系统ext3的多层表索引和12个直接链接,一个单层,和多层索引等等都没说,文件系统的整体架构,特别是到底怎么优化等等也没说,还有虚拟内存,具体程序段怎么映射到物理内存,空余内存怎么管理,虚链表,对应的两难性能问题怎么解决?
作者回复: 文件系统主要我觉得从架构上理解比较容易,所以没有特别交代太多。可能后面 review 的时候会适当重构一下这一篇。
2019-05-27414 - 陈光老师,能否简单介绍一下基于内存的数据结构和基于外存的数据结构有何不同?我们平时所说的“数据结构和算法”是不是偏向于内存?另外,“路径冲突”是不是指多个进程同时访问同一个文件?
作者回复: 1、外存的数据结构的特征是io是很费时的操作,所以外存数据结构+算法的优化方向是减少io次数,这个和内存很不一样。 2、平常数据结构大部分是内存;但一般数据结构书最后有几章会谈到外存数据结构+算法。 3、是的。
2019-05-1412 - Liber许老师,把你的知识掌握了去七牛应聘会不会so easy?
作者回复: 真掌握了去哪里都easy ^_^
2019-09-289 - 大糖果老师好,有个问题,就是关于Windows自带的文件搜索,我们都知道那东西很慢,但是有一款everything的软件却可以做到很快,微软的技术是不用质疑的,他们为什么不把这个文件搜索做快点呢?还是这样的软件会有别的损耗?
作者回复: 确实不一样,一个有建立搜索的索引,有额外的存储成本;一个是遍历(挨家挨户问过去)。
2019-05-1439 - 花儿与少年怎么越来越像计算机组成原理了。希望更多的软件架构知识
作者回复: 第一章会更偏基础体系,结合体系谈架构
2019-05-1725 - 张sir许老师,我有两个疑问, 1.如果操作系统的swap占用过高,会直接影响cpu性能吗。2.路径的冲突检查机制,是不是就是像mysql服务那样,当服务运行起来后,就会创建xxx.pid文件保存进程的pid,来保证进程的互斥
作者回复: 1、会,swap访问越频繁,cpu呈现出来的性能越低,其实是因为访问存储的速度低,数据读写速度低,纯粹的计算是不影响的,但是这个世界没有脱离存储的计算。所有的计算你可以想象成从存储读出来数据,进行纯粹的计算得到结果,然后再把结果写回存储中去。所以计算的性能和存储性能密切相关。2、对的,这是非常常见的一种互斥手法。
2019-07-1324 - eletarior看回复 ,很多人和我一样,对"Unix的一切皆是文件不是最佳实践"这个论点,有困惑.如果在图形界面时代的一切皆文件这样的架构设计不再适宜,为何类unix的设计者不改变这种设计,或者说,从架构的角度说,这样的设计定型了,是不是就不好改了?本课的主题其实是外设的统一接口是文件系统,那么把外设都当做文件进行抽象化处理,不出很合适么?
作者回复: 这种统一给我的感觉就像很多面向对象的类库,所有的类统一从Object类继承一样,是一个过度设计。
2019-05-1524 - DaDo Wang想到了HDFS(Hadoop Distributed File System ),文中说的文件系统和HDFS应该不属于一个层吧?个人理解,HDFS应该全是更上层的应用软件层文件系统,它在外置存储的文件系统上,做了对分布式的文件进行管理的功能还请老师解答~😁
作者回复: 不是一个层面,后面服务端开发部分会讨论分布式文件系统
2019-05-154 - 82多个进程去访问修改相同的外存地址文件时,谁来控制并发修改是操作系统还是外设驱动程序? 如果提高外存的访问速度是否可以减少缺页的处理时间,进而一定程度缓解卡顿的情况?
作者回复: 1、操作系统;2、对的,以前用机械硬盘作为swap,有时候慢比较显著;现在电脑基本上都用固态硬盘做swap,慢的感觉基本上完全消失了。
2019-05-144