5.1 I/O硬件原理
只注意I/O硬件提供给软件的接口,而不是其内部原理
5.1.1 I/O设备
I/O设备大致可分为两类:块设备和字符设备
块设备把信息存储在固定大小的块中,每个块有自己的地址。,每个块都独立于其他块读写。块可寻址设备与其他设备之间并没有严格的界限。
字符设备以字符为单位发送或接受一个字符流,而不考虑任何块结构,是不可寻址的,也没有任何寻道操作。
5.1.5 重温中断
5.2.3 中断驱动IO
定义:允许CPU在等待就绪的 同时做其他事情
5.3 IO软件层次
IO软件通常组织成四个层次,每一层具有一个要执行的定义明确的功能和一个定义明确的与邻近层次的接口。
5.3.1 中断处理程序
应当将中断隐藏在操作系统内部:将启动一个IO操作的驱动程序阻塞起来,直到IO操作完成并产生一个中断。
当中断发生时,中断程序将做它必须要做的全部工作以便对中断进行处理,然后,他可以启动中断的驱动程序以解除阻塞。中断的最终结果是使先前被阻塞的程序能够继续运行。
5.3.2 设备驱动程序
每个连接到计算机上的IO设备都需要某些设备特定的代码来对其进行控制,即设备驱动程序。
每个设备驱动程序通常处理一种类型的设备,不过在有时候,极其不同的设备却基于相同的底层技术,如USB。
为了访问设备的硬件,设备驱动程序通常必须是操作系统内核的一部分
5.3.3 与设备无关的IO软件
设备驱动程序和与设备无关的软件之间的确切界限依赖于具体系统
与设备无关的软件的基本功能是执行对所有设备公共的IO功能,并且向用户软件一个统一的接口
5.3.4 用户空间的IO软件
大部分IO软件都在操作系统内部,但是仍有一小部分在用户空间,包括与用户进程连接在一起的库,甚至完全运行于内核之外的程序。
并非所有的用户层IO软件都是由库过程组成的,另一个重要类别是假脱机系统,是多道程序设计系统中处理独占IO设备的一种方法。另一种方法是创建一个特殊进程,称为守护进程,以及一个特殊目录,称为假脱机目录
5.4.3 磁盘臂调度算法
读写磁盘块需要的时间:寻道时间(主导地位)+旋转延迟+实际数据传输时间
先来先服务(FCFS):每个磁盘驱动程序都维护一张表,每一个柱面未完成的请求组成一个链表,链表头存放在相应表目中。
最短寻道优先(SSF):下一次总是处理与磁头距离最近的请求以使寻道时间最小化
5.4.4 错误处理
坏扇区处理办法:在控制器中对它们进行处理或者在操作系统中
控制器中处理坏块的办法:
5.4.5 稳定存储器
稳定存储器:要么正确写,要么什么也不做,保证数据绝对正确
可能发生的错误:ECC正确概率低、扇区可能自发变坏、CPU可能出故障
稳定存储器使用一对完全相同的磁盘,无差错时,两者完全相同。
稳定写、稳定读、崩溃恢复
稳定写期间CPU崩溃的五种可能性:
5.5.2 时钟软件
除了中断由时间硬件完成,其他功能实现都由时钟软件实现
(1)维护日时间
5.6 用户界面:键盘、鼠标和监视器
5.6.1 输入软件
1. 键盘软件
IO端口中的每个数字是键的编 ,称为编 码,一共128个键,所以只需7个位
原始模式(面向字符) 加工模式(面向行)
回显(刚刚键入的字符出现在屏幕上)
回车:回到第一列 换行:到下一行 Enter键是回车换行
5.7 瘦客户机
主流计算范式一直在中心化计算和分散化计算之间震荡。
大部分用户想要高性能的交互式计算,但是实在不想管理一台计算机,于是分时系统使用的瘦客户机出现了(Chromebook)
5.8 电源管理
减少能量消耗的一般方法:1.某些部件(IO)不用时操作系统关闭他们 2.应用程序使用较少的能量
5.8.1 硬件问题
电池:1.一次性 2.可再充电的
耗能:工作>睡眠>休眠>关机
5.8.2 操作系统问题
找到算法和启发式方法,让操作系统对关于关闭什么设备以及何时关闭做出良好的决策。
1.显示器
定期关闭屏幕
4.内存
节能方法:1.刷新然后关闭高速缓存(睡眠状态) 2.将主存的内容写到磁盘上,然后关闭主存本身(休眠)
5.无线通信
由用户或者周期性关闭无线电设备
6.热量管理
风扇问题、周期性接入点问题、
7.电池管理
智能电池
8.驱动程序接口
ACPI(高级配置与电源接口):操作系统让设备 告当前状态、命令驱动程序削减能耗或正常运转
5.8.3 应用程序问题
指示程序使用较少的能量
5.9 有关输入/输出的研究
磁盘性能、 络、电能损耗、传感 络、时钟、中断延迟、设备驱动、瘦客户机
5.10 小结
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!