Modern Operating System 4th 中译

磁盘

下一级的就是磁盘(硬盘)。磁盘存储的每bit价格价格比RAM便宜两个数量级,或者同等价格下容量比RAM大两个数量级。唯一的问题是随机读取硬盘的数据用时大概比内存慢三个数量级。原因是磁盘是一个机械设备,如图1-10。

一个磁盘包含一个或更多的旋转的金属圆盘,转速是5400,7200,10800RPM或更高。一个磁头臂在金属盘上移动,就像老式留声机一样。信息被写到圆盘上的一系列同心圆中。在任何给定位置,每个磁头可以读取的环形区域被称为磁道。所有恒定位置的磁道组合起来就成为了柱面

每条磁道均被划分为一些扇区,一般一个扇区512字节。现代磁盘的外圈磁道比内圈磁道有更多的扇区。磁头移动到相邻的柱面需要大约1ms,移动到随机的柱面一般需要5~10ms,取决于设备。一旦磁头进入正确的磁道,驱动器必须等待要读取的扇区旋转到磁头下,这又需要5~10ms,取决于磁盘的RPM。就绪后,低端磁盘的读取速度可以到大约50MB/s,快的可以达到160MB/s。

有时,人们所说的磁盘并不是真正的磁盘,例如SSD(Solid State Disks,固态硬盘)。SSD没有移动部件,没有旋转磁盘,将数据储存在Flash中。SSD与磁盘唯一的相似之处就是它们都存储了大量数据并且断电后不会丢失。

许多计算机支持被称为虚拟内存的技术,我们将会在第三章详述。这种技术通过将磁盘作为内存,内存作为频繁使用部分的缓存使得程序可以使用比物理内存更大的内存空间。这项技术要求快速将程序的内存地址转换为物理地址。这项映射功能由CPU的一部分提供,称为MMU(Memory Management Unit),如图1-6。

缓存和MMU的存在对性能产生了很大的影响。当从一个程序切换到另一个程序时,称为上下文切换(Context Switch),有必要清空全部缓存并且更改MMU的寄存器。这些操作都是代价非常大的,并且程序员会尽力避免这种情况发生。之后我们会见到这种情况。