操作系统复习之I/O管理概述

目录

1. I/O设备

2. I/O控制方式

3.  I/O软件层次结构


1. I/O设备

 I/O设备是可以将数据输入到计算机,或接收计算机输出数据的外部硬件设备

(1)分类

 按特性分类:

 ①人机交互设备。用于计算机与用户之间交互,输入设备有鼠标键盘,输出设备打印机等

 ②存储设备。用于存储各种信息,如移动硬盘、光盘等

 ③网络通信设备。用于远程设备通信,如各种网络接口,调制解调器等

 按传输速率分类:

扫描二维码关注公众号,回复: 15824058 查看本文章

 ①低速设备。鼠标、键盘等,每秒几个到几百个字节

 ②中速设备。激光打印机等,每秒数千到数万字节

 ③高速设备。磁盘,光盘等,每秒数万字节到千兆字节

 按传输单位分类:

 ①块设备。该类设备信息的存取和传输以数据块为单位,如磁盘等,它们传输速率高,可寻址(随意读写任一块)

 ②字符设备。数据的输入输出以字符为单位,如打印机等,它们传输速率低,不可寻址,常采用中断驱动的方式

(2)I/O控制器

 定义:CPU无法直接控制I/O设备的机械部件,因此I/O设备需要有一个电子部件作为CPU和I/0设备机械部件之间的“中介”,用于实现CPU对设备的控制。这个电子部件就是I/O控制器,又称设备控制器。它接收从CPU发出的命令来控制I/O设备工作。

功能

接收和识别命令:I/O控制器中会有相应的控制寄存器,用来存放接收从CPU发来的命令和参数,并对所接收的命令进行译码。

数据交换:I/O控制器中会有相应的数据寄存器,实现CPU与控制器之间、控制器与设备之间的数据交换。

标识和报告设备状态:I/O控制器中会有相应的状态寄存器,记录I/O设备的状态。

地址识别:通过CPU提供的地址来判断CPU要读写的是哪个寄存器。

数据缓冲:缓和I/O设备与CPU速度不匹配的问题。

差错控制:对I/O设备传送来的数据进行差错检测。

组成:

CPU与控制器的接口:用于实现CPU与控制器之间的通信。CPU通过控制线发出命令;通过地址线指明要操作的设备;通过数据线来输入或输出数据

I/O逻辑:负责接收和识别CPU的各种命令(如地址译码),并负责对设备发出命令

控制器与设备的接口:用于实现控制器与设备之间的通信,一个控制器可能连接多个设备

2. I/O控制方式

(1)程序直接控制方式

 计算机从外部设备读取数据到存储器,每次读一个字的数据。对读入的每个字,CPU需要对外设状态进行循环检查,直到确定该字已经在I/O控制器的数据寄存器中。

 程序直接控制方式简单且易于实现,但CPU的绝大部分时间都处于等待I/O设备完成数据I/O的循环测试中,造成了CPU资源的极大浪费,导致CPU的利用率相当低

 (2) 中断驱动方式

 由于I/O设备速度慢,因此在CPU发出读/写命令后,可将等待I/O的进程阻塞,切换到别的进程执行。当I/O完成后,控制器会向CPU发出一个中断信号,CPU检测到中断信号后,会保存当前进程的运行环境信息,转去执行中断处理程序处理该中断。处理中断的过程中,CPU从I/0控制器读一个字的数据传送到CPU寄存器,再写入主存。接着,CPU恢复等待I/O的进程(或其他进程)的运行环境,然后继续执行。

 (3) DMA方式

  为了进一步减少CPU对I/O的干预,引入直接存储器访问方式,此时数据是以块为单位进行传输,在DMA控制器的作用下直接在设备与内存之间进行,不再需要CPU干预。

DMA控制器:DMA控制器的组成如下图所示,为了实现主机与控制器之间数据的直接交换,DMA控制器还设置了四类寄存器:

DR (数据寄存器) :暂存从设备到内存,或从内存到设备的数据。

MAR ( 内存地址寄存器) :在输入时,MAR表示数据应放到内存中的什么位置;输出时MAR表示要输出的数据放在内存中的什么位置。

DC (数据计数器) :表示剩余要读/写的字节数。

CR (命令/状态寄存器) :用于存放CPU发来的I/0命令,或设备的状态信息。

DMA的工作过程

①CPU 接收到I/O设备的DMA请求时,它给I/O控制器发出一条命令,启动DMA控制器,然后继续其他工作。

②之后CPU就把控制操作委托给DMA控制器,由该控制器负责处理。DMA控制器直接与存储器交互,传送整个数据块,每次传送一个字,这个过程不需要CPU参与。

③传送完成后,DMA控制器发送一个中断信号给处理器。

 整个过程只有在传送开始和结束时才需要CPU的参与。

(4) 通道控制方式

  I/O通道是专门负责输入输出的处理机,它可以识别并执行一系列通道指令,在DMA方式的基础上,进一步减少CPU的干预,即把对一个数据块的读写的干预减少为对一组数据块的读写以及有关控制管理,进一步提高CPU的利用率

I/O通道的三种类型 :

 ①字节多路通道:它适用于连接打印机、终端等低速或中速的I/O设备。这种通道以字节为单位交叉工作:当为一台设备传送一个字节后,立即转去为另一它设备传送一个字节。

 ②数组选择通道:它适用于连接磁盘、磁带等高速设备。这种通道以“组方式”工作,每次传送一批数据,传送速率很高,但在一段时间只能为一台设备服务。每当一个I/O请求处理完之后,就选择另一台设备并为其服务,可见通道利用率很低

 ③数组多路通道:这种通道综合了字节多路通道分时工作和选择通道传输速率高的特点,其实质是:对通道程序采用多道程序设计技术,使得与通道连接的设备可以并行工作。

四种I/O控制方式:

3.  I/O软件层次结构

  I/O软件通常组织成一种层次结构,即将系统输入输出功能组织成一系列的层次,每层都是利用其下层提供的服务来完成输入输出功能中的某些子功能,并屏蔽这些功能实现的细节,向上层提供服务。采用层次结构,可以确保层间的接口不变,某层的软件不会影响上下层的变更。层次结构的1/0软件仅最低层才会涉及硬件的具体特性。

(1) 用户层软件

①实现了与用户交互的接口,用户可直接使用该层提供的、与I/O操作相关的库函数对设备进行操作

②将用户请求翻译成格式化的I/O请求,并通过“系统调用”请求操作系统内核的服务

(2) 设备独立性软件

又称设备无关性软件,与设备硬件特性无关的功能几乎都在这一层实现。主要实现以下功能:

①向上层提供统一的调用接口,like write/read系统调用;

②设备的保护;

③设备的分配与回收;

④建立逻辑设备名(应用程序中定义的,用户可见的)到物理设备名的映射关系,即根据设备类型选择调用相应的驱动程序(通过逻辑设备表LUT,确定物理设备,然后找到设备驱动)

(3) 设备驱动程序

与硬件直接相关,负责具体实现系统对设备的发出的指令,将上层发出的一系列命令(如read/write)转化成特定设备“可懂”的一系列操作。包括设置设备寄存器:检查设备状态等

不同的I/O设备有不同的硬件特性,厂家需根据设备的硬件特性设计并提供相应的驱动程序。

(4) 中断处理程序

用于保存被中断进程的CPU环境,转入相应的中断处理程序进行处理,处理完后再恢复被中断进程的现场后返回被中断进程

当I/0任务完成时,I/0控制器会发送一个中断信号,系统会根据中断信号类型找到相应的中断处理程序并执行:

(5) 硬件

真正执行I/O操作,通常包括一个机械部件和一个电子部件(I/O控制器,前面已经介绍)

猜你喜欢

转载自blog.csdn.net/weixin_46516647/article/details/125088109
今日推荐