导图社区 《操作系统》第五章-输入输出(IO)管理
《操作系统》第五章-输入输出(IO)管理学习笔记,包括I/O管理概述、设备独立性软件以及磁盘和固态硬盘三部分内容。
编辑于2022-11-23 21:12:25 上海输入/输出(I/O)管理

I/O管理概述
I/O设备
设备的分类
按信息交换的单位分类
块设备
信息交换以数据块为单位,属于有结构设备,如磁盘等
磁盘设备的基本特征是传输速率较高、可寻址(即可随机读写任一块)
字符设备
信息交换以字符为单位,属于无结构类型,如交互式终端机、打印机等
基本特征是传输速率低,不可寻址,并时常采用中断I/O方式
按传输速率分类
低速设备
传输速率仅为每秒几字节到数百字节的一类设备,如键盘、鼠标等。
中速设备
传输速率为每秒数千字节至数万字节的一类设备,如激光打印机等。
高速设备
传输速率在数百千字节至千兆字节的一类设备,如磁盘机、光盘机等。
I/O接口
定义
I/O接口(设备控制器)位于CPU与设备之间,既要与CPU通信,又要与设备通信,还要具有按CPU发来的命令去控制设备工作的功能
组成
设备控制器与CPU的接口
信号线
数据线:与寄存器相连
数据寄存器:存放从设备送来的输入数据或从CPU送来的输出数据
控制/状态寄存器:存放从CPU送来的控制信息或设备的状态信息
地址线
控制线
设备控制器与设备的接口
一个设备控制器可以连接一个或多个设备,因此控制器中有一个或多个设备接口。每个接口中都存在数据、控制和状态三种类型的信号。
I/O逻辑
用于实现对设备的控制。它通过一组控制线与CPU交互,对从CPU收到的IO命令进行译码。CPU启动设备时,将启动命令发送给控制器,同时通过地址线把地址发送给控制器,由控制器的IO逻辑对地址进行译码,并相应地对所选设备进行控制。
功能
①接收和识别CPU发来的命令,如磁盘控制器能接收读、写查找等命令
②数据交换,包括设备和控制器之间的数据传输,以及控制器和主存之间的数据传输
③标识和报告设备的状态,以供CPU处理
④地址识别
⑤数据缓冲
⑥差错控制
I/O端口
定义
I/O端口是指设备控制器中可被CPU直接访问的寄存器
分类
数据寄存器:实现CPU和外设之间的数据缓冲。
状态寄存器:获取执行结果和设备的状态信息,以让CPU知道是否准备好。
控制寄存器:由CPU写入,以便启动命令或更改设备模式。
编址方法
独立编址
为每个端口分配一个I/O端口号,所有I/O端口形成I/O端口空间,普通用户程序不能对其进行访问,只有操作系统使用特殊的I/O指令才能访问端口。
统一编址
又称内存映射I/O,每个端口被分配唯一的内存地址,且不会有内存被分配这一地址,通常分配给端口的地址靠近地址空间的顶端。
I/O控制方式
程序查询:软件 中断:软件(数据传送)+硬件(中断处理) DMA:硬件 通道:软件+硬件,通过执行通道程序(由通道指令组成)控制数据交换
程序直接控制方式
基本思想
非中断方式,CPU需循环检查外设状态,已确认要读取的字已在I/O控制器的数据寄存器中
由于CPU的高速性和I/O的低速性,使CPU的大部分时间被浪费在等待I/O设备的循环测试中
优缺点
简单且易于实现
CPU和I/O设备只能串行工作,致使CPU利用率很低
中断驱动方式
基本思想
引入中断机制,允许I/O设备主动打断CPU运行并请求服务,从而“解放”CPU,使其向I/O控制器发送读命令后可以继续做其他工作
运行过程
I/O控制器角度
从CPU处接收读命令,然后从外设读数据
数据读入I/O控制器的数据寄存器后,通过控制线向CPU发出中断信号
等待CPU的取数据请求,然后将数据放到数据总线上,传送到CPU寄存器中
CPU角度
CPU发出读命令,然后保存当前程序上下文,转去执行其他程序
在每个指令周期的末尾,CPU检查中断
当有来自I/O控制器的中断时,CPU保存当前上下文,转去处理中断
CPU从I/O控制器读一个字的数据传送到寄存器,并存入主存
恢复发出I/O命令的程序的上下文,然后继续运行
优缺点
比程序直接控制方式有效,但由于数据中的每个字在存储器与I/O控制器之间的传输都必须经过CPU,因此仍会消耗较多的CPU时间
DMA方式(直接存储器存取)

基本思想
在I/O设备和内存之间开辟直接的数据交换通路,彻底“解放”CPU
基本单位是数据块,且数据在设备和内存间直接传输
仅在传送若干数据块的开始和结束时需要CPU干预(注意,中断仅在结束时发生),数据传送由DMA控制器负责
DMA控制器
每个DMA控制器对应一台设备
寄存器
命令/状态寄存器(CR)
接收从CPU发来的I/O命令、有关控制信息,或设备的状态
内存地址寄存器(MAR)
在输入时,它存放把数据从设备传送到内存的起始目标地址;在输出时,它存放由内存到设备的内存源地址
数据寄存器(DR)
暂存从设备到内存或从内存到设备的数据
数据计数器(DC)
存放本次要传送的字(节)数
工作过程
CPU接收到I/O设备的DMA请求时,给DMA控制器发出一条命令,同时设置MAR和DC初值,启动DMA控制器并转交控制权
DMA控制器直接与存储器交互,传送数据块
传送完成后,DMA控制器发送中断信号给CPU
与中断方式的区别
中断方式在每个数据需要传输时中断CPU,且由CPU控制数据传送到内存
DMA方式仅在一批数据全部传送结束时才中断CPU,且数据的传送由DMA控制器负责
通道控制方式*

基本思想
I/O通道是专门负责输入/输出的处理机(属于硬件技术)
I/O通道方式是DMA方式的发展,进一步减少了CPU的干预,把对一个数据块读写为单位的干预,减少为对一组数据块为单位的干预
字节多路通道
用于连接大量的低速或中速I/O设备
包含许多非分配型子通道,每个通道连接一台I/O设备,并通过时间片轮转的方式共享主通道
I/O软件层次结构
定义
层次式结构的I/O软件将系统的设备管理模块分为若干层次,每层利用下层的服务,完成某些I/O功能的子功能,并屏蔽功能细节,向高层提供服务
层次及功能

用户层I/O软件
实现与用户交互的接口,用户可直接调用在用户层提供的、与I/O操作有关的库函数,对设备进行操作
用户层软件必须通过一组系统调用来获取操作系统服务
设备独立性软件
设备独立性(设备无关性)
使应用程序独立于具体使用的物理设备
应用程序是由逻辑设备名来请求使用某类设备;系统实际执行时需将逻辑设备名映射成物理设备名使用
①增加设备分配的灵活性
②易于实现I/O重定向
所谓I/O重定向,是指用于I/O操作的设备可以更换(即重定向),而不必改变应用程序。
功能
①执行所有设备的公有操作
对设备的分配与回收
将逻辑设备名映射为物理设备名
设备映射表(DMT)
计算机系统为每台设备确定一个编号以便区分和识别设备,该编号称为设备的绝对号
虚拟设备:把一个物理上的独占设备转换为若干逻辑设备,以克服独占设备速度慢、利用率低的特点
对设备进行保护,禁止用户直接访问设备
缓冲管理
差错控制
提供独立于设备的大小统一的逻辑块,屏蔽设备之间信息交换单位大小和传输速率的差异
②向用户层(或文件层)提供统一接口。无论何种设备,它们向用户所提供的接口应是相同的。例如,对各种设备的读/写操作,在应用程序中都统一使用read/write 命令等。
设备驱动程序
定义
与硬件直接相关,负责具体实现系统对设备发出的操作指令,驱动I/O设备工作的驱动程序
为每类设备配置一个设备驱动程序,它是I/O进程和设备控制器之间的通信程序,以进程形式存在
功能
接收设备控制器信号,向上层用户程序提供一组标准接口,封装设备及设备控制器的差异
接收上层软件的抽象I/O请求,发送给设备控制器,控制I/O设备工作
中断处理程序
用于保存被中断进程的CPU环境,转入相应的中断处理程序进行处理,处理完毕再恢复被中断进程的现场后,返回到被中断进程
应用程序I/O接口
字符设备接口
字符设备
定义
指数据的存取和传输以字符为单位的设备,如键盘、打印机等
特征
传输速率低、不可寻址(只能顺序存取),且输入/输出时通常采用中断驱动方式
字符设备都是独占设备,接口中需提供打开和关闭操作,以实现互斥共享
get/put操作
为字符设备建立一个字符缓冲区,用户程序通过get操作从缓冲区获取字符,通过put操作将字符输出到缓冲区
in-control操作
字符设备类型繁多,因此在接口中提供一种通用的in-control指令来处理它们(包含许多参数,每个参数表示一个与具体设备相关的特定功能)
块设备接口
块设备
定义
指数据的存取和传输是以数据块为单位的设备,如磁盘
特征
传输速率高、可寻址,磁盘设备的I/O常采用DMA方式
功能
隐藏磁盘的二维结构
将扇区地址的磁道号+扇区号的二维形式转换为线性序列编号
将抽象命令映射为低层操作
内存映射I/O(MMIO)
网络设备接口
网络套接字接口
套接字接口的系统调用使应用程序创建的本地套接字连接到远程应用程序创建的套接字,通过此连接发送和接收数据
阻塞/非阻塞I/O
阻塞I/O
指当用户进程调用I/O操作时,进程就被阻塞,需要等待I/O操作完成,进程才被唤醒继续执行
非阻塞I/O
指用户进程调用I/O操作时,不阻塞该进程,该I/O调用返回一个错误返回值,通常,进程需要通过轮询的方式来查询I/O操作是否完成
设备独立性软件
与设备无关的软件
I/O系统的最高层软件,其下层是设备驱动程序
包括执行所有设备共有操作的软件
高速缓存与缓冲区

磁盘高速缓存(Disk Cache)
基本思想
利用内存中的存储空间来暂存从磁盘中读出的一系列盘块中的信息,用于提高磁盘的I/O速度
逻辑上属于磁盘;物理上则是驻留在内存中的盘块
实现形式
①在内存中开辟一个单独的空间作为磁盘高速缓存,大小固定
②把未利用的内存空间作为一个缓冲池,供请求分页系统和磁盘I/O时共享
缓冲区(Buffer)
引入目的
1)缓和CPU与IO设备间速度不匹配的矛盾。
2)减少对CPU的中断频率,放宽对CPU中断响应时间的限制。
3)解决基本数据单元大小(即数据粒度)不匹配的问题。
4)提高CPU 和IO设备之间的并行性。
实现方法
硬件缓冲器(成本太高,较少使用)
缓冲区(位于内存区域)
分类
单缓冲
 
工作过程
在主存中设置一个缓冲区。当设备和处理机交换数据时,先将数据写入缓冲区,然后需要数据的设备或处理机从缓冲区取走数据,在缓冲区写入或取出的过程中,另一方需等待
处理每块数据用时
max(C, T)+M

T——I/O设备输入时间
C——CPU处理时间
M——系统传送时间
双缓冲
工作过程
I/O设备先装填数据到缓冲区1,填满后开始装填区2,同时处理机可以从区1中取出数据送入用户进程
区1数据处理完后,若区2已满,则处理机可以从区2中取数据,且I/O设备又可以装填缓冲区1
处理每块数据用时
max(C+M, T)
 
若C+M>T,则I/O设备等待CPU
若C+M<T,则CPU等待I/O设备,块设备可以连续输入
提高了处理机和输入设备的并行程度
可实现双机双向数据通信
循环缓冲
原理
包含多个大小相等的缓冲区,用指针链接成环形
in指针
指向可以输入数据的第一个空缓冲区
out指针
指向可以提取数据的第一个满缓冲区
缓冲池
基本思想
由多个系统公用的缓冲区组成
队列
空缓冲队列
输入队列:装满输入数据的缓冲队列
输出队列:装满输出数据的缓冲队列
缓冲区类别
用于收容输入数据的工作缓冲区
用于提取输入数据的工作缓冲区
用于收容输出数据的工作缓冲区
用于提取输出数据的工作缓冲区
工作过程
输入
输入进程从空缓冲队列的队首摘下一个空缓冲区,作为收容输入的工作缓冲区,装满数据后将其挂到输入队列队尾
计算进程从输入队列取得一个缓冲区作为提取输入工作缓冲区,从中提取完数据后将其挂到空缓冲队列尾
输出
计算进程从空缓冲队列的队首取得一个空缓冲区,作为收容输出工作缓冲区,装满数据后将其挂到输出队列队尾
输出进程从输出队列中区的一个装满输出数据的缓冲区,作为提取工作缓冲区,数据提取完后将其挂到空缓冲队列的队尾
设备分配与回收
设备分配概述
定义
设备分配是指根据用户的I/O请求请求分配所需的设备
分配原则
充分发挥设备的使用效率,尽可能地让设备忙碌,又要避免由于不合理的分配方法造成进程死锁
分类
独占设备——独占式使用设备
进程分配到独占设备后,便由其独占,直至该进程释放该设备
共享设备——分时式共享使用设备
对于共享设备,可同时分配给多个进程,通过分时共享使用
虚拟设备——以SPOOLing方式使用外部设备
SPOOLing技术实现了虚拟设备功能,可以将设备同时分配给多个进程(实质上就是实现了对设备的I/O操作的批处理)
考虑因素
I/O设备的固有属性
I/O设备的分配算法
I/O设备分配的安全性
I/O设备的独立性
设备分配的数据结构
 
设备控制表(DCT)
一个设备控制表表征一台设备,其中的表项就是设备的各个属性
对于请求本设备而未得到满足的进程,将其PCB按某种策略排成一个设备请求队列,设备队列的队首指针指向该请求队列队首PCB
控制器控制表(COCT)
设备控制器需请求通道的服务,故COCT中有一个表项存放指向相应通道控制表的指针
通道控制表(CHCT)
一个通道可为多个设备控制器服务,故CHCT中存在一个指针,指向存放接收CHCT服务的若干个设备控制器信息的表
系统设备表(SDT)
整个系统只有一张SDT,记录已连接到系统中的所有物理设备的情况,每个物理设备占一个表目
设备分配的策略

设备分配原则
根据设备特性、用户要求和系统配置情况
考虑设备使用效率、避免进程死锁、隔离用户程序和具体设备
设备分配方式
静态分配
主要用于独占设备的分配,在用户作业开始之前,由系统一次性分配改作业所要求的全部设备、控制器,直到作业被撤销前不会改变
不会出现死锁,但设备的使用效率低
动态分配
在进程执行过程中根据执行需要进行分配;当进程需要设备时,通过系统调用命令向系统提出设备请求,一旦用完,立即释放
提高设备利用率,但可能造成死进程锁
设备分配算法
先请求先分配
优先级高者优先
设备分配的安全性
定义
指设备分配中应防止发生进程死锁
分配
安全分配方式
每当进程发出I/O请求后便进入阻塞态,直到其I/O操作完成时才被唤醒
优点
设备分配安全
缺点
CPU和I/O设备串行工作
不安全分配方式
进程在发出I/O请求后仍可继续运行,或是继续发出I/O请求;仅当请求的设备已被另一进程占用,才进入阻塞态
优点
一个进程可同时操作多个设备,推进迅速
缺点
可能造成死锁
逻辑设备名到物理设备名的映射
设备独立性:指应用程序独立于具体使用的物理设备,可提高设备分配的灵活性和设备的利用率,方便实现I/O重定向
逻辑设备表(LUT)
功能
用于将逻辑设备名映射为物理设备名
表项
逻辑设备名
物理设备名
设备驱动程序入口地址
实现方式
在整个系统中只设置一张LUT
不允许重复的逻辑设备名,适用于单用户系统
每个用户设置一张LUT
SPOOLing技术(假脱机技术)

定义
引入脱机输入/输出技术,将独占设备改造成共享设备,以缓和CPU的高速性与I/O设备低速性之间的矛盾,以空间换时间
组成
输入井和输出井
磁盘上开辟出的两个存储区域
输入井模拟脱机输入时的磁盘,用于收容I/O设备输入的数据
输出井模拟脱机输出时的磁盘,用于收容用户程序的输出数据
进程的输入/输出数据被保存为一个文件,所有文件链接成一个输入/输出队列
输入缓冲区和输出缓冲区
在内存中开辟的两个缓冲区
输入缓冲区用于暂存由输入设备送来的数据,以后再传送到输入井
输出缓冲区用于暂存从输出井送来的数据,以后再传送到输出设备
输入进程和输出进程
输入/输出进程用于模拟脱机输入/输出时的外围控制机
用户要求的数据从输入设备经过输入缓冲区送到输入井,当CPU需要输入数据时,直接从输入井读入内存。
用户要求输出的数据先从内存送到输出井,待输出设备空闲时,再将输出井中的数据经过输出缓冲区送到输出设备。
实例:共享打印机
当用户进程请求打印输出时,SPOOLing系统同意打印,但是并不真正立即把打印机分配给该进程,而由假脱机管理进程完成两项任务:
1)在磁盘缓冲区中为之申请一个空闲盘块,并将要打印的数据送入其中暂存。
2)为用户进程申请一张空白的用户请求打印表,并将用户的打印要求填入其中,再将该表挂到假脱机文件队列上。
特点
①提高了I/O的速度,将对低速IO设备执行的I/O操作演变为对磁盘缓冲区中数据的存取,如同脱机输入/输出一样,缓和了CPU和低速T/O设备之间的速度不匹配的矛盾
②将独占设备改造为共享设备,在假脱机打印机系统中,实际上并没有为任何进程分配设备
③实现了虚拟设备功能,对每个进程而言,它们都认为自己独占了一个设备
设备驱动程序接口
磁盘和固态硬盘
磁盘

定义
磁盘(disk)是表面涂有磁性物质的物理盘片,通过一个称为磁头的导体线圈从磁盘读写数据。在读/写操作期间,磁头固定,磁盘在下面高速旋转
磁道
磁盘盘面上的数据存储在一组同心圆中,称为磁道,每个磁道与磁头一样宽,一个盘面中有上千个磁道
扇区
磁道又划分为几百个扇区,每个扇区固定存储大小,一个扇区称为一个盘块;相邻磁道及相邻扇区间通过一定的间隙分隔开,以避免精度错误
由于扇区按固定圆心角度划分,所以密度从最外道向里道增加,磁盘的存储能力受限于最内道的最大记录密度
磁盘驱动器
组成
磁头臂
主轴:用于旋转磁盘
电子设备:用于数据输入/输出
多个盘片垂直堆叠,组成磁盘组,每个盘面对应一个磁头;所有磁头固定在一起,与磁盘中心的距离相同且一起移动
所有盘片上相对位置相同的磁道组成柱面,扇区是磁盘可寻址的最小单位,磁盘上能存储的物理块数目由扇区数、磁道数及磁盘面数决定,磁盘地址用”柱面号·盘面号·扇区号“表示
分类
固定头磁盘:磁头相对盘片的径向方向固定
活动头磁盘:每个磁道一个磁头,磁头可移动
固定盘磁盘:磁头臂可来回伸缩定位磁道,磁盘永久固定在磁盘驱动器内
可换盘磁盘:磁盘可移动和替换
磁盘的管理
磁盘初始化
为一个新的空白盘划分扇区,以便磁盘控制器能够进行读写操作,这个过程也成为低级格式化(物理格式化)
为每个扇区使用特殊的数据结构,填充磁盘,每个扇区的数据结构通常由头部、数据区域(通常为256或512B)和尾部组成(头部和尾部包含了一些磁盘控制器的使用信息)
分区
在使用磁盘存储文件之前,操作系统要将自己的数据结构记录到磁盘上,过程如下:
①将磁盘分为由一个或多个柱面组成的分区(如C、D盘),每个分区的起始扇区和大小都记录在磁盘主引导记录的分区表中
②对物理分区进行逻辑格式化/高级格式化(创建文件系统),操作系统将初始的文件系统数据结构存储到磁盘上,包括空闲空间和已分配的空间以及一个初始为空的目录
簇
因扇区的单位太小,为提高效率,系统将多个相邻扇区组合在一起,形成一簇(Linux中称为块)
为便于管理磁盘,一簇中只能存放一个文件的内容,文件占用的空间只能是簇的整数倍
引导块
定义
自举程序
计算机启动时需要运行一个初始化程序(自举程序),它初始化CPU、寄存器、设备控制器和内存等,接着启动操作系统。为此,自举程序找到磁盘上的操作系统内核,将它加载到内存,并转到起始地址,从而开始操作系统的运行。
启动块
自举程序通常存放在ROM中,为了避免改变自举代码而需要改变ROM硬件的问题,通常只在 ROM中保留很小的自举装入程序,而将完整功能的引导程序保存在磁盘的启动块上,启动块位于磁盘的固定位置。具有启动分区的磁盘称为启动磁盘或系统磁盘。
引导ROM中的代码指示磁盘控制器将引导块读入内存(RAM),然后开始执行
Windows磁盘的引导
①引导首先运行ROM中的代码,该代码指示系统从MBR中读取引导代码
②Windows系统将引导代码存储在磁盘的第0号扇区,称为主引导记录(MBR),其中还包括一个磁盘分区表和一个标志(以指示从哪个分区引导系统)
③当系统找到引导分区时,读取其第一个扇区(即引导扇区),并继续余下的引导过程,包括加载各种系统服务
坏块
定义
由于磁盘有移动部件且容错能力弱,因此容易导致一个或多个扇区损坏。部分磁盘甚至在出厂时就有坏块。根据所用的磁盘和控制器,对这些块有多种处理方式
坏块的处理
实质:用某种机制使系统不去使用坏块
简单磁盘(如IDE的磁盘)
坏块可手动处理,如 MS-DOS的Format 命令执行逻辑格式化时会扫描磁盘以检查坏块。坏块在FAT表上会标明,因此程序不会使用它们
复杂磁盘
控制器维护磁盘内的坏块列表。这个列表在出厂低级格式化时就已初始,并在磁盘的使用过程中不断更新
扇区备用
低级格式化将一些块保留作为备用,操作系统看不到这些块。控制器可以采用备用块来逻辑地替代坏块
磁盘调度算法

磁盘的读写操作时间
 
寻找(寻道)时间Ts
活动头磁盘在读写信息前,将磁头移动到指定磁道所需要的时间。包括跨越n条磁道的时间和启动磁臂的时间s(约为2ms)
Ts=m×n+s
m是与磁盘驱动器速度相关的常数,约为0.2ms
旋转延迟时间Tr
磁头定位到某一磁道的扇区所需要的时间,设磁盘的旋转速度为r
Tr=1/2r
对于硬盘,典型的旋转速度为5400转/分,相当于一周11.1ms,则Tr为5.55ms
对于软盘,其旋转速度为300~600转/分,则Tr为50~100ms
传输时间Tt
从磁盘读出或向磁盘写入数据所经历的时间,取决于每次所读/写的字节数b和磁盘的旋转速度
Tr=b/rN
r为磁盘每秒的转数,N为一个磁道上的字节数
在磁盘存取时间的计算中,寻道时间与磁盘调度算法相关;而延迟时间和传输时间都与磁盘旋转速度线性相关;寻道时间和延迟时间都可通过一定策略减少,但传输时间由磁盘本身性质决定,不能减少
算法
先来先服务(FCFS)算法
基本思想
根据进程请求访问磁盘的先后顺序进行调度
特点
简单、公平;若只有少量进程,且请求大多访问簇聚的文件扇区,则性能较好
若有大量进程竞争使用磁盘,则算法性能接近于随机调度
最短寻找时间优先(SSTF)算法
基本思想
选择调度处理的磁道是与当前磁头所在磁道距离最近的磁道,以便使每次的寻找时间最短
特点
性能优于FCFS,但可能产生“饥饿”现象
扫描(SCAN)算法(电梯调度算法)
基本思想
在磁头当前移动方向上选择与当前磁头所在磁道距离最近的请求作为下一次服务对象
特点
对最近扫描过的区域不公平,因此在访问局部性上不如FCFS和SSTF
偏向于处理那些接近最里或最外的磁道的访问请求
循环扫描(C-SCAN)算法
基本思想
在扫描算法的基础上规定磁头单向移动,即回返时直接回到起始段而不服务任何请求
LOOK调度
基本思想
磁头移动时只需要到达最远端的一个请求即可返回,不需要到达磁盘端点
CLOOK调度
编号
同一盘面不同扇区:交替编号
同一柱面不同盘面:错位命名
固态硬盘
固态硬盘的特性
固态硬盘(SSD)
定义
固态硬盘((SSD)是一种基于闪存技术的存储器。它与U盘并无本质差别,只是容量更大,存取性能更好。一个SSD由和组成,如图5.23所示。闪存芯片,而闪存翻译层将来自CPU的逻辑块读写请求翻译成对底层物理设备的读写控制信号,因此闪存翻译层相当于扮演了磁盘控制器的角色。
组成
一个或多个闪存芯片
替代传统旋转磁盘中的机械驱动器
闪存翻译层
将来自CPU的逻辑块读写请求翻译成对底层物理设备的读写控制信号,相当于扮演了磁盘控制器的角色
B块(16KB~512KB)
P页(512B~4KB)
数据以页为单位读写,仅在某块被整体擦除后,其内的页才可以写
优点
由半导体存储器构成,没有移动部件,因此随机访问快于机械磁盘;能耗低、抗震性好、安全性高
半导体存储器的物理结构不需要考虑寻道时间和旋转延迟,适用于先来先服务调度算法
磨损均衡
动态磨损均衡
写入数据时,自动选择较新的闪存块
静态磨损均衡
就算没有数据写入,SSD也会监测并自动进行数据分配,让老闪存块无需承担写任务,让新闪存块腾出空间以便进行写操作
磁盘格式化
物理格式化又称低级格式化,是对磁盘的物理表面进行处理, 在磁盘上建立标准的磁盘记录格式,划分磁道(track) 和扇区(sector)。
逻辑格式化又称高级格式化, 是在磁盘上建立一个系统存储区域,包括引导记录区、 文件目录区FCT、文件分配表FAT;即将建立文件系统的根目录,并对保存空闲磁盘块信息的数据结构进行初始化
磁盘地址顺序