资源描述
1 模块名称:设备管理
1.1 术语
1. 块设备(block device):块设备把信息存储在固定的块中,比如:磁盘。
2. 字符设备(character device):以字符为单位发送或接收一个字符流,不考虑任何块结构,比如:打印机、鼠标等。
3. 设备控制器(device controller):该电子部件又称为适配器(adapter)。
4. 前导码(preamble)
5. 错误校正码(Error-Correcting Code ,ECC)
6. 内存映射I/O(memory-mapped I/O):每个控制寄存器被分配唯一的一个内存地址,并且不会有内存被分配这一地址。
7. 直接存储器存取(Direct Memory Access ,DMA):可以独立于CPU而访问系统总线,它包含一个内存地址寄存器、一个字节计数器和一个或多个控制寄存器。
8. 周期窃取(cycle stealing):在DMA使用总线期间,如果CPU也想使用总线,那么它必须等待。
9. 突发模式(burst mode):DMA控制器通知设备获得总线,发起一连串的传送,然后释放总线。
10. 飞跃模式(fly-by mode):DMA控制器通知设备控制器直接将数据传送到内存。
11. 精确中断(precise interrupt):将机器留在一个明确状态的中断。
12. 不精确中断(imprecise interrupt):不满足精确中断条件的中断。
13. 设备独立性(device independence):它的意思是指能编写出可以访问任意I/O设备的程序,而事先无须指定设备。
14. 统一命名(uniform naming)。
15. 设备驱动程序(device driver)。
16. 双缓冲(double buffering)。
17. 假脱机(Spooling):多道程序设计系统中处理独占I/O设备的一种方法。
18. 集成驱动电子设备(Integrated Drive Electronics,IDE)。
19. 逻辑块寻址(logica block addressing,LBA)。
20. 独立磁盘冗余阵列(Redundant Array of Independent Disk)。
21. 时钟滴答(clock tick)。
22. 监视定时器(watchdog timer):操作系统部分设置的定时器。
23. 回显(echoing):大多数软件在击键的时候什么也不显示,如果需要,完全由计算机中的软件来显示字符,这一过程称为回显。
1.2 知识要点
1.2.1 I/O硬件
1.2.1.1 I/O设备分类
1.2.1.1.1 块设备
1. 块设备把信息存储在块中,每个块有自己的地址。
2. 块设备的基本特征是每个块能独立于其它块而读写。
3. 磁盘是最典型的块设备。
1.2.1.1.2 字符设备
1. 字符设备是不可以寻址的,没有任何寻道操作。
2. 打印机、网络接口、鼠标都是字符设备。
1.2.1.2 设备控制器
1. 设备控制器的定义;
2. 区别设备控制器与设备本身的意义;
3. 控制器的任务:将串行的比特流转换成字节块并在需要的时候进行纠错。
4. 控制器的工作方式。
1.2.1.3 内存映射I/O
1. 每个控制器有若干个寄存器用来与CPU通信,许多设备还有一个操作系统可以读写的数据缓冲区。
2. 有两种方法使CPU与这些控制寄存器与数据缓冲区进行通信。
1) 为每个寄存器分配一个I/O端口号;
2) 将所有控制寄存器映射到内存空间中。
上述两种方法的优缺点:
1) 内存映射I/O可以代码编写;
2) 内存映射I/O不需要特殊的机制来阻止用户进程执行I/O操作;
3) 如果只存在一个地址空间,那么所有的内存模块和I/O设备都必须检查所有的内存引用,以便了解由谁作出响应。
1.2.1.4 直接存储器存取(DMA)
1.2.1.4.1 DMA工作原理
1. 直接存储访问的工作原理;
2. 为了使控制器腾出时间供其数据传送到内存的技术——交叉编址。
1.2.1.4.2 总线应答DMA的工作模式
1. 字模式
2. 块模式
3. 字与块混合模式
4. 突发模式
5. 飞跃模式
1.2.1.5 重温中断
1.2.1.5.1 中断实现机制
中断到来时,在开始服务程序之前,系统总是要保存一定的信息,保存的方式大概有以下三种:
1. 将信息放在内部寄存器中(存在问题);
2. 使用当前堆栈(存在问题);
3. 使用内核堆栈(存在问题);
1.2.1.5.2 精确中断和不精确中断
精确中断的四个特征:
1. PC(程序计数器)保存在一个已知的地方;
2. PC所指向的指令之前的所有指令已经完全执行;
3. PC所指向的指令之后的所有的指令都没有执行;
4. PC所指向的指令的执行状态是已知的。
不满足上述特征的中断是不精确中断。
1.2.2 I/O软件
1.2.2.1 I/O软件原理
1.2.2.1.1 I/O软件的目标
1. 设备独立性
2. 错误处理
3. 同步(synchronous)(即阻塞)和异步(asynchronous)(即中断驱动)
4. 缓冲(buffering)
1.2.2.1.2 I/O控制方法
1. 程序控制I/O(programmed I/O)
2. 中断驱动I/O
3. 使用DMA的I/O
1.2.2.2 I/O软件层次
I/O软件通常组织成以下四个层次。每一层具有一个要执行的定义明确的功能和一个与邻近层次定义明确的接口。
1.2.2.2.1 中断处理程序
在中断发生时,操作系统会做一系列的工作。
1.2.2.2.2 设备驱动程序
为了访问设备硬件,设备驱动程序通常是操作系统内核的一部分。设备驱动程序通常位于操作系统其余部分的下面。
设备驱动程序最明显的功能是接收来自其上方与设备无关的软件所发出的抽象的读写请求,并且目睹这些请求的执行。
1.2.2.2.3 与设备无关的I/O软件
与设备无关的软件的基本功能是执行对所有公共设备的I/O功能,并且向用户层软件提供一个统一的接口。这些软件主要涉及到下面几个问题:
1. 设备命名;
2. 保护;
3. 向高层软件提供统一的数据块大小;
4. 缓冲;
5. 块设备的存储分配;
6. 分配和释放独占设备;
7. 错误报告。
1.2.2.2.4 用户空间的I/O软件
1. 尽管大部分I/O软件都在操作系统内部,但是仍有一部分在用户空间。但是并非所有的用户层I/O软件都由库过程组成。
2. 另一个重要类别是假脱机系统——spooling
1.2.3 I/O设备
1.2.3.1 盘
1.2.3.1.1 盘分类
1. 磁盘
2. RAID
3. CD-ROM
4. 可刻录CD
5. 可重写CD
6. DVD
1.2.3.1.2 磁盘格式化
1. 低级格式化
2. 高级格式化
1.2.3.1.3 磁盘调度算法
1. 先来先服务(FCFS)
2. 最短寻道优先(SSF)
3. 电梯算法(elevator algorithm)
1.2.3.1.4 错误处理
1. 制造时的瑕疵会引入坏扇区,对该错误在控制器或操作系统中可以进行处理
2. 磁盘臂中的机械故障可能引起寻道错误,大多数硬盘控制器可以纠正该错误
1.2.3.1.5 稳定存储器
为了防止磁盘有时出现的错误,用到了稳定存储器模型。稳定存储器使用一对完全相同的磁盘,并且定义了下述三种操作:
1. 稳定写
2. 稳定读
3. 崩溃恢复
1.2.3.2 时钟
1.2.3.2.1 时钟硬件
可编程时钟的几种操作模式:
1. 一次完成模式(one-shot mode)
2. 方波模式(square-wave mode)
1.2.3.2.2 时钟软件
时钟驱动程序的大致任务:
1. 维护日时间
2. 防止进程超时运行
3. 对CPU的使用情况记账
4. 处理用户进程提出的alarm系统调用
5. 为系统本身的各个部分提供监视定时器
6. 完成概要剖析、监视和统计信息收集
1.2.3.2.3 软定时器
软定时器(soft timer)避免了中断。无论何时当内核因某种其它原因在运行时,就在它返回到用户态前,它都要检查实际时间时钟以了解软定时器是否到期。
如果定时器到期,则执行被调度的事件,而无须切换到内核态,因为已在内核态。
1.2.3.3 面向字符的终端
目前最普遍的有三种类型:
1. RS-232终端硬件
2. 图形用户界面
3. 网络终端
1.2.3.4 电源管理
该部分包含很多细节问题:
1. 显示器
2. 硬盘
3. 内存
4. 热量管理
5. 电池管理
1.3 算法
1. 最短寻道算法
2. 电梯算法
展开阅读全文