回到上一章
课程内容
- 存储器层次
- 磁盘存储方式
下面具体介绍
三级存储结构
- 高速缓冲存储器 cache
- 主存储器
- 虚拟存储器、磁盘、文件系统
- 在操作系统或数据库系统控制下,文件以“块”的方式在磁盘与主存间移动
- 磁盘读、磁盘写
- 第三级存储器
- 机器手磁带库、自动光盘库
磁盘
磁盘分类有以下两种
- 磁盘组合 (disk assembly):由一个或多个圆形盘片组成,围绕一根中心主轴旋转。上下表面覆盖了一层薄薄的磁性材料,用于存储二进制信息。
- 磁头组合(head assembly)
盘片结构如下图:
下面简要介绍一下各个部分
- 磁道被划分为扇区
- 扇区是被间隙分割的磁道片断
- 扇区是不可分割的单位
- 间隙约占整个磁道的10%,用于帮助识别扇区的起点
- 块是磁盘与主存间传输数据的逻辑单元,由一个或多个扇区组成
- 同一时刻位于磁头下的各个磁道构成了一个柱面
- 扇区是磁盘的物理单元
- 块是使用磁盘的软件系统所建立的逻辑单元
- 块由一个或多个扇区构成
磁盘控制器的功能
- 控制磁头,将其定位到一个特定的半径
- 选择一个准备读写的盘面,并从位于该盘面的磁头下的磁道选择一个扇区。控制器还负责识别旋转主轴到达定点的时刻,在此定点位置,所寻扇区在磁头下开始移动
- 将从所寻扇区读取的二进制位传送到计算机主存,或将主存数据写入相应扇区
磁盘存储特性
- 磁盘组合的旋转速度
- 5400RPM (转/分钟),即每11ms旋转一周
- 每个磁盘的盘片数目
- 每个盘片的磁道数
- 每个磁道的字节数
磁盘访问特性
- 块读写过程
- 磁头被定位到包含块的磁道所在的柱面
- 在整个磁盘组合转动时,组成该块的扇区移动到磁头下面
- 磁盘的延迟时间 ( latency):从发出块读命令的时刻起,到块的内容出现在主存中止,期间所花费的时间 +
- 处理器和磁盘控制器处理请求所花费的时间。通常是零点几毫秒,可忽略不计
- 寻道时间,将磁头定位到合适柱面所花费的时间
- 旋转延迟,磁盘转动到组成该块的第一个扇区到达磁头是所需的时间,约为磁盘旋转一周时间的一半
- 传输时间,块的扇区以及各扇区之间的间隙旋转通过磁头所需时间
时间 = 寻道时间 + 旋转时间 + 传输时间 + 其他消耗
其中寻道时间在其中占有相当大的比重,通常以毫秒计,随机寻道时间一般10-40ms
平均要旋转半周才能定位到需要的block,所以旋转时间取旋转一周时间的一半,对于3600RPM(即3600转/秒)的磁盘来说,旋转时间约为8.33ms
传输时间=块大小/传输速率
其他时间消耗:
- 从I/O请求发出到CPU处理中间的时间延迟
- 竞争控制器所需要的时间
- 竞争总线、内存等资源需要的时间
由于上述这些值很小,所以其他时间消耗一般可以看作0。
顺序读取所用时间分析
上述讨论的是随机访问时间,如果在定位好位置后,进行下一个block的读取操作,那么就不需要 寻道时间 和 旋转时间 了,一旦省去了寻道时间,那么I/O代价就会大幅度降低,例如一个1KB的block,随机访问I/O可能需要时间为20ms,而顺序I/O可能只需要1ms。
块的写操作和修改
- 块的写操作时间与读类似,但可能需要额外的校验检测时间
- 块的修改
- 将块读入主存
- 对主存副本修改
- 将块写回磁盘
- 如果合适,检查写操作是否已被正确执行
I/O代价
- DBMS的各种操作中,磁盘I/O时间占据了主要处理时间
- 优化性能时主要考虑I/O代价