目录
前言
设备管理
I/O系统
基本概念
设备使用特性
数据传输速率
数据传输单位
设备共享属性
设备控制器
I/O通道
I/O控制方式
程序I/O控制方式
中断方式
直接存储器访问(DMA)
缓冲管理
单缓冲Single Buffer
双缓冲Double Buffer
循环缓冲Circular Buffer
缓冲池Buffer Pool
I/O软件
中断的工作方式
设备分配
设备分配算法
SPOOLing:假脱机操作
设备管理:调度与实例
磁盘存储器
基本概念
磁盘结构
地址转换
连接方式
DAS:磁盘挂载
NAS:网络挂载
SAN:存储区域网
磁盘访问
访问模式
访问时间
寻道时间
传输时间
(旋转)延迟时间
总访问时间
磁盘调度
先来先服务(FCFS)
最短寻道时间优先(SSTF)
扫描算法(SCAN, CSCAN)
Look & C-Look算法
⭐练习题
改进方法
磁盘管理
磁盘缓存
读写性能
磁盘管理
RAID
存储器管理模块已经更新,传送门:电子科技大学操作系统期末复习笔记(三):存储器管理
本复习笔记基于电子科技大学计算机操作系统-教学大纲(2022)中的课程模块部分,分为五大章节,分别是:
- CM1:操作系统概念。操作系统基本功能、操作系统发展历史及趋势、操作系统主流架构、常见操作系统特点、操作系统安全机制。
- CM2:进程管理。进程概念、线程概念、进程生命周期、进程调度算法、进程同步互斥、进程间通信和死锁。
- CM3:内存管理。内存空间的概念、连续分配、离散分配(分页管理、分段管理、段页式管理)、虚拟存储管理和页面置换算法。
- CM4:设备管理。I/O 系统结构、缓冲管理、磁盘结构和磁盘调度算法。
- CM5:文件管理。文件系统的作用、逻辑结构、物理结构、目录、文件共享和文件系统的一致性。
本节要点在CM4,大致内容如下:
第四章 设备管理(8 学时,多媒体课件结合板书面授)CM41、主要内容I/O 系统的基本概念和设备分配中的数据结构,I/O 控制方式,通道的分类,缓冲管理,磁盘存储管理的调度策略;设备的独立性,虚拟设备,磁盘冗余阵列。2、应达到的要求记忆:磁盘冗余阵列、闪存技术。理解:I/O 系统的组成,设备的独立性。分析: I/O 控制方式、缓冲管理、设备分配、设备处理、虚拟设备、磁盘的调度算法。
I/O系统 I/O控制方式 缓冲管理 I/O软件 设备分配 磁盘存储器的管理
从OS观点看,重要的评价、分类指标:
设备使用特性
数据传输速率
数据传输单位
设备共享属性
- 存储设备:外存或后备存储器、辅助存储器,计算机系统用以存储信息的主要设备。
- 存取速度较内存慢,但容量比内存大得多,相对价格也便宜。
- 输入/输出设备,具体可分为输入设备、输出设备和交互式设备。
- 输入设备:用来接收外部信息,如键盘、鼠标、扫描仪、视频摄像、各类传感器等。
- 输出设备:用于将计算机加工处理后的信息送向外部的设备,如打印机、绘图仪、显示器、数字视频显示设备、音响输出设备等。
- 交互式设备:集成上述两类设备(耳机+耳麦,触屏)
低速设备:传输速率仅为几个字节/s至数百个字节/s,键盘、鼠标器、语音的输入和输出等设备。
中速设备:传输速率在数KB/s至数百KB/s 行式打印机、 激光打印机等。
高速设备:传输速率在数十MB/s 磁带、磁盘、光盘等。
- 块设备(Block Device):信息的存取以数据块为单位
- 典型的块设备是磁盘,每个盘块的大小为512 B~4 KB。
- 传输速率较高,x MB/s; 可寻址,支持随机读/写;
- 常采用DMA方式。
- 字符设备(Character Device):数据访问基本单位是字符
- 字符设备的种类繁多,如交互式终端、打印机等。
- 传输速率较低,通常为几个字节至数千字节;
- 不可寻址,即输入/输出时不能指定数据的输入源地址及输出的目标地址
- 常采用中断驱动方式。
- 独占设备
- 严格独占使用,顺序共享(不存在交叉使用)
- 例:打印机
- 共享设备
- 并发共享,对每一时刻而言,只允许一个进程访问
- 例:磁盘
- 虚拟设备
- 通过虚拟技术将一台独占设备模拟为共享设备,供若干个进程同时使用。
- 例:SPOOLing
设备与控制器接口
设备并不是直接与CPU进行通信,而是与设备控制器通信。在该接口中有三种类型的信号,各对应一条信号线。
设备控制器的组成
- 设备控制器与处理机(CPU)的接口
- 实现CPU与设备控制器之间的通信
- 数据线、地址线和控制线
- 数据线通常与两类寄存器相连接
- 数据寄存器;
- 控制/状态寄存器
- 设备控制器与设备的接口
- 一个设备控制器可连接一个或多个设备
- 多个设备接口,一个接口连接一台设备
- 数据、控制和状态三种类型的信号
- I/O逻辑
- I/O逻辑用于实现对设备的控制。
- 通过一组控制线与处理机交互,处理机利用该逻辑向控制器发送I/O命令;
- 每当CPU要启动一个设备时
- 将启动命令发送给控制器; 同时通过地址线把地址发送给控制器
- 将CPU从设备控制器中解脱出来
- 一种特殊的处理机,具有执行I/O指令的能力,通过执行通道程序来控制I/O操作。
- 与一般的处理机不同
- 指令类型单一。由于通道硬件比较简单,其所能执行的命令主要局限于与I/O操作有关的指令;
- 通道没有自己的内存。通道所执行的通道程序放在主机内存中。
- 通道类型
- 字节多路通道
- 数组选择通道
- 字节多路通道不适于连接高速设备→按数组方式进行数据传送的数组选择通道。
- 连接多台高速设备,但只含有一个分配型子通道
- 在一段时间内只能执行一道通道程序,控制一台设备进行数据传送→当某台设备占用了该通道后,便一直由它独占,即使是它无数据传送,通道被闲置,也不允许其它设备使用该通道,直至该设备传送完毕释放该通道。
- 通道利用率低。
- 数组多路通道
- 数组多路通道:数组选择通道传输速率高和字节多路通道能使各子通道分时并行操作的优点相结合而形成。
- 含有多个非分配型子通道
- 被广泛地用于连接多台高、中速的外围设备。
- I/O通道的瓶颈
- 总线系统
早期的计算机系统中,无中断机构,处理机对I/O设备的控制采取程序I/O(Programmed I/O)方式,或称为“忙—等待”方式
- 现代计算机系统广泛采用中断驱动(Interrupt Driven)方式
- CPU→设备控制器发出I/O命令,立即返回继续执行原来的任务。
- 设备控制器按照该命令的要求控制指定设备。此时,CPU与I/O设备并行操作。
- 一旦设备操作完成,控制器便通过控制线向CPU发送中断信号;
- CPU向控制器发送取走数据的信号,然后再通过控制器及数据线将数据写入内存指定单元中。
中断方式对块设备不适用
- 例:从磁盘中读1 KB数据,需中断CPU 1K次→减少CPU对I/O的干预→直接存储器访问方式
- 数据传输的基本单位是数据块;
- 所传送的数据是从设备直接送入内存的,或者相反;
- 仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在控制器的控制下完成的。
DMA控制器
- 组成
- 主机与DMA控制器的接口
- DMA控制器与块设备的接口
- I/O控制逻辑
- 关键寄存器
- 命令/状态寄存器(CR):接收从CPU发来的I/O命令,或有关控制信息,或设备的状态。
- 内存地址寄存器(MAR):数据在内存的起始地址;输入、输出分别为源、目标地址
- 数据寄存器(DR):暂存从设备到内存,或从内存到设备的数据。
- 数据计数器(DC):存放本次CPU要读或写的字节数。
DMA过程
缓和CPU与I/O设备间速度不匹配的矛盾。
减少对CPU的中断频率。
提高CPU和I/O设备之间的并行性。
缓冲类型:
- 单缓冲Single Buffer
- 双缓冲Double Buffer
- 循环缓冲Circular Buffer
- 缓冲池Buffer Pool
一个缓冲区 max(T, C) + M
缓冲对换(Buffer Swapping) max(C, T)
多个缓冲区;进程同步
- 既可用于输入又可用于输出的公用缓冲池
- 空(闲)缓冲区
- 空缓冲队列emq
- 输入数据缓冲区
- 输入队列:inq
- 输出数据缓冲区
- 输出队列:outq
- 效率
- 解决外部设备与CPU速度不匹配
- 提高主机和外设的并行工作能力
- 通用性
- 降低用户管理、操作设备的复杂性
中断的工作方式
- 设备驱动程序
- I/O进程与设备控制器之间的通信程序,常以进程的形式存在。
- 检查用户I/O请求的合法性,了解I/O设备的状态,传递有关参数,设置设备的工作方式。
- 接收上层软件发来的抽象I/O要求,转换为具体指令后,发送给设备控制器;
- 例如,将磁盘块号转换为磁盘的盘面、磁道号及扇区号。
- 将由设备控制器发来的信号传送给上层软件。
- 设备独立性(设备无关性)
- 应用程序独立于具体使用的物理设备。
- 应用程序:逻辑设备
- 系统执行:物理设备
- 映射关系
- 设备灵活分配,I/O重定向
- 设备独立性软件
- 执行所有设备的公有操作
- 设备的分配与回收;
- 将逻辑设备名映射为物理设备名;
- 提供独立于设备的数据逻辑组织方式;
- 对设备进行保护,禁止用户直接访问设备;
- 缓冲管理;
- 差错控制
- 向用户层提供统一接口
- 逻辑设备表
- 设备固有属性
- 独占,共享,虚拟
- 分配算法
- 分配的安全性
- 先来先服务
- 当有多个进程对同一设备提出I/O请求时,根据诸进程对某设备提出请求的先后次序进行分配。
- 优先级高者优先
- 在进程调度中优先权高的进程优先获得处理机。如果对这种高优先权进程所提出的I/O请求也赋予高优先权,有助于这种进程尽快完成。
简介
- 为缓和CPU与I/O设备速度矛盾而引入了脱机输入、脱机输出技术。
- 一道程序模拟脱机输入时的外围控制机功能,把低速I/O设备上的数据传送到高速磁盘上;
- 一道程序来模拟脱机输出时外围控制机的功能,把数据从磁盘传送到低速输出设备上。
- 在联机情况下实现的同时外围操作称为:SPOOLing (Simultaneous Peripheral Operating On Line)→假脱机操作。
组成
- 输入井和输出井
- 磁盘上的两个存储空间。
- 输入井:模拟脱机输入时的磁盘,用于暂存I/O设备输入的数据;
- 输出井:模拟脱机输出时的磁盘,用于暂存用户程序的输出数据。
- 输入缓冲区和输出缓冲区。
- 输入缓冲区用于暂存由输入设备送来的数据,以后再传送到输入井。
- 输出缓冲区用于暂存从输出井送来的数据,以后再传送给输出设备。
- 输入进程SPi和输出进程SPo。
- SPi:模拟脱机输入时的外围控制机,将用户要求的数据从输入机通过输入缓冲区送到输入井,当CPU需要输入数据时,直接从输入井读入内存;
- SPo:模拟脱机输出时的外围控制机,把用户要求输出的数据先从内存送到输出井,待输出设备空闲时,再将输出井中的数据经过输出缓冲区送到输出设备上。
特点
- 提高I/O速度
- 将对低速I/O设备的操作→对输入/输出井中数据的存取,缓和了CPU与低速I/O设备之间速度不匹配的矛盾。
- 将独占设备改造为共享设备
- 并未给任何进程分配设备,只是在输入井或输出井中为进程分配一个存储区。
- 实现了虚拟设备功能
- 宏观上,虽然是多个进程在同时使用一台独占设备,对于每一个进程而言,都认为自己独占了一个设备。
包括一或多个物理盘片(platter),每个磁盘片分一个或两个存储面(surface)
每个磁盘面被组织成若干个同心环,这种环称为磁道(track)
每条磁道逻辑上划分成若干个扇区(sectors)
不同盘面相同的磁道成为柱面(cylinder)
- 磁盘驱动器采用线性逻辑块编址
- 逻辑块是最小传输单位(512B)
- 线性逻辑块号一一映射到扇区
- 扇区0:最外层柱面第一个磁道的第一个扇区
- 排序规则:按同磁道→同柱面其它磁道→其它柱面的顺序对扇区排序
操作系统逻辑块:b 磁盘三维坐标:(柱面i,磁头j,扇区k)
若:s扇区/磁道,t磁道/柱面,则:
b=(s×t×i) + (s×j) + k=s×(t×i+j) + k
i=b/(s×t) j=(b mod (s×t))/s
k=(b mod (s×t)) mod s=?
- 本地挂载→I/O总线
- IDE, ATA, SATA, USB, Fibre Channel, SCSI
- 主机控制器(Host Controller)→Bus→磁盘控制器(Disk Controller)
- IDE(Integrated Drive Electronics):4
- SCSI(Small Computer System Interface):16
- FC (Fiber Channel): 126
- Network-Attached Storage
- 主机通过网络挂载存储设备
- NFS,CIFS
- 主机和存储设备之间通过RPC(remote procedure calls)通信
- Storage Area Network
- 分离server-client通信与server-storage数据
- 大规模数据存储
- 多台主机连接到多个存储阵列
- 直接(随机)存取:存取磁盘上任一物理块,不依赖于该物理块所处的位置
- 固定头磁盘:每个磁道设置一个磁头,变换磁道时不需要磁头的机械移动,速度快但成本高
- 移动头磁盘:一个盘面只有一个磁头,变换磁道时需要移动磁头,速度慢但成本低
- 顺序存取:只有在前面的物理块被访问过之后,才能存取后续的物理块的内容。
- 磁带
先来先服务(FCFS)
最短寻道时间优先(SSTF)
扫描算法(SCAN, CSCAN)
Look & C-Look算法
其它
根据进程请求访问磁盘的先后次序进行调度。
优点:公平、简单
缺点:未对寻道进行优化,平均寻道时间可能较长
SSTF,Shortest Seek Time First
优先调度与当前磁头所在的磁道距离最近的请求
问题:磁道黏着(距离远的请求饥饿)
SCAN
按照同一方向执行SSFT,直到尽头,结束后反向执行
似曾相识?→ 电梯调度算法Elevator algorithm
CSCAN
SCAN的问题:单向扫描过程中刚越过的磁道来了请求,一个来回才能处理。
CSCAN: Circular SCAN 单向扫描,迅速返回,再次同一单向扫描。
将磁道视为环形结构 请求延迟将从:2T→T + Smax
(T:单向扫描所有磁道的寻道时间 Smax:磁头从最内和最外层迅速切换的时间)
类似SCAN和CSCAN
在朝一个给定方向移动前先look是否有请求
磁头只移动到最远的请求为止,接着马上回头。
一磁盘有200个磁道,请求序列: 98, 183, 37, 122, 14, 124, 65, 67。读写头起始位置:53, 给出FCFS,SSTF,SCAN/Look(磁头→0),CSCAN/CLOOK(磁头→max)的寻道序列。
FCFS
SSTF
SCAN/Look(磁头→0)
CSCAN/CLOOK(磁头→max)
CLOOK
- 上述方法只考虑空间信息,可能导致磁头黏着
- 如:几个进程高频访问固定磁道
- 考虑时间信息
- N-step-SCAN
- FSCAN
利用内存中的存储空间来暂存从磁盘中一系列盘块的信息。
逻辑上属于磁盘,物理上驻留在内存中的盘块。
- 低级/物理格式化(Low-level formatting, or physical formatting): 将磁盘划分为扇区,以便磁盘控制器(disk controller)可以读写磁盘
- 操作系统需在磁盘上记录数据结构才能存储数据
- 分区(Partition):按照柱面划分
- 逻辑格式化:建立文件系统
- 引导块启动系统
RAID 0/1/2/3/4/5/嵌套
评价
Redundant Array of Independent/Inexpensive Disk
独立/廉价冗余磁盘冗余阵列
不同配置,不同编号
优点:可靠性高(n个9)、磁盘I/O速度高、性价比高
RAID 0
条带化:并行交叉存取→提高磁盘I/O速度
无冗余、校验功能→可靠性一般
RAID 1
镜像冗余 无校验
写性能差 存储开销大 可靠性高
RAID 2
具有专用汉明码奇偶校验的位级条带化
RAID 3
RAID 4
和RADI3相比较,RAID4基于大的块校验
校验位于同一盘→瓶颈
RAID 5
校验结果螺旋分布
嵌套RAID