目录
1、设备管理基础知识
(1)、外部设备分类
- 存储型设备:磁带机、磁盘机等,以存储大量信息为主和快速检索为目标,在系统中存储持久性信息,它是作为内存的扩充,因此叫外存
- I/O设备:显示器、打印机、通信设备等,他们把外界信息输入到计算机中,把计算结果从计算机输出,完成计算机之间的交互或者人机交互
(2)、注意事项
- 设备管理系统是计算机中最为复杂的一部分,通常使用I/O中断、缓冲区管理等多种技术,这些措施能够很好地克服由于I/O设备和CPU速度不匹配的问题,使主机和设备能够并行工作,提高设备使用效率
- 另一方面,操作系统将所有设备抽象为文件,将其统一在文件系统之下,赋予文件属性,对设备的操作就类似于对文件的操作,其优点是:尽可能统一文件和设备的I/O处理;尽可能把设备文件和普通文件纳入同一保护机制下
2、I/O硬件原理
(1)、不同方式对I/O设备分类
- 按照I/O操作特性可以分为:输入型设备、输出设备、存储型设备
- 按照I/O信息交换为单位分为:字符设备、块设备
- 其中输入型和输出型设备通常是字符设备,它与内存进行交换的单位是字节,即一次交换1个或者多个字节,存储型设备通常是块设备
- 存储型设备又可以分为顺序存储设备和直接存储设备
(2)、I/O控制方式
CPU 和并行工作具有重大意义,能大幅度提高计算机系统的效率和资源利用率。从早期的采用轮询方式,CPU 全程参加I/O操作,到使用中断方式,以减少CPU 参与I/O操作的工作量,直到引入DMA和通道方式,可以完全在没有CPU 的情况下实现I/O操作,消除系统性能瓶颈
- 轮询查找:又称程序直接控制方式,使用查询指令测试设备控制器的忙闲状态位,确定内存和设备是否能交换数据
- 轮询方式使用三条指令:查询指令,查询设备是否就绪;读写指令,当设备就绪时执行数据交换;转移指令:当设备未就绪时执行转移指令转向查询指令继续查询
- 一方面CPU 轮询设备的当前状态会终止原程序的执行,浪费宝贵的时间;另一方面,I/O准备就绪后,需要CPU参与当前的数据传输工作。所以可见CPU和设备只能串行工作,而不能并行执行,不能充分发挥主机功效,设备也不能得到合理的利用,整个系统的效率很低
- 中断方式:设备与CPU之间必须要有中断请求线,设备控制器的状态存储器中有相应的中断允许位
- 程序中断方式I/O由于不必忙式轮询设备,所以 CPU 和设备可以实现部分并行操作,所以与程序查询方式相比使得整个 CPU 的资源得到更加充分的利用
- 在I/O中断的方式中数据缓冲区很小,当缓冲区装满数据之后便会发生中断,那么在数据传输过程中发生中断的次数就会过多,这样就会大量耗费 CPU 的时间。若是系统配置多种设备,这些设备都是通过中断处理方式实现并行工作,会使得中断次数急剧增加,造成 CPU 来不及响应或者丢失数据
- DMA方式
- DMA不仅设有中断机制而且还有DMA传输控制器,若是出现DMA和CPU同时经总线访问内存的情况,cpu总是把总线占有权让给DMA,称为“周期窃用”。窃取时间通常是一个存取周期,让设备和内存之间实现数据交换,而不再需要CPU 的干预,这样可以减轻CPU 的负担。每次传输数据的数据的时候,不必进入到中断系统,进一步提高了 cpu 资源利用率
- 但是DMA传输需要窃取时钟周期,会降低 CPU 的处理效率,DMA的功能不强,不能满足I/O 操作的复杂功能,所以在大型计算机中一般使用通道技术
- 通道方式
- 通道方式是DMA方式的发展,能够再次减少cpu对I/O操作的干预。它能够充分发挥CPU 和设备之间并行工作的能力,也可以使种类繁多且物理特性各异的设备能够以标准的接口连接到计算机系统中
- 通过通道来管理和控制I/O操作,把CPU 从I/O 操作中彻底解放出来,实现设备和CPU 并行操作,通道之间并行操作,设备之间并行操作,设备之间并行操作,使整个系统效率高效
(3)、设备控制器
- 接受或者识别 CPU 或通道发来的消息。例如,磁盘控制器能接受读、写、查找等各种命令
- 实现数据交换。包括设备和控制器之间的数据传输,且通过数据总线或通道,控制器和内存之间数据传输
- 发现或和记录设备及自身的状态信息,供CPU 处理使用
- 设备地址识别
3、I/O软件原理
(1)、I/O软件设计目标和原则
- I/O软件设计的总体目标是高效性和通用性
(2)、设备驱动程序的
- 设备驱动程序主要包含三部分功能
- 设备驱动程序的功能是从独立于设备的软件中接受并且执行I/O请求
- 设备初始化。在系统初次启动的时候或者进行数据传输时,预置设备和控制器以及通道的状态
- 执行设备驱动例程。负责启动设备,进行数据传输,对于具有通道的I/O设系统,此例程还负责生成通道命令和通道程序,启动通道工作
- 调用和执行中断处理程序。负责处理设备和控制器以及通道所发出的各种中断
(3)、用户空间的I/O软件
- SPOOLing软件
- SPOOLing就是在内核外运行的系统I/O软件,它采用预输入、缓输出、和井管理技术,是多道程序设计系统中处理独占资型设备的一种方法,创建守护进程和特殊目录解决独占型设备额空占问题
4、缓冲技术
- 目的:为了解决 cpu 与设备之间速度不匹配的矛盾以及协调逻辑记录大小和物理记录大小不一致的问题,提高 CPU 和设备的并行性,减少I/O操作对 CPU 的中断次数,放宽对 CPU 响应时间的要求,操作系统普遍采用缓冲技术
- 实现缓冲区技术的基本思想是:当进程执行写操作输出数据时,先向系统申请一个输出缓冲区,然后将数据送至缓冲区,若是顺序写请求,则不断地将数据填入缓冲区,直到装满为止,此后进程可以继续计算,同时系统将缓冲区中内容写到设备上。当进程执行读操作输入数据时,先向系统申请一个缓冲区,系统将设备上的一条物理记录读至缓冲区,根据要求把当前所需要的逻辑记录从缓冲区中选出并传送给进程
- 常用的缓冲技术:单缓冲、双缓冲和多缓冲
5、设备独立性的好处?
- 应用程序与具体的物理设备无关,系统增减或者变更设备时对源程序不加以任何修改
- 容易应对I/O设备故障
- 提高系统可靠性,增加设备分配的灵活性
- 更有效地利用设备资源,实现多道程序设计
6、虚拟设备
(1)、SPOOLing为什么又叫假脱机技术?
SPOOLing 技术就是利用多道程序中的一道程序来模拟脱机输入时的外围控制机的功能,把低速 I/O 设备上的数据传送到高速磁盘上;用另一道程序来模拟脱机输出时外围控制机的功能,把数据从磁盘传送到低速输出设备上。这样,便在主机的直接控制下,实现脱机输入、输出功能。此时的外围操作与 CPU 对数据的处理同时进行,这种在联机情况下实现的同时外围操作称为 SPOOLing ,或称假脱机操作。
(2)、什么是虚拟设备?实现虚拟设备的主要条件是什么?
虚拟设备:为了提高独占设备的利用率,采用SPOOLING技术,用可共享的设备模拟独占设备,使独占设备成为共享设备,使每个作业感到自己分到了速度极高的独占设备。这种模拟的独占设备称为虚拟设备。
实现条件:预输入程序; (2) 井管理程序; (3) 缓输出程序。