了解硬盘的原理对于编程,做数据优化(比如磁盘i/0瓶颈,机械硬盘慢的原因)都是有好处的。
以前总觉得不太需要了解这些,但是越是做到后面,发现,了解计算机各个组件的原理,其实才能理解更加深入的知识,否则永远只是一个敲代码的工人。
<数据库系统的实现>里面之所以开辟一个专门的章节讲解磁盘的原理,是理解到磁盘在数据库优化中的重要地位。
总结知识点(包含我的疑问,以后补充):
盘片。一个盘片有两个盘面:上盘面和下盘面。
每个盘面都要配置一个磁头来读取里面的数据。
我疑问在于:
磁盘的控制器竟然能够做到这么精准,能够识别出盘面的某个点已经旋转到我这里来了,马上读取数据。
是不是这样子,盘片就的主轴就是负责旋转就可以了,不停的旋转,磁盘控制器控制磁头读取盘片上的数据。
我表示非常感叹,吃惊。竟然能够这么精准得做到控制。
一个1tb的和500g的磁盘,是盘片数量的增加,还是盘片体积增加呢。
我看到3.5寸的磁盘,以前也是350g的。而2.5寸的磁盘,能够做到500g。这样说明与体积无关。
那是如何计算硬盘的容量大小的呢。
先看有多少个盘面。假设是4个盘面(我的笔记本硬盘坏了,我拆开看)
然后计算每个盘面的容量大小,那么就把4个盘面的大小加起来。
要想知道一个盘面的容量大小。先求出这个盘面有多少个磁道(即同心园)。一般是65536的磁道的(2的16次方个)。
每个磁道里面存储数据的地方实际上是扇区。是把磁道划分为相同大小空间的扇区。扇区之间有一点点间隙,这个间隙没有被磁化为0和1标识。
一个磁道,大概含有256个扇区。
一个扇区的大小是4096个字节。
于是大小就出来了:
4*(65536*256*4096)=274877906944字节。
262144M。转换成g单位,就是256g?
奇怪了,那么笔记本的磁盘500g看来是错误了。是哪里错误了,磁道数错误了吗?
硬盘控制器其实也有一个缓存的,网上是这么介绍:
缓存(Cache memory)是硬盘控制器上的一块内存芯片,具有极快的存取速度,它是硬盘内部存储和外界接口之间的缓冲器。