为什么你的硬盘容易坏?因为它转得实在是太快了...

51CTO官微技术资讯/行业精华/产品心得内容转载自:大数据前沿作者:二胖并不胖有一种痛叫作三天两头在公众号和知乎收到童鞋们让我帮忙选电脑的留言和私信。“程序员...


51CTO官微

技术资讯/行业精华/产品心得

内容转载自:大数据前沿

作者:二胖并不胖

有一种痛叫作三天两头在公众号和知乎收到童鞋们让我帮忙选电脑的留言和私信。

“程序员虽然写代码,但是不会修电脑;就像范冰冰虽然演电视,但是不会修电视一样”。

程序员,真的被误会了。

不过呢?

每当收到童鞋们让我帮忙选电脑的请求时,我还是认真地回答。

可是每当我答到内存、CPU、SSD的时候,很多童鞋又不懂。其实二胖个人觉得,在信息时代,人人都应该掌握一些计算机组成和体系结构的知识,特别是相关专业的童鞋。

所以,我决定以后咱们有空的时候也讲讲计算机组成。

今天,我们就先聊一聊硬盘吧。

PS:看不下去可以直接翻到最后,教你如何优雅的让程序员帮你修电脑~

千万别没事开着机就端着你的笔记本电脑到处走动,很容易坏的!

笔记本电脑和台式电脑相比有一个很大的缺点,就是硬盘容易坏(HDD-机械硬盘),因为笔记本电脑需要经常移动,容易把硬盘给震着,但这好像也是笔记本的优点吧。

为什么笔记本的硬盘容易坏?

那我们就得先了解机械硬盘的构造。在介绍硬盘之前先来介绍一下留声机。相信大家都在电视上见过下图中的这个玩意,它叫留声机,是伟大的发明家爱迪生先生于1877年发明的。

它的原理其实很简单,盘片上有很多凹槽,当指针和凹槽接触的时候,针尖随凹槽波动而轻微地振动,从而转化为声音,大家就可以听到美妙的音乐了。

其实计算机磁盘也是这个道理,如下图是一个拆开的磁盘,可以看到,磁盘上也有一个读写头。

和留声机不同的是,读写头和光盘面是不接触的,他们之间通过磁性来传递信息。也就是说,磁盘是用磁介质来存储信息的。

如果你经常听见你的笔记本电脑内部有什么东西在细微震动,那多半就是你的磁盘在飞速转动。

此外,磁盘并不是像上图那样只有一面,如果夸张地把磁盘内部结构放大,它应该是下面这个样子的:

这样一个看起来薄薄的磁盘其实一共有n张光盘共2n个面,每个面都可以记录信息。如下图中的左半部分所示。

每个盘面都有一组被称为磁道的同心圆,就如下面的磁道0、磁道1等等;每一个磁道又被划分为一组扇区。(这里很多同学可能会理解错误,扇区指的不是那个扇形,而是那一小段圆弧)。

扇区与扇区之间有一些间隙,把扇区隔开。

每个扇区都可以存储数量相等的数据位,通常是512字节。前面加粗的字不知道大家有没有发现不对劲的地方?

对于圆弧形的扇区来说,越靠近圆心的圆弧就越短。既然每个扇区的磁道长短不一,为什么还存储着同样大小的信息呢(通常是512字节)?

没办法,就是这么蛋疼。在讲这个蛋疼的事情之前,我们还需要再了解一下柱面。柱面指的是所有盘面到主轴距离相等的同心圆的集合。可以参考上图右面的那个示意图,比如图中有4个光盘,8个盘面,那么一个柱面就由8个同心圆磁道构成。

好了,讲了柱面我们继续讲刚刚那个蛋疼的事情。

从上图左边的示意图可以看出,无论是靠近圆心的磁道还是最外圈的磁道,都被分割成了数量相等的扇区,并且每个扇区存储的数据量是一样的。

这样就会造成,靠内的扇区之间间隔很小,而越往外扇区之间的间隔就越大,如果非要用一句人话来描述就是:越往外,磁道记录信息的密度就越低。

扇区数目是由最靠内的磁道能记录的扇区数来决定的,这就是最坑的地方,最里面的磁道能划分为多少个扇区,那么最外层的磁道就必须存多少个扇区。十分浪费,当然,人类肯定不能一直这样设计。

后来有一种新的技术出现了,就是多区记录,什么意思呢?

用大白话说就是,假设一个磁盘有200个同心圆(柱面),之前200个柱面都按最里面的那个柱面来划分扇区。

现在的多区技术就是,把200个柱面划分为x个组,我们这里就假设成4个组,每个组50个柱面。

第一组的1~50个柱面以第1个柱面为基准划分扇区;第二组51~100柱面以第51个柱面为基准划分扇区...以此类推。

这样就更高效地利用了磁道的存储位。

当计算机开始运行,磁盘也开始飞速转动,然后读写磁头转动,就可以在相应的磁道中读写数据了。

讲完了原理,我们来讲讲你的笔记本电脑为什么容易坏。其实很多同学的笔记本坏了,多数时候都是磁盘坏了,那么磁盘为什么这么容易坏?

因为它转得实在是太快了。。。给个量化的指标,最外层的磁道和读写头之间的相对速度(学过物理的都知道线速度和角速度吧,这个自己转化yy一下)是80km/h。

做个不恰当的比喻,如果地球按这个角速度自转,那么地球自转一周也就需要8秒钟而已。在这种情况下,我想你绝对会被甩出银河系,地球也瞬间瓦解。

磁盘在高速运转的情况下,你拿着它到处走动,读写头很容易和盘面碰到,因为它们仅仅相距0.1微米。一点点小撞击,就能毁了你的磁盘。

所以,记住了。

电脑开着机的时候少拿着走动,关了机以后再放进书包带走。当然,如果你的电脑硬盘是固态的,那就请你随意走动,电脑开着机拿手上跳个广场舞也没事。

关于固态硬盘,后面我们慢慢道来。

为什么说,程序员在知道了计算机底层原理以后能写出更优秀的代码?今天我们就用一个例子来说明。

如果你了解一些数据库的优化算法,你应该听说类似的优化策略:随机读转化为顺序读,随机写转化为顺序写。

为什么要转化呢?因为随机读写真的很慢。

磁盘在读写数据的时候,时间主要消耗在三个地方。分别是:寻道时间,旋转时间和传送时间。

大家只要看了上面的内容,大致应该知道磁盘读取数据的流程。首先是寻道,也就是传动臂的读写头要先移动到对应的磁道上,这个过程所花费的时间叫寻道时间。

找到了磁道以后还不能马上读取数据,还需要找到相应的扇区才能开始读写,所以磁盘还要旋转,把对应的扇区转动到读写头下方,这个过程所花费的时间叫做旋转时间。

在找到目标扇区以后,剩下的时间就是传送时间了,也就是数据的写入和读取。

为什么随机读写慢,顺序读写快?

答案很明显,随机读写每次的时间花销都由上述三部分时间构成;然而顺序读写省去了前两部分时间。

看到这里,你已经可以装逼地给别人讲一下,为什么有一类算法要把随机读写转化成顺序读写。

上图中红色箭头指向的笔记本,是我刚上大一那会儿买的电脑,也是我的第一台笔记本电脑,当时只花了4000元,陪伴了我大学4年。

华硕X550V,4g内存,i5三代处理器,750G机械硬盘,我大学四年都没有觉得它慢,所以,上大学的同学,我感觉4000~5000元的电脑已经足够你用了,并且现在4000元的电脑在性能上早就超越我多年前买电脑的那个配置了。

毕竟计算机硬件的发展是遵循“摩尔定律”的(不懂摩尔定律的记得去百度一下)。当然,如果你的资金充足,并且想在Linux下开发,我会全力建议你买一台苹果Mac Pro,至少它让我的开发效率不知道提高了多少倍。

好像扯远了,我们话说回来,讲一下SSD,也就是固态硬盘。

我那台老笔记本在用了4年后,有点扛不住了,所以我买了一块250GB的固态硬盘给换上,再自己加了一块4GB的内存,然后给它装上了一个Ubuntu系统(Linux),感觉它就像迎来了新生。我感觉它的性能提升了不只10倍。

这主要归功于那块固态硬盘,为什么固态硬盘这么牛逼?

因为固态硬盘采用的是闪存技术,其实你的U盘、手机存储都是闪存。

首先,固态硬盘不容易坏,因为固态硬盘中已经没有那个旋转的磁盘了,所以即使是开机状态你拿着它到处走也没事。

其次,固态硬盘的读写速度大约是机械硬盘的5~10倍,对于游戏玩家和开发者而言,这无疑是一个巨大的改善。

所以我的这台电脑换了固态硬盘之后,就被我放在家里装上各种数据库做存储系统了,时不时跑一些任务,性能也是杠杠的。

如果你看到了这里,相信你已经对硬盘已经有了初步的了解,在选购计算机的时候也可以看看相应的参数啦!今天的硬盘就讲到这里,之后有空我们再聊聊其他硬件,比如CPU、内存或者是主板。

附:《如何优雅的让程序员帮你修电脑》

作者:知乎用户-David Keng

1. 既然找别人修,那就要对别人足够信任,随他折腾,既然你不会修,那就别瞎指挥。2. 修不好不要随便怪别人,要是所有问题都能靠“修”解决,很多厂商可以倒闭了。3. 修好之后哪怕再出同样的问题也不要随便怪修的人。

做到以上三点,只要你是个不丑的年轻女性,那怎么说都优雅。做不到以上三点,只要你是个长得好看的年轻女性,那怎么说都优雅。

前面三句话我是认真的,后面两句话是娱乐向。然而其实也不仅限于对程序员,对任何不以修电脑为谋生技巧的人都是这样。