操作系统学习之存储器层次结构
存储器系统是一个具有不同容量,成本和访问时间的存储设备层次结构,如下图所示,CPU寄存器保存最常用数据,靠近CPU的小的、快速的高速缓存存储器(Cache),然后是相对慢的主存(也就是常说的内存),然后是本地存储(固态,磁盘),也可能有远程存储(主要实现于分布式文件系统,Web服务器等)。
整个存储器系统,从上到下访问的时间越来越长,速度越来越慢,当然成本也越来越低。
- CPU寄存器的访问在零个周期就可以访问到,高速缓存(cache memory)在1 ~ 30个周期访问,主存(内存)在50 ~ 200个周期访问,本地磁盘大约需要几千万个周期,这里的周期指的是纳秒(ns)级别。
存储技术
不同层次的存储器实现的方式不同,价格也不同, 从而导致它们的存储大小受到限制。
随机访问存储器
随机访问存储器(RAM),分为两类:静态和动态的,静态的比动态的更块,当然价格也更昂贵,因此一般用静态RAM(SRAM)来作为CPU和主存之间的高速缓存(Cache),而动态RAM(DRAM)速度稍微慢一些,因此一般用作系统的主存(内存)。
静态RAM(SRAM)
SRAM是一种非常稳定的存储技术,确保只要有电,它就是稳定的,即使有干扰,也会在干扰过后,迅速保持稳定。
动态RAM(DRAM)
由于硬件原因,DRAM的稳定性和抗干扰能力不如SRAM,DRAM存储器单元对干扰特别敏感。因此对速度有影响。
DRAM的设计可以看作是一个二维表,当需要访问某个坐标中的数据时,假设需要访问(x,y)位置的数据,首先取出x的整行的数据,然后在取出y位置的数据,然后在舍弃整行数据、即使下一次访问的即使同一行数据,也会将该行丢弃,这是传统的DRAM的设计方式,以后增强版的DRAM有针对DRAM的缺陷的修改,例如快页模式DRAM就是对连续读取同一行的访问,不会每次都丢弃在获取,而是在第一次访问后存放在行缓冲区中,然后下次访问该行数据需要y匹配即可。
非易失性存储器
对于DRAM和SRAM来说,如果断电他们的数据就会丢失,因此称为易失性存储器,另一种是非易失性存储器,即使断电,信息仍然可以保存。**闪存就是一类非易失性存储器,**现在计算机中使用的固态硬盘就是一种新型的基于闪存实现的磁盘,它能提供比旋转磁盘更快,更强健和更低能耗的选择。
磁盘存储
磁盘是计算机中最大的存储单元,成本比较低,访问速度比较慢。
磁盘的构造
磁盘是由盘片构成的,每个盘片有两个面称为表面,盘片中央有一个可以旋转的主轴,它可以使得盘片以固定的旋转速率旋转,通常是5400 ~ 15 000转每分钟。盘片表面由一组称为磁道的同心圆组成,每个磁道被划分为一组扇区,每个扇区包含相同数量的数据位(通常为512字节),扇区中间有一些间隙分隔开,间隙中不存储数据位,用来表示扇区的格式化位。
磁盘容量
一个磁盘上可以