5.输入/输出
创始人
2025-05-28 19:19:59
  1. I/O硬件原理

I/O设备:
块设备把信息存储在固定大小的块中,每个块有自己的地址
字符设备以字符为单位发送或接收一个字符流,而不考虑块结构
设备控制器/适配器:
把串行的位流转换为字节块,并进行必要的错误校正
内存映射I/O:
每个控制寄存器端口被分配一个I/O端口号
每个控制寄存器被分配唯一的一个内存地址,并且不会有内存被分配这一地址
IN REG, PORT 读取I/O端口4的内容并存入REG
DMA直接存储器存取:
每次一字模式:
DMA控制器请求传送一个字并得到这个字,若CPU也想使用总线则必须等待,这种机制称为周期窃取
即设备控制器偶尔偷偷溜入并从CPU偷走一个临时的总线周期
块模式:
DMA通知设备获得总线,发起一连串的传送,然后释放总线,称为突发模式
飞越模式:
DMA控制器通知设备控制器直接将数据传送到主存
中断:
地址线上的数字指向称为中断向量的表格索引,以便读取一个新的PC,PC指向中断的开始
陷阱和中断通常共享相同的中断向量
精确中断:机器留在一个明确状态的中断
PC保存在一个已知的地方
PC指向的指令之前的所有指令已经完全执行
PC指向的指令之后的所有指令都没有执行
PC指向的指令的执行状态已知

2. I/O软件原理

设备独立性:程序可以访问任意I/O设备而无需事先指定设备
统一命名:一个文件或设备的名字是一个简单的字符串或数字,不依赖于设备
错误处理:错误尽可能在接近硬件层面得到处理
同步(阻塞)、异步(中断驱动)
程序控制I/O:
I/O最简单的形式是让CPU做全部工作
OS通常将字符串缓冲区复制到内核空间的一个数组中
轮询/忙等待:输出一个字符后,CPU不断查询设备是否就绪准备接收另一个字符
中断驱动I/O:
不缓冲字符,而是每个字符到来时便打印
使用中断,允许CPU在等待打印机变为就绪的同时,做些其他事情
中断发生在每个字符
使用DMA的I/O:
DMA本质是程序控制I/O,但由DMA控制器而不是主CPU做全部这工作

3. I/O软件层次

设备驱动程序:
块设备:包含多个可以独立寻址的数据块,如磁盘
字符设备:生成或接收数据流,如键盘、打印机
接收来自与设备无关软件发出的抽象的读写请求,并目睹这些请求被执行
与设备无关的I/O软件:
设备驱动程序的统一接口:
把符号化的设备名映射到适当的驱动程序
设备名唯一确定了一个特殊文件的i节点,包含主设备号(定位驱动程序)、次设备号(作为参数传递给驱动程序)
缓冲:匀速传输
错误报告
分配与释放专用设备
提供与设备无关的块大小

4. 盘

4.1 盘硬件

重叠寻道:控制器同时控制两个或多个驱动器进行寻道
逻辑块寻址(LBA):磁盘从0开始连续编号,无论磁盘的几何规格
RAID:廉价磁盘冗余阵列
SLED:单个大容量昂贵磁盘

4.2 磁盘格式化

磁盘能使用前,每个盘片经受由软件完成的低级格式化,包含一系列的同心磁道,每个磁道包含若干扇区,扇区间存在短的间隙
磁盘扇区:前导码、数据、ECC
前导码:以位模式开始,使硬件识别扇区的开始
ECC域包含冗余信息,用来恢复读错误
低级格式化使磁盘容量减少,减少的量取决于前导码、扇区间隙、ECC大小、保留备用扇区的数目
如作为200GB的磁盘销售,格式化后只有170GB()字节可存放数据,软件把1GB看成是字节,而不是字节,因此报告为158GB,实际应报告为158GiB
寻道期间有一些扇区通过,因此在每个磁道上第0扇区的位置与前一个磁道存在偏移,称为柱面斜进
ECC计算后,数据复制传送到主存需要时间,因此需要通过编号模式设置偏移
0扇区包含主引导记录(MBR),包含某些引导代码和处在扇区末尾的分区表
x86上,MBR分区表具有4个分区的空间,形如C: D: E: F:
高级格式化:设置一个引导块、空闲存储管理、根目录、空文件系统,将一个代码设置在分区表项以表明在分区中使用哪个文件系统

4.3 磁盘调度算法

读写磁盘块的时间:
寻道时间(磁盘臂移动到适当的柱面)
旋转延迟(等待适当的扇区旋转到磁头下)
实际数据传输时间
电梯算法:
保持按一个方向运动,直到这个方向上没有请求,然后改变方向

4.4 错误处理

坏扇区:
制造时的瑕疵
控制器中处理:
出厂前测试,用备用扇区替换
操作系统中处理:
建立重映射表,创建一个包含所有坏扇区的秘密文件
寻道错误

4.5 稳定存储器

当一个写命令发给它后,磁盘要么正确写数据,要么什么也不做,让现有数据完整留下
不惜一切代价保持磁盘的一致性
稳定写:
若不正确,则再次写和重读,直到n次
若n次连续失败,则重映射到备用块重复
稳定读:同上
崩溃修复:
崩溃后扫描两个磁盘,比较对应的块
若一个具有ECC错误,则坏块用好块覆盖
若一对都是好块但不同,则将驱动器1的块写到驱动器2上

5. 时钟

晶体振荡器:产生非常精确的周期性信号
计数器:在每个脉冲中递减,变为0时产生一个CPU中断
存储寄存器:加载计数器
一次完成模式:时钟启动时,把存储寄存器的值复制给计数器,每个脉冲中计算机减1,为0时产生中断停止工作,直到软件再一次显式启动它
方波模式:计数器为0产生中断后,存储寄存器的值自动复制到计数器,无限重复,周期性的中断称为时钟滴答
当前时间转换成自某个标准时间以来的时钟滴答数,如1970.1.1 12:00即UTC(协调世界时)
时钟驱动程序:
维护日时间
防止进程超时运行
CPU记账:辅助定时器的值表示该进程运行多长时间
处理用户进程的alarm系统调用
为系统各部分提供监视定时器
剖析、监视、统计信息收集
软定时器

相关内容

热门资讯

英语句子个人主页【最新6篇】 英语句子个人主页 篇一初识英语句子作为英语学习的基础,英语句子是我们在学习过程中不可或缺的一部分。无...
网购的好处英语作文【精选6篇... 网购的好处英语作文 篇一The Benefits of Online ShoppingIn toda...
七年级下册2013外研社英语... 七年级下册2013外研社英语所有句子 篇一第一篇内容本文将按照七年级下册2013外研社英语教材的顺序...
小王子英语读后感100字【推... 小王子英语读后感100字 篇一After reading "The Little Prince" i...
中国英语作文【推荐5篇】 中国英语作文 篇一:中国传统文化的魅力中国是一个拥有悠久历史和丰富文化的国家。中国的传统文化深深影响...