注:本文为本人读书总结,内容仅供参考。
一、实物图
二、原理图
- 磁头(head):每个盘片一般有上下两面,分别对应1个磁头,共2个磁头;
- 磁道(track):磁道是从盘片外圈往内圈编号0磁道,1磁道…
- 扇区(sector)数:每个磁道都别切分成很多扇形区域,每道的扇区数量相同;
- 所有的盘片(一般硬盘里有多个盘片,盘片之间平行)都固定在一个主轴上。在每个盘片的存储面上都有一个磁头,磁头与盘片之间的距离很小(所以剧烈震动容易损坏),磁头连在一个磁头控制器上,统一控制各个磁头的运动。磁头沿盘片的半径方向动作,而盘片则按照指定方向高速旋转,这样磁头就可以到达盘片上的任意位置了。
三、读取数据的流程
- 操作系统发送指令:取0柱面(最外层的所有磁道组成的一个圆柱面),0磁头(第1个磁头),1扇区(第一个扇区)的数据
- 第1个磁头移动到第一个柱面(锁定了一个磁道的数据)
- 主轴转动,转动到第一个扇区的时候,将数据取出
四、硬盘空间的组织方式(如何为文件分配内存)
详细见:磁盘文件管理程序
可以想象,一块较大的磁盘空间其实是由无数个盘块组成的,那么这些盘块如何组装成一块较大的内存来分配给一个文件呢?
- 连续:为每个文件分配一块连续的空间,各个盘块相邻接,第一个盘块的地址为a,第二个就是a+1,第三个是a+2 ……
优点:知道文件的起点和长度便可以像数组一样随机存取数据;连续的盘块基本都在同一个磁道,效率极高;
缺点:需要事先知道存储的文件的大小来决定分配哪些连续空间、插入删除会产生许多碎片化的文件, - 链式:属于一个文件的盘块通过链接成为一体,每个链条的首地址作为文件地址记录在相应文件的FCB的“物理地址”字段中。记录盘块链接的指针显示地记录为一张链接表,所有已分配的盘块号都记录在其中,称文件分配表(FAT),为了提高文件系统访问速度,FAT一般常驻内存
缺点:FAT过大,太占内存,需要遍历FAT - 索引:每个文件都建一张索引表记录分配的内存盘块的信息;
例如一个索引表定义为13个地址项:iaddr(0)~iaddr(12),总的来说分为两种:直接地址、间接地址
小文件:
iaddr(0)~iaddr(9)存放直接地址,即存文件数据的盘块号;
中文件:
iaddr(10)存放单级索引的索引盘块号;
大文件:
iaddr(11)存放二级索引的主索引盘块号
iaddr(12)存放三级索引的主索引盘块号