【操作系统】 文件管理

为什么要有柱面号、扇区号、磁头号?——这都是什么存在。。。


    最开始对这三个概念有了一个简单的概念,觉得知道就可以了,没想到后面还是要使用的,所以,理解一下还是很有必要的。

    其实这三个可以对应咱们从前学过的三维立体的x轴、y轴、z轴。但为什么这三个为什么不叫xyz轴,而是起了这么奇怪的名字?这是因为和具体的物理模型有关系。

    在我们从前的平面中是横平竖直的x轴和y轴,我们确定一个点很容易,但是如果是一个圆形呢?还是在上面打网格吗?显然是不太合理的。而我们的硬盘的面就是圆形的,所以采取了不同的定位方式。

    新的定位方式也很常见,就是类似于经纬线的方法。在地球上,如果我们看的是俯视图(如下图),我们定位某一个点,它的经线是直线,而纬线则是一个圈。


【操作系统】 文件管理_第1张图片

   

    可以看出来,这个平面被经线分成一个个扇形,这就可以类比硬盘的扇区,但是知道扇区还是确定不了在哪一块,通过一圈圈的纬线,我们可以得到具体在扇形的哪个地方,这就类比于硬盘的柱面号(因为从立体上看多层的相同磁道圈从下向上叠起来就可以形成一个柱面)。这样,我们就得到了圆形上的特殊的x轴y轴,也就是柱面号、扇区号。

    至于磁头号,那就是个z轴,用来寻找到底是哪一层磁盘。

    理解到这里,就可以比较容易去进行关于柱面号、磁头号、扇区号的运算了。






顺序?链接?索引?——放东西也是技术活


    这一块讲的是如何在硬盘上存东西,上面讲了如何定位,给了我们一个合理方便的找到每一个地址的手段。那么空间有了,如何向里面放东西呢?

    显然,首先想到的就是顺序方式,一个一个挨着放呗,但是这样会造成空间的浪费,因为小的东西一旦取出来之后,大的东西放不到它的位置,如果有大量的小东西放进取出,就会大量碎片式的孔隙空间。


    然后就有链接结构的用武之地了。这里的链接结构很像处理器管理中的进程队列,就是形成一个队列,每个人知道后面的人是谁就好了。那么我只要知道第一个人在哪,我就通过第一个人找到第二个然后第三个....这样,文件就不是连续的,可以把文件切成小块,相互连接,然后放到磁盘的各个合适的地方。 

    关于链接的扩充和删除,和队列是一样一样的。如果这有一个队列:小红、小橙、小黄、小绿、小蓝,把小黄提出队列的方法就是让小黄说出小绿的地址,然后小橙记住这个地址,然后小黄就在这个队列中消失了~ 添加也是类似,只要让你前面的人知道你,你知道你后面的人就好了,所谓知道就是保存你所在的地址。 

    链接提高了利用率,但是查找速度却没有上去,如果这有一个一万个人的队列,就是要找最后一个,那就得慢死了。


    索引结构就可以很好的解决这个问题。简单来说,就是像目录一样,打开目录,你在哪,就直接找到你。但有时候,数据多的时候,这个目录也会很大的...





总结


    我们可以看出,在操作系统的学习中,每一个概念的提出,大多都是为了解决一个问题。而如果是同一块领域的问题,不用阶段的解决方案或者技术,往往都是在上一个阶段上发展而来的,是一个不断进化的过程。可能最初的技术很粗糙,很淳朴,但是慢慢的演化,我们会发现每一个技术的提出,每一个方案的提出,都让感觉那些工程师思想之巧妙。

    同时也可发现,在我总结的时候,用到很多生活中的例子,也可能很多技术的想法都是来源于生活吧。

    在操作系统领域,一直都在解决两个问题:1.最大化利用有限的资源;2.尽可能提高效率。这和我们的生活不谋而合,所以,通过结合生活可以很好的理解,它们所谓的难以理解只是在说着不同的名字,但讲的都是同一回事。




你可能感兴趣的:(【操作系统】 文件管理)