关于磁盘工作原理的疑惑


看到网站里有一篇文章

存储技术之磁盘工作原理

现在问题是:

假设硬盘被分为 4 个区,其中

  • C -> D 传输数据,E -> F 传输数据
  • E 有下载数据,F 有上传数据
    ……

这种情况下,磁盘是如何工作的?想知道详细的过程。

还有就是,硬盘是怎么确定

  1. 某个区是系统分区还是逻辑分区的?
  2. 各区的数据文件的?

计算机原理 磁盘

sdfaasd 10 years, 2 months ago

和你猜想的一样,磁盘就是转啊转~转啊转~转过来,转回去。

这篇文章是关于磁盘这个硬件的,写的图文并茂,很是详细。

在硬件上面,是驱动程序——磁盘驱动。

在磁盘驱动上层,是文件系统,比如咱们经常说的 FAT32、NTFS、EXT3、……。

不管你分几个区,硬盘一般也是只有一个。

E盘下载,F盘上传。

你可能会认为,磁头转到E盘的物理位置,写入数据,磁头转回F盘,读数据,再转回E,再转回F,……

其实,过程就是这样,只是,现在的操作系统很聪明,他们来回转的次数,要比你想象中的少的多,他们如何做到的呢?

预读和缓冲。

当磁头读取第一扇区第3磁道的数据的时候,他想:既然我读了这个数据,那么附近的数据也可能需要,反正我已经转到这儿了,不如都读出来。这就是预读。

当我们下载时,也并不是一个bit一个bit的写入,而是把数据放到一个缓冲区,等缓冲区满了,然后一次性写入。

基友大战百合 answered 10 years, 2 months ago

你好,感谢关注我的文章。磁盘本身只是存放二进制数据,对于分区和文件一无所知。操作系统赋予了这些上层概念,这也是操作系统存在的根本理由之一。操作系统需要对磁盘进行一个合理的规划,这里面就包括了分区,目录文件,还要保证对磁盘的操作必须有序进行,否则会出现混乱。回答你的问题:

  1. 为什么数据能够同时操作?机械磁盘同一时刻显然只能操作有限的数据,是操作系统通过对IO进行规划,以达到有序的将IO请求发给磁盘处理。也就是操作系统对不同的数据操作进行的分时处理,让你觉得好像是同时在读写。对于磁盘来说一切都已安排好,只要根据指令读写即可
  2. 磁盘怎么知道分区的?上面说了,分区和文件系统是操作系统层面的东西,每个分区通常是固定数量的连续扇区组成,操作系统需要记录这种信息,才能把分区显示给你看。其实磁盘根本啥也不知道

你还可以看下我后续关于存储的文章,也许会有帮助

詩情畫意╮ answered 10 years, 2 months ago

Your Answer