首页IT科技操作系统的设备管理采用缓冲技术提高cpu和io设备的(操作系统的设备管理)

操作系统的设备管理采用缓冲技术提高cpu和io设备的(操作系统的设备管理)

时间2025-06-16 14:29:27分类IT科技浏览4519
导读:除了 CPU资源管理、内存管理、文件管理外,操作系统还有一个重要的功能,就是管理连接到计算机的所有输入输出设备(简称 I/O 设备),包括鼠标、键盘、显示器、打印机、硬盘、USB 设备等等。...

除了 CPU资源管理             、内存管理                  、文件管理外             ,操作系统还有一个重要的功能                  ,就是管理连接到计算机的所有输入输出设备(简称 I/O 设备)      ,包括鼠标      、键盘             、显示器                  、打印机      、硬盘       、USB 设备等等            。

如同将操作系统中的文件管理功能称为文件系统             ,我们习惯将操作系统中实现设备管理的部分功能称为 I/O 系统                   。

I/O 设备的分类

I/O 设备的分类标准有很多                  ,表 1 为大家罗列了一些常见的分类标准      。

表 1 I/O 设备的分类 分类标准 I/O 设备类别 按使用特性分类 分为存储型设备                  、输入型设备            、输出型设备以及输入/输出型设备      。

其中输入型设备指的是 CPU 从中读取数据的设备;输出型设备指的是接收数据的设备                   。

按数据组织分类 分为字符设备和块设备            。

字符设备指的是以单个字符为单位传输数据的 I/O 设备      ,传输速率较低       ,例如交互式终端       、打印机等;块设备指的是以数据块为单位传输数据的 I/O 设备                  ,传输速率高            ,例如硬盘      。

按外部设备的从属关系分类 分为系统设备和用户设备                   。

系统设备指的是安装操作系统时就已经登记在系统中的 I/O 设备;除系统设备外的       ,都属于用户设备            。

按资源的分配角度分类 分为独占设备和共享设备。

独占设备指的是一段时间内只允许一个进程使用的设备;共享设备指的是一段时间内允许多个进程同时使用的设备                   。

当然                   ,I/O 设备的分类标准还有很多            ,这里不再一一举例                   。

设备控制器

设备控制器又称适配器,是计算机中的一种硬件设备。设备控制器扮演着 CPU 和 I/O 设备之间的中介(中间人)的角色                   ,因为 CPU 是无法直接控制 I/O 设备的                  ,当运行的进程请求执行 I/O 操作时,CPU 需要将控制 I/O 操作的指令发送给设备控制器             ,由设备控制器控制相应的 I/O 设备完成操作            。

因此                  ,每个 I/O 设备都必须配备一个设备控制器      ,一个设备控制器可以控制多个 I/O 设备                   。

设备控制器具有如下几个功能:

接收并识别 CPU 发送来的指令; 实现 CPU 与 I/O 设备之间的数据交换; 设备控制器中设有状态寄存器             ,能够记录 I/O 设备是处于忙碌状态还是空闲状态; 具备地址识别功能                   ,能够根据 CPU 发送来的指令      ,准确控制某一个 I/O 设备去运行; 为了解决 CPU 和 I/O 设备之间速度不匹配的问题       ,设备控制器中设有数据缓冲器; 能够检测 CPU 所发送指令的正确性                  ,确定无误后            ,设备控制器才控制相应的 I/O 设备完成操作;反之       ,如果发现指令有问题                   ,设备控制器会报告给 CPU            ,CPU 会重新发送一份新的指令      。

I/O控制方式

所谓 I/O 控制方式,是指文件系统控制 I/O 设备工作的方式            。

文件系统的整个发展历程                   ,一直以“尽量减少 CPU 对 I/O 控制的干预                  ,减少 I/O 操作对 CPU 执行效率的影响            ”为目标,先后设计了 4 种 I/O 控制方式             ,分别称为程序 I/O 控制方式                   、中断驱动 I/O 控制方式            、DMA 方式和通道方式                   。

1) 程序I/O控制方式

程序 I/O 控制方式又称程序轮询方式                  ,每一次 I/O 操作可以完成 1 个字符的读取或者写入      。

当进程请求 I/O 操作时      ,CPU 向设备控制器发送 I/O 指令             ,设备控制器根据指令启动相应的 I/O 设备                  ,同时将设备状态设为忙碌状态(状态寄存器的值由 0 变为 1)      。虽然执行的进程会因 I/O 操作转入等待状态      ,但进程调度程序并不会将 CPU 资源分配给其它进程                   。

执行 I/O 操作的过程中       ,CPU 会不断地检测设备控制器中记录的 I/O 设备状态是否发生改变                  ,一旦变化(状态寄存器中的值由 1 变为 0)            ,则表明 I/O 操作执行完毕(I/O 操作的处理结果会保存在设备控制器的数据寄存器中)       ,CPU 会立即从设备控制器中将处理结果取出                   ,并存储在指定的内存空间中            。如此            ,就完成了 1 个字符的 I/O 操作      。

显然,此方式最大的不足是                   ,CPU 在整个 I/O 操作过程中一直处于检测状态                  ,CPU 资源没有得到充分利用                   。

2) 中断驱动 I/O 控制方式

中断驱动 I/O 控制方式对程序 I/O 控制方式做了改进            。

当进程请求 I/O 操作时,CPU 向设备控制器发送 I/O 指令             ,随后进程调度程序将 CPU 资源分配给其他进程使用                  ,整个 I/O 操作由设备控制器负责完成。

当 I/O 操作完成后      ,设备控制器会向 CPU 发送一个中断信号             ,CPU 会检测 I/O 操作的处理结果                  ,确认没有问题之后      ,会读取结果并将其存储到指定位置                   。由此       ,就完成了 1 个字符的读写操作                   。

此方式中                  ,进程调度程序及时将 CPU 分配给其它进程使用            ,提高了 CPU 资源的利用率。但问题在于       ,每个字符的 I/O 操作都需要向 CPU 发送中断信号                   ,频繁的中断会影响 CPU 的执行效率            。 3) DMA I/O控制方式

DMA(Direct Memory Access) I/O 控制方式又称直接内存访问 I/O 控制方式            ,进一步减少了输入输出操作对 CPU 的干扰                   。

此方式实现 I/O 控制的核心思想是:新增一个 DMA 控制器,由它代替 CPU 控制内存和 I/O 设备之间的数据交换过程      。也就是说                   ,当进程发出 I/O 操作的请求后                  ,CPU 会初始化 DMA 控制器(例如数据的存储位置、数据量等等),同时向设备控制器发送 I/O 指令             ,之后 CPU 资源由进程调度程序分配给其它进程            。

整个 I/O 操作过程中                  ,DMA 控制器将内存中存储的数据不断地传输给 I/O 设备(完成写操作)      ,或者将 I/O 设备处理后的结果不断地传输到内存(完成读操作)                   。整个 I/O 操作完成之后             ,DMA 控制器会发送给 CPU 一个中断信号                  ,通知 I/O 操作完成      。

DMA 之所以能控制内存和 I/O 设备之间的数据传输      ,是因为 DMA 可以窃取 CPU 系统总线的使用权       ,从而代替 CPU 管理数据的存入和取出      。甚至于                  ,DMA 可以强迫 CPU 暂停相关工作            ,从而强行使用系统总线控制数据的传输                   。

整个 DMA I/O 控制方式的实现       ,CPU 只需要对 I/O 操作的开始和结束阶段进行干预                   ,数据传输过程全部都由 DMA 负责控制            。

相比前两种 I/O 控制方式            ,DMA 方式可以实现对一个内存块中数据的 I/O 操作,而不再是一个字符一个字符的处理                   ,大大减少了中断 CPU 的次数                  ,提高了 CPU 资源的利用率      。

4) I/O通道控制方式

虽然 DMA 方式已经显著提高了 CPU 的利用率,但面对输入输出多个内存块数据的时候             ,CPU 的中断仍然比较频繁                   。这种情况下                  ,可以选择 I/O 通道控制方式            。

讲解 I/O 通道控制方式之前      ,我们先了解什么是 I/O 通道。所谓 I/O 通道             ,它是独立于 CPU                   、专门控制 I/O 操作的处理器                  ,它可以执行 I/O 控制程序(又称通道程序)      ,一个通道程序可以处理多个内存块数据的 I/O 操作                   。

通道程序本质也是程序       ,是一些指令的集合                  ,通道程序通常由一些读指令                  、写指令以及控制转移指令构成                   。

一个 I/O 通道可以连接多个设备控制器            ,一个设备控制器可以连接多个 I/O 设备       ,I/O 通道能够代替 CPU 实现对 I/O 设备的统一管理。

I/O 通道控制方式的实现流程是:

当进程发出 I/O 请求后                   ,CPU 会根据请求生成相应的通道程序(存储到内存中)            ,然后向通道发送启动 I/O 操作的指令; 通道接收到指令后,会去内存中取出通道程序                   ,同时向 CPU 发送信号                  ,令 CPU 执行其他工作            。之后,通道开始执行通道程序             ,向设备控制器发送 I/O 指令                  ,启动 I/O 设备完成相应的工作                   。 当通道完成最后一条指令后      ,会向 CPU 发送中断信号             ,通知 CPU 完成 I/O 操作                  ,同时通道停止运行      。

以上 4 种 I/O 控制方式中      ,程序 I/O 控制方式的 CPU 需要等待 I/O 操作完成后才能继续执行其它任务       ,这样的 I/O 控制方式称为同步 I/O 控制方式;其它 3 种 I/O 控制方式中                  ,CPU 可以与 I/O 操作并行执行            ,它们统称为异步 I/O 控制方式            。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
为什么国内公司选择在香港上市的原因(国内企业用户为啥选择香港服务器) 开平信息网(开平市论坛)