第8章学习笔记:I/O系统与驱动边界
课程笔记理解设备控制、DMA、中断、缓冲、磁盘和SSD的完整请求链。
关联:章节 第8章 I/O系统与驱动边界
第8章笔记:I/O系统与驱动边界
本章问题
理解设备控制、DMA、中断、缓冲、磁盘和SSD的完整请求链。 本章不是七个术语的并列清单,而是一条从可观察现象到内部状态、从内部状态到工程证据的因果链。学习时始终标出对象身份、队列或表项、触发事件、权限边界和不可破坏的不变量。
七节机制连接
- 设备、控制器与驱动程序:驱动把通用I/O请求翻译成控制器命令,处理中断、错误和设备状态,内核维持隔离;实验入口为沿一次块读取画应用、VFS、块层、驱动、控制器和介质六层,并标注每层队列;反查边界是驱动运行在高权限环境,设备输入不可盲信;设备文件也不等于普通磁盘文件。
- 轮询、中断与DMA:轮询持续读状态,中断让CPU做别事后接收通知,DMA由控制器直接搬运内存块;实验入口为给设备速率和每字节轮询成本计算CPU占用,再比较每块中断与DMA设置成本;反查边界是DMA不代表CPU完全零工作;缓存一致性、映射和完成处理仍需软件参与。
- 缓冲、缓存与假脱机:缓冲吸收速率差,缓存复用已有数据,spooling把独占设备请求排成可管理作业;实验入口为比较键盘环形缓冲、磁盘页缓存和打印队列,逐项写生产者、消费者与满空策略;反查边界是三者目的可重叠但不是同义词;缓冲容量只延迟拥塞,不能无限吸收过载。
- 块层队列与磁盘调度:FCFS保公平,SSTF减少局部寻道但可能饥饿,SCAN/C-SCAN提供方向性服务边界;实验入口为从磁头53对请求98,183,37,122,14,124,65,67计算四种算法移动距离;反查边界是机械磁盘寻道模型不应直接套到SSD;还要声明扫描方向和磁道边界。
- SSD、闪存转换层与写放大:NAND按页写按块擦,FTL映射逻辑页到物理页,垃圾回收与磨损均衡带来写放大;实验入口为给主机写入量与NAND实际写入量计算WAF,分析预留空间和随机小写影响;反查边界是TRIM是提示不是立即擦除保证;掉电保护与持久化语义依设备实现。
- 实验:磁盘调度距离:模拟器逐请求累计绝对磁道差,SCAN还要处理方向反转和边界规则;实验入口为输入磁头位置与请求序列,输出FCFS和SSTF总移动距离;反查边界是SSTF距离相同时需规定选小磁道或原队列先后,否则测试不可复现。
- 实验:I/O方式CPU预算:把数据率、块大小、每次处理成本统一成秒与周期,分别计算轮询、中断和DMA占用;实验入口为输入每秒字节、每块字节、CPU频率与各方式周期成本,输出占用百分比;反查边界是吞吐预算不等于端到端延迟;中断合并降低频率也会增加单请求等待。
请给七节画依赖箭头:前一节留下的状态或接口怎样成为下一节输入?每条箭头补单位、事件或保护条件。若任何一节可以随意搬走且不影响上下文,说明你还没有建立章内联系。
章内实验
选择本章至少一个代码实验,从空环境运行全部内联测试,再新增一个资源耗尽、非法迁移、同刻事件或崩溃输入。保存输入、输出、参考模型、首个偏差和修复后的回归证据。不可复现的睡眠竞态或人工截图不算实验结果。
错题闭环
把错误编码为对象混淆、状态跳步、单位错误、队列顺序、竞态遗漏、权限越界或恢复假设。不要只写粗心。一周后更换数字和事件顺序重做阶段卷;能在新输入下重建机制而非记住答案,才算迁移成功。