OS IO Software And Device Management
I/O 软件层次I/O 软件把用户请求逐层转换成硬件能执行的操作。越上层越接近用户,越下层越接近硬件。 层次 位置 主要作用 用户层软件 用户态 提供库函数或用户接口,把用户请求转换成系统调用 设备独立性软件 内核态 提供统一 I/O 接口,完成设备保护、差错处理、设备分配、缓冲区管理、逻辑设备名映射 设备驱动程序 内核态 把通用 read/write 请求转换成特定设备能执行的寄存器操作 中断处理程序 内核态,最靠近硬件 响应设备中断,读控制器状态,完成中断应答和少量紧急处理 硬件 控制器和设备 执行实际 I/O 操作 判断属于哪一层 直接涉及设备寄存器、设备状态位、设备厂商规定的控制细节,通常属于设备驱动程序。不关心具体硬件、对多类设备都需要的管理工作,通常属于设备独立性软件。 用户层软件用户层软件给用户程序提供更方便的接口。用户程序通常不直接组织内核内部的 I/O 请求,而是调用库函数或系统调用封装。 例如输出文本时,程序可能调用...
IO Control Methods
I/O 控制方式I/O 控制方式讨论的是:CPU、控制器、主存和设备之间,究竟由谁等待、谁搬数据、谁发出下一步控制信号。 同一件 I/O 读写任务可以有不同控制方式。越往后,CPU 直接参与越少,硬件控制越多,并行性越强。 程序查询方式程序查询方式也叫程序直接控制方式,关键词是轮询。 读操作的大致流程: CPU 向控制器发出读命令,控制器启动设备。 控制器把状态寄存器置为“未就绪”或“忙”。 CPU 反复读取状态寄存器,检查设备是否准备好。 设备把数据送入控制器的数据寄存器,并把状态改为“就绪”。 CPU 发现就绪后,从数据寄存器读入一个字或字符。 CPU 把数据写入主存。 若还要继续输入,CPU 再发下一次读命令。 这种方式实现简单,但 CPU 在等待期间一直忙等,无法有效利用处理器时间。 项目 程序查询方式 CPU 干预频率 极高,启动、等待、每次传送都要 CPU 参与 传输单位 通常每次一个字或字符 读数据流向 设备 $\rightarrow$ 控制器 $\rightarrow$ CPU $\rightarrow$...
IO System And Controllers
I/O 系统从哪里开始I/O 系统处理的是主机与外部设备之间的信息交换。这里的外部设备不只是键盘、鼠标、显示器,也包括磁盘、SSD、网卡等能输入、输出或双向交换数据的设备。 从硬件视角看,一次 I/O 通常不会让 CPU 直接控制设备的机械部件或物理介质。CPU 面对的是 I/O 控制器,也叫 I/O 接口或设备控制器。控制器再去驱动具体设备。 这层中介很关键:CPU 能执行指令、访问寄存器、发出总线控制信号,但它不适合直接处理键盘按键、电机转动、磁头定位、网卡收发等设备细节。控制器把设备的复杂性收拢成 CPU 可以读写的寄存器和状态。 I/O 设备分类按功能分: 类型 作用 例子 输入设备 把外部信息送入计算机 键盘、鼠标、扫描仪 输出设备 把计算机信息送到外部 显示器、打印机 存储设备 长期保存数据,可读可写 磁盘、SSD、U...
Exception And Interrupt Handling
异常与中断的基本定义、分类和返回位置见 Exception-And-Interrupt-Brief。 中断响应与处理过程一次中断处理可以分成两个阶段: 硬件阶段:CPU 完成中断响应,也常称为中断隐指令完成的工作。它会暂停现行程序,保存返回所需的断点信息,并把控制权转入操作系统内核中的处理程序入口。 软件阶段:操作系统内核或设备驱动执行中断服务程序。 ↻ + − 中断处理的主线: 外部中断源提出中断请求。 CPU 在当前指令执行结束后检查中断请求。 若满足响应条件,CPU 进行中断判优,选出要响应的中断源。 CPU 执行中断隐指令:关中断、保存断点、切换到内核态,并引出内核中的中断服务程序。 内核态中断服务程序保存现场。 内核态中断服务程序完成具体服务。 中断服务程序恢复现场。 执行中断返回指令,回到原程序断点继续执行。 什么时候重新开中断? 单重中断:中断返回指令会恢复中断前的 CPU 状态(包括中断允许位),因此开中断发生在步骤 8;处理期间全程关中断。多重中断:在步骤 5–7 之间由软件显式开中断,使更高优先级的中断源可以打断当前服务程序。详见...
File Physical Structure And Space Management
文件块与磁盘块文件的逻辑地址空间会被划分为一个个文件块。外存也被划分为一个个磁盘块或物理块。文件系统要把: $$(\text{逻辑块号},\ \text{块内地址})$$ 转换为: $$(\text{物理块号},\ \text{块内地址})$$ 块内地址不变,真正需要转换的是块号。 Note 内存与外存之间的数据交换通常以块为单位。一个文件只有 10 B,也可能占用一个完整磁盘块。 连续分配连续分配要求每个文件在磁盘上占有一组连续的块。目录项中通常记录: 起始块号。 文件长度,或占用块数。 若文件起始块号为 $s$,要访问逻辑块号...
File System Overview
文件是什么文件是一组有意义的信息或数据集合。用户通常通过文件名、路径和应用程序来使用文件;操作系统则需要进一步记录文件的属性、外存位置、访问权限和打开状态。 常见文件属性: 属性 含义 文件名 由用户创建,便于用户查找;同一目录下通常不允许重名 标识符 系统内部唯一标识,对用户不要求可读 类型 指明文件类型,如文本、图片、目录、链接文件等 位置 用户看到的是路径;操作系统还要记录文件在外存中的位置 大小 文件当前占用的数据量 时间 创建时间、上次修改时间等 所有者 文件所属用户或用户组 保护信息 访问权限、口令、加密信息等 文件系统要解决的问题文件管理不是只保存“文件内容”。它至少要回答五类问题: 文件内部的数据如何组织。 文件之间如何组织成目录树。 用户和应用程序如何创建、打开、读写、关闭、删除文件。 文件数据如何落到外存的磁盘块上。 如何实现共享、保护、空闲空间管理和设备 I/O。 从路径名到磁盘块的过程通常会经过多层: 层次 主要任务 用户接口 处理...
Disk Scheduling And Management
磁盘访问时间 平均存取时间可写为: $$T_a=T_s+T_r+T_t$$ 时间 含义 寻道时间 $T_s$ 磁头移动到目标磁道所需时间 旋转延迟 $T_r$ 目标扇区转到磁头下方所需时间 传输时间 $T_t$ 数据真正读出或写入所需时间 寻道时间不仅包含磁头跨越磁道的移动时间,还包含磁臂启动时间。若启动磁臂耗时为 $s$,磁头每跨越一个磁道耗时为 $m$,本次需要跨越 $n$ 个磁道,则: $$T_s=s+m\times n$$ 如果磁盘转速为 $r$,这里 $r$ 表示每秒转数,则平均旋转延迟为: $$T_r=\frac{1}{2r}$$ 如果本次读写字节数为 $b$,每个磁道可存 $N$ 字节,则传输时间为: $$T_t=\frac{b}{rN}$$ 因此总时间也可写成: $$T_a=s+mn+\frac{1}{2r}+\frac{b}{rN}$$ 磁盘调度算法直接影响的是...
External Storage And Disk Basics
外存、辅存和外设外存储器也叫辅助存储器,用于长期保存大量数据。磁盘、磁带、光盘、U 盘、SSD 都可以放在这一层理解。 外存同时也是一种 I/O 设备:主机可以从外存读入数据,也可以把数据写出到外存。 辅存不能替代主存 CPU 通常不能直接访问辅存中的指令和数据。辅存中的内容要调入主存后,才成为 CPU 可以直接取指、读写和处理的数据。 磁表面存储器磁表面存储器是在载体表面涂覆磁性材料,用磁化状态记录二进制信息。磁盘、磁带、磁鼓都属于磁表面存储器。 磁表面存储器的优点: 容量大,单位容量成本低。 信息可以长期保存,断电后不丢失。 可以脱机保存和搬运。 非破坏性读出,读出后原信息仍然保留。 它的主要限制来自机械运动。磁头移动、盘片旋转都需要时间,因此磁盘访问速度通常慢于主存和 Cache...
SSD And Flash Storage
Flash 与 SSDFlash Memory 是一种非易失性半导体存储器,断电后仍能保存信息。U 盘、SD 卡、SSD 都基于 Flash。 SSD 是固态硬盘,通常可以理解为: $$\text{SSD} = \text{控制单元} + \text{Flash 存储单元}$$ SSD 与普通 Flash 存储芯片使用的存储介质类似,但 SSD 的控制单元更复杂,要负责地址映射、磨损均衡、坏块管理、垃圾回收等工作。 页和块SSD 内部常以页和块组织数据。 单位 描述 页 读写的基本单位,常见大小为 512 B 到 4 KB 块 擦除的基本单位,常见大小为 16 KB 到 512 KB;即一块包含多页 ==SSD 通常按页读写,但按块擦除==。 这意味着 SSD 不能像 RAM 那样随意覆盖一个已有数据的位置。若要改写旧数据,控制器可能需要搬移同块内仍有效的页,擦除整个块,再写入新数据。 SSD 读快写慢SSD...