3 存储管理

学习笔记
作者: MingXiao

3.1 磁盘

盘片表面逻辑地分为圆形的磁道,磁道分为扇区,扇区是读写的基本单位

同一磁臂位置的磁道集合形成了柱面

磁盘调度

寻道时间占大头,因此要尽量减少寻道

  • FCFS:按顺序寻道;响应快了,但是寻道时间最长
  • 最短寻道时间优先SSTF:优先处理靠近当前磁头位置的请求;会导致饥饿,且实际使用中没有后面来的扇区序列
  • 扫描算法:从磁盘的一端开始,向另一端移动,处理请求,当达到另一端时,开始方向移动;适合请求的柱面较均匀的情况
  • 循环扫描:从一段开始向另一端移动,处理请求,到达另一端后立刻返回开头,回程上不处理请求
  • LOOK:想法和扫描一致,但不是到端点,而是到最远的请求;同样还有循环LOOK

多磁盘管理

  • RAID-0:数据分成多个子块,存在独立的磁盘中,I/O带宽大
  • RAID-1:两个磁盘存一样的数据,可靠性加倍,读写任意读一个
  • RAID-4:数据块级的磁盘配有专用奇偶校验盘;其他盘采用RAID-0策略
  • RAID-5:4会导致校验盘频繁读写,5把校验块均匀分布在所有数据块中

3.2 文件系统

对用户来说,文件是逻辑外存的最小分配单元

文件分配方法

评价指标:高效(利用率),表现(访问速度)

  • 连续分配:每个文件在磁盘上占有一组连续的块,指定起始块和长度;读取表现好,支持随机访问;但是文件扩展差,会产生外部碎片问题;适合只读文件
  • 链式分配:每个文件是磁盘块的链表,可以散布在磁盘任意位置,文件头包含了第一块和最后一块的指针;创建、增加和缩小容易,没有外部碎片;但只能顺序访问,指针丢失文件就寄了
    • 文件分配表FAT:FAT中记录了每一个磁盘块的索引,改善了随机访问
  • 索引分配:每个文件有自己的索引块,记录磁盘块地址;支持随机访问,没有外部碎片;但是需要维护完整的索引块,浪费空间
    • 链式索引块:大文件,将多个索引块链接,不怕空间不够
    • 多级索引块:类似多级页表,空间改善,但是访存速度受限

索引分配的组合方案

  • 将索引块的前几个指针存在文件inode中
  • 这些指针的前12个直接指向数据块,对应小文件不需要多级索引
  • 剩下的3个指针指向间接块,对应大文件
    • 第一个指向一级,第二个指向二级,第三个指向三级

注意一下最后一道例题



Comments