LaTeX 渲染有问题。将就着看吧。
磁盘 / 磁带部分。
# 外部存储设备
用于存储不经常使用的、数据量较大的信息,非易失
类型
磁盘存储器(magnetic disk)
光存储器(optical memory)
磁带(magnetic tape)
U 盘(USB flash disk),固态硬盘(solid state disk,SSD)
# 硬磁盘存储器
# 结构
磁盘存储器每个盘片表面有一个读写磁头,所有磁头通过机械方式固定在一起,同时移动
在任何时候,所有磁头都位于距磁盘中心等距离的磁道上
对盘片进行读写操作的装置叫做磁头(head)
- 磁头越窄,电磁感应能力越弱,离盘片的距离就越近
# 读写机制
在读或写操作期间,磁头静止,而盘片在其下方旋转
磁头的数量
单磁头:读写共用同一个磁头(软盘、早期硬盘)
双磁头:使用一个单独的磁头进行读取(当代硬盘)
# 数据组织
磁道:盘片上的数据组织呈现为一组同心圆环,称为磁道(track)
** 扇区:** 数据以扇区(sector)的形式传输到磁盘或从传出磁盘。默认值为 512B
相邻磁道之间有间隙(gap),相邻的扇区之间也留有间隙,否则磁场容易相互影响
磁道编号从外往里递增(0~N),磁头静止时停在磁道 0 外侧
图上的一个圈应该就是磁道
扇区划分
恒定角速度
- 恒定的数据传输率
多带式记录 / 多重区域记录
柱面 (cylinder):所有盘片上处于相同的相对位置的一组磁道被称为柱面 (cylinder)
# I/O 访问时间
访问时间包含以下三个部分组成:
** 寻道时间:** 磁头定位到所需移动到的磁道所花费的时间
- 初始启动时间,跨越若干磁道所用的时间
旋转延迟:等待响应扇区的起始处到达磁头所需的时间
- 通常是磁道旋转半周所需的时间
传送时间:数据传输所需的时间
公式推导和解释:
磁盘每旋转一圈,磁头能传输整个磁道的数据,每个磁道的数据量是 N(字节数);磁盘每秒旋转 r 转,因此每秒传送的数据量为 rN 字节 / 秒。
如果要传送的数据量是 b,而每秒能传送的数据量是 rN,那么总传送时间为:T = b/rN
# 平均访问时间
是转半圈,为一个平均值(0 ~ 的平均)
当连续访问多个相邻的磁道时,跨越磁道:
对于每个磁道都需要考虑旋转延迟
通常只需要考虑第一个磁道的寻道时间,但在明确知道跨越每个磁道需要的时间时需要考虑。(因为磁道非常多,顺序移到下一个磁道的耗时是非常少的)
# 实例
假设某个硬盘的平均寻道时间为 4ms,转速为 15000rpm(每分钟 15000 转),每磁道 500 扇区,每扇区 512B,现读取一个由 2500 个扇区组成的文件
情况 1:顺序组织
该文件占据相邻 5 个磁道的全部扇区。因为相邻,后续不需要再计算寻道时间。
b=500512=256000,r = 15000 / 60 = 250 转 / 秒,N = 500512=256000
T = 1/250=0.004s=4ms,即读 500 个扇区的时间。
情况 2:随机存取
该文件随机分布在磁盘上的各个扇区。
计算了每次访问一个磁道再读扇区的单次时间,乘 2500 次(需要找 2500 次扇区)
这个需要计算寻道时间,因为两次寻道不一定是相邻寻道了。而且扇区也不连续,不能再连续计算 500 个扇区。
# 磁头寻道 / 磁盘调度
目标:当有多个访问磁盘任务时,使得平均寻道时间最小
六种调度算法。你应该都会了
先来先服务(First Come First Service,FCFS)
- 直接按任务顺序依次寻道
最短寻道时间优先(Shortest Seek Time First,SSTF)
- 处理与当前磁头位置最近的读写任务
扫描 / 电梯(SCAN)
- 按照一个方向进行调度,直到撞上边缘才改变方向
LOOK
- SCAN 优化,不会撞上边缘,只要磁头移动方向上不再有请求就立即改变磁头的方向
循环扫描(C-SCAN)
- 按照一个方向(往大)进行调度,撞上最大边缘后返回到起点,再调度。除了返回过程一直都是同一个方向移动
C-LOOK
- CSCAN 优化,只要在磁头移动方向上不再有请求,就立即让磁头返回起点
# 光存储器
如光盘 CD
CD 和 CD-ROM 采用类似的技术,但 CD-ROM 更加耐用且有纠错功能
优点
存储有信息的光盘可以廉价地进行大规模复制
光盘更换方便
寿命长
缺点
它是只读的,不能更改
其存取时间比磁盘存储器慢得多
CD-R(写一次)
CD-RW(写多次)
# 其他存储器
# 磁带
使用与磁盘类似的记录和读取技术
致命缺陷是顺序存取
# U 盘和固态硬盘
采用快闪存储器