《操作系统》总结五(I/O管理)

输入输出管理本章主要内容:

I/O管理概述(I/O控制方式、I/O软件层次结构)和I/O核心子系统(I/O调度概念、局速缓存与缓冲区、设备分配与回收、假脱机技术(SPOOLing))。

5.1 I/O设备及其分类

I/O设备管理是操作系统设计中最凌乱也最具挑战性的部分。由于它包含了很多领域的不同设备以及与设备相关的应用程序,因此很难有一个通用且一致的设计方案。所以在理解设备管理之前,应该先了解具体的I/O设备类型。

计算机系统中的I/O设备按使用特性可分为以下类型:

1) 人机交互类外部设备:用于同计算机用户之间交互的设备,如打印机、显示器、鼠标、键盘等。这类设备数据交换速度相对较慢,通常是以字节为单位进行数据交换。

2) 存储设备:用于存储程序和数据的设备,如磁盘、磁带、光盘等。这类设备用于数据交换,速度较快,通常以多字节组成的块为单位进行数据交换。

3) 网络通信设备:用于与远程设备通信的设备,如各种网络接口、调制解调器等。其速度介于前两类设备之间。网络通信设备在使用和管理上与前两类设备也有很大不同。

除了上面最常见的分类方法,I/O设备还可以按以下方法分类:

1) 按传输速率分类:
  • 低速设备:传输速率仅为每秒几个到数百个字节的一类设备,如键盘、鼠标等。
  • 中速设备:传输速率在每秒数千个字节至数万个字节的一类设备,如行式打印机、 激光打印机等。
  • 高速设备:传输速率在数百个千字节至千兆字节的一类设备,如磁带机、磁盘机、 光盘机等。

2) 按信息交换的单位分类:
  • 块设备:由于信息的存取总是以数据块为单位,所以存储信息的设备称为块设备。它属于有结构设备,如磁盘等。磁盘设备的基本特征是传输速率较高,以及可寻址,即对它可随机地读/写任一块。
  • 字符设备:用于数据输入/输出的设备为字符设备,因为其传输的基本单位是字符。它属于无结构类型,如交互式终端机、打印机等。它们的基本特征是传输速率低、不可寻址,并且在输入/输出时常釆用中断驱动方式。

5.2 I/O(输入/输出)控制方式

设备管理的主要任务之一是控制设备和内存或处理机之间的数据传送,外围设备和内存之间的输入/输出控制方式有四种,下面分别介绍。

程序直接控制方式

如图5-1(a)所示,计算机从外部设备读取数据到存储器,每次读一个字的数据。对读入的每个字,CPU需要对外设状态进行循环检查,直到确定该字已经在I/O控制器的数据寄存器中。在程序直接控制方式中,由于CPU的高速性和I/O设备的低速性,致使CPU的绝大部分时间都处于等待I/O设备完成数据I/O的循环测试中,造成了 CPU资源的极大浪费。在该方式中,CPU之所以要不断地测试I/O设备的状态,就是因为在CPU中没有釆用中断机构,使I/O设备无法向CPU报告它已完成了一个字符的输入操作。

程序直接控制方式虽然简单易于实现,但是其缺点也是显而易见的,由于cpu和I/O设备只能串行工作,导致CPU的利用率相当低。

中断驱动方式

中断驱动方式的思想是,允许I/O设备主动打断CPU的运行并请求服务,从而“解放”CPU,使得其向I/O控制器发送读命令后可以继续做其他有用的工作。如图5-1(b)所示,我们从I/O控制器和CPU两个角度分别来看中断驱动方式的工作过程:
从I/O控制器的角度来看,I/O控制器从CPU接收一个读命令,然后从外围设备读数据。一旦数据读入到该I/O控制器的数据寄存器,便通过控制线给CPU发出一个中断信号,表示数据已准备好,然后等待CPU请求该数据。I/O控制器收到CPU发出的取数据请求后,将数据放到数据总线上,传到CPU的寄存器中。至此,本次I/O操作完成,I/O控制器又可幵始下一次I/O操作。


图5-1  I/O控制方式

从CPU的角度来看,CPU发出读命令,然后保存当前运行程序的上下文(现场,包括程序计数器及处理机寄存器),转去执行其他程序。在每个指令周期的末尾,CPU检查中断。当有来自I/O控制器的中断时,CPU保存当前正在运行程序的上下文,转去执行中断处理程序处理该中断。这时,CPU从I/O控制器读一个字的数据传送到寄存器,并存入主存。接着, CPU恢复发出I/O命令的程序(或其他程序)的上下文,然后继续运行。

中断驱动方式比程序直接控制方式有效,但由于数据中的每个字在存储器与I/O控制器之间的传输都必须经过CPU,这就导致了中断驱动方式仍然会消耗较多的CPU时间。

DMA方式(直接内存存取)

在中断驱动方式中,I/O设备与内存之间的数据交换必须要经过CPU中的寄存器,所以速度还是受限,而DMA(直接存储器存取)方式的基本思想是在I/O设备和内存之间开辟直接的数据交换通路,彻底“解放” CPU。DMA方式的特点是:
  • 基本单位是数据块。
  • 所传送的数据,是从设备直接送入内存的,或者相反。
  • 仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在DMA控制器的控制下完成的。

图5-2列出了 DMA控制器的组成。


图5-2 DMA控制器的组成

为了实现在主机与控制器之间成块数据的直接交换,必须在DMA控制器中设置如下四类寄存器:
  1. 命令/状态寄存器(CR):用于接收从CPU发来的I/O命令或有关控制信息,或设备的状态。
  2. 内存地址寄存器(MAR):在输入时,它存放把数据从设备传送到内存的起始目标地址;在输出时,它存放由内存到设备的内存源地址。
  3. 数据寄存器(DR):用于暂存从设备到内存,或从内存到设备的数据。
  4. 数据计数器(DC):存放本次CPU要读或写的字(节)数。

如图5-1(c)所示,DMA方式的工作过程是:CPU读写数据时,它给I/O控制器发出一条命令,启动DMA控制器,
  • 6
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
操作系统原理中的I/O管理涉及到操作系统中对输入和输出设备的管理和控制。下面是一个思维导图来帮助理解I/O管理的相关概念和原理。 1. I/O管理的目标: - 提供接口和抽象层:操作系统需要提供统一的接口和抽象层,使得应用程序可以方便地访问各种不同类型的输入和输出设备。 - 提高资源利用率:操作系统需要有效地管理和调度各种输入和输出请求,以提高设备资源的利用率。 2. I/O设备的层次结构: - 高级设备驱动程序:提供面向应用程序的设备控制接口和抽象。 - 低级设备驱动程序:与设备硬件直接交互,负责具体的设备控制操作。 - 设备控制器:连接设备和计算机系统,负责设备的传输和控制。 - 设备接口:连接设备控制器和设备。 3. I/O管理的主要模块: - 设备命令处理:操作系统解析应用程序的I/O请求,并将其转换为设备命令,包括设备控制字和设备地址。 - 设备分配和释放:操作系统需要根据设备的可用性和应用程序的请求,对设备进行动态分配和释放。 - 设备驱动程序:包括高级设备驱动程序和低级设备驱动程序,负责设备控制和数据传输操作。 - 中断处理:当设备完成请求或发生错误时,操作系统通过中断机制来处理相应的中断事件。 4. I/O调度算法: - 先来先服务(FCFS):按照请求的顺序进行处理。 - 最短寻道时间优先(SSTF):根据当前磁头位置选择最近的请求进行处理。 - 电梯算法:磁头按照一个方向依次移动,直到到达最大值或最小值,然后改变方向继续处理请求。 总结操作系统原理中的I/O管理涉及设备的层次结构、设备命令处理、设备分配和释放、设备驱动程序、中断处理以及I/O调度算法等方面的内容。理解I/O管理的原理对于操作系统的设计和优化具有重要意义。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值