操作系统概念——存储和文件系统接口

第十章 大容量存储设备

10.1 总览
永久大容量存储设备常见的由磁盘、固态硬盘(SSD)、磁带等.
磁盘是机械的,速度较慢且容易损坏;
SSD是电子的速度较快且不容易坏,耗电更低,但成本较高寿命有限.

10.2 存储盘结构
磁密度一致(CLV):外侧扇区比内侧要多,磁头越靠中心转速越快,以保证恒定的读取速率;
磁密度不一致(CAV):转速恒定,越靠内密度越大,以保证恒定的读取速率.
CLV常见于CD、DVD;CAV常见于硬盘.
磁盘以逻辑块如512K为基本读写单位.

10.3 磁盘连接
本地连磁盘:通过本机IO端口访问,总线结构包括IDE、ATA、SATA、FC等.
网络连磁盘:client通过网络访问带存储的server,RPC.

10.4 磁盘调度
为了提高吞吐,操作系统会调度在等(非SSD)磁盘的读写请求进行调度.
常见的磁盘调度算法有:
1) 先来先服务(FCFS):简单公平、但性能差
2) 最近调度(SSTF):有饿死问题
3) 扫描调度(SCAN):来回扫描处理请求,类似电梯
4) 循环扫描调度(C-SCAN):扫描完一轮后重置起始位置,等待时间更一致.
5) LOOK调度:SCAN和C-SCAN的优化,判断是否已处理完当前方向的最后一个请求.
影响调度算法的实际因素较多,如请求模式和文件在磁盘上的分布结构等.
调度算法一般会做出可加载模块方便灵活安装和替换.
其他需要考虑的还包括缺页处理优先级、异常情况如掉电时的读写顺序等.

SSD磁盘一般用FCFS即可,因为不存在寻道等机械移动时间.

10.5 磁盘管理
磁盘格式化:
低级格式化:即物理格式化,分扇区和初始化扇区头部尾部数据. 一般出厂就是分好的.
逻辑格式化:分区、文件系统初始化.
一些系统直接提供分区后的裸设备给应用使用.

启动块:
ROM太小,大部分启动引导程序会放在启动分区上加载到内存执行,做初始化和载入OS.

坏块:
损坏的块要能够被发现或者修复(如使用预留冗余的扇区).

10.6 Swap空间管理
Swap区需要比通用文件系统更快,以提供VM吞吐.
一般按定长划分页存储区,内部碎片仅短期存在,重启会消失.

10.7 RAID
RAID用于提高存储可靠性(mirror)和速度(stripping)
根据对两者不同需求,常见RAID类型包括RAID0 - RAID6.
另外还有RAID0+1 和 RAID1+0.
RAID只保证底层设备的可靠性.

10.8 可靠存储实现
目的是减低正在写的时候发生故障带来的风险,发生后能恢复数据.
如二阶段提交写;或者增加非易失cache.

第十一章 文件系统接口
11.1 文件概念
文件是在二级存储设备上的命名信息集合.
文件的常见属性包括名字、标识、类型、位置、大小、访问保护、时间和用户信息等.
基本的文件操作有创建、读、写、定位、删除、清空. 其他操作可以用基本操作组合实现.
文件可以共享访问,强制锁由系统保证互斥,建议锁由应用程序配合保证互斥.
操作系统可以显示支持多种文件类型,也可以只支持最基本的可执行程序文件类型.

11.2 文件访问
主要包括顺序访问和随机访问文件两类方式.
其他如索引访问可基于随机访问实现.

11.3 目录和磁盘结构
分区(文件系统)是为了分配大小和支持多种文件类型结构.
包含文件系统的实体又叫做分卷(Volumn).
文件一般按目录形式组织,包括树形目录、无环目录、图目录.
无环目录可以支持简单共享,图目录最通用但存在垃圾回收问题.

11.4 文件系统挂载
不同的目录可以挂载不同的文件系统.
操作系统将对应的设备挂载到响应的挂载点(目录)上.
系统会检查设备中文件系统正确性,并记录在系统空间里.
这样系统在遍历目录的时候就具有了切换文件系统的能力.
Unix启动时会通过配置文件自动挂载各文件系统.

11.5 文件共享
共享形式包括本地多用户访问,远程多用户访问.
一致性问题:对文件的变更是否立即对其他用户可见.
Unix下只有一个副本,需要互斥访问.
AFS提供会话一致性,在调用close后变更才可见;多副本.

11.6 保护
分组权限控制/Access Control List/密码保护

发表评论

电子邮件地址不会被公开。