操做系统-IO管理概述

IO管理概述

1、IO设备

  IO设备管理是操做系统设计中最凌乱也最具挑战性的部分。因为它包含了不少领域的不一样设备以及与设备相关的应用程序,所以很难有一个通用且一直的设计方案。因此在理解设备管理以前,应该先了解具体的IO设备类型。安全

  计算机系统中的IO设备按使用特性能够分为一下类型:网络

  1)人机交互类外部设备,又称慢速IO设备,用于桶计算机用户之间交互的设备,如打印机、显示器、鼠标、键盘等。这类设备数据交换速度相对较慢,一般是以字节为单位进行数据交换。
  2)存储设备,用于存储程序和数据的设备,如磁盘、磁带、光盘等。这类设备用于数据交换,速度较快,一般以多字节组成的块为单位进行数据交换。
  3)网络通讯设备,用于与远程设备通讯的设备,如各类网络接口、调制解调器等。其数据交换速度介于外部设备与存储设备之间。网络通讯设备在使用和管理上与前二者设备有很大的不一样。异步

  按传输速率可分为如下几类函数

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

  按信息交换的单位分类spa

  1)块设备:因为信息的存取老是以数据块为单位,因此存储信息的设备称为块设备。它属于有结构设备,如磁盘等。磁盘设备的基本特征是传输速率高,以及可寻址,即对他可随机地读写任意块。
  2)字符设备:用于数据输入输出的设备为字符设备,由于其传输的基本单位是字符。它属于无结构类型,如交互式终端机、打印机等。他们的传输速率低、不可寻址、而且在输入输出时常采用中断驱动方式。操作系统

  对于IO设备,有如下三种不一样类型的使用方式:设计

  独占式使用设备。独占式使用设备是指在申请设备是,若是设备空闲,就将其独占,再也不允许其余进程申请使用,一直等到该设备被释放才容许其余进程申请使用。例如:打印机。接口

  分时式共享使用设备。独占式使用设备时,设备利用率低,当设备没有独占使用的要求时,能够经过分时共享使用,提升利用率。例如:对磁盘设备的IO操做,各进程每次IO操做请求能够经过分时来交替进行。进程

  以SPOOLing方式使用外部设备。SPOOLing技术是在批处理操做系统时代引入的,即假脱机IO技术。这种技术用于对设备的操做,实质上就是对IO操做进行批处理。具体的内容后面有单独讲解。

  采用上面三种使用方式的设备分别称为独占设备、共享设备和虚拟设备

2、IO管理目标

  IO设备管理的主要目标有如下三个方面。

  方便使用:方便用户使用外部设备,控制设备工做完成用户的输入输出要求。
  提升效率:提升系统的并行工做能力,提升设备的使用效率。
  方便控制:提升外围设备和系统的可靠性和安全性,以使系统能正常工做。

3、IO管理功能

  IO设备管理的功能是按照输入输出子系统的结构和设备类型制定分配和使用设备的策略,主要包括:设备的分配和回收、外围设备的启动、对磁盘的驱动调度、外部设备中断处理、虚拟设备的实现。

4、IO应用接口

  IO应用接口就是从不一样的输入输出设备中抽象出一些通用类型。每一个类型均可以经过一组标准函数(即接口)来访问。具体的差异被内核模块(也称设备驱动程序)所封装。这些设备驱动程序一方面能够定制,以设和各类设备,另外一方面也提供了一些标准接口。

  IO应用接口的具体实现方式是:先把IO设备划分为若干种类的通用类型;而后对每一种类型提供一组标准函数来访问,这里的标准函数就是接口;为每一个IO设备提供各自的设备驱动程序,各类设备间的差别就体如今设备驱动程序的不一样之中,而对于访问这些设备的接口倒是按照该设备分数的类型而统一。

  划分IO设备所属的通用类型的依据:

  ①字符设备仍是块设备。
  ②顺序访问仍是随机访问。
  ③IO传输是同步仍是异步。
  ④共享设备仍是独占设备。
  ⑤操做速度的高低。
  ⑥访问模式是读写、只读仍是只写。

5、设备控制器(IO部件)

  IO设备一般包括一个机械部件和一个电子部件。为了达到设计的模块性和通用性,通常将其分开。电子部件成为设备控制器(或适配器),在我的计算机中,一般是一块插入主板扩充槽的印制电路板;机械部件即设备自己。

  因为具体的设备操做涉及硬件接口,且不一样的设备有不一样的硬件特性和参数,因此这些复杂的操做交由操做系统用户编写程序来操做是不实际的。引入控制器后,系统能够经过几个简单的参数完成对控制器的操做,而具体的硬件操做则由控制器调用相应的设备接口完成。设备控制器的引入大大简化了操做系统的设计,特别是有利于计算机系统和操做系统对各种控制器和设备的兼容;同时也实现了主存和设备之间的数据传输操做,使CPU从繁重的设备控制操做中解放出来。

  设备控制器经过寄存器与CPU通讯,在某些计算机上,这些寄存器占用内存地址的一部分,称为内存映像IO;另外一些计算机则采用IO专用地址,寄存器独立编址。操做系统经过想控制器寄存器写命令字来执行IO功能。控制器收到一条命令后,CPU能够转向进行其余工做,而让设备控制器自行完成具体IO操做。当命令执行完毕后,控制器发出一个中断信号,操做系统从新得到CPU的控制权并检查执行结果,此时,CPU仍旧是从控制器寄存器中读取信息来得到执行结果和设备的状态信息。

  设备控制器的主要功能为:

  ①接收和识别CPU或通道发来的命令,如磁盘控制器能就收读、写、查找、搜索等命令。
  ②实现数据交换,包括设备和控制器之间的数据传输;经过数据总线或通道,控制器和主存之间的数据传输。
  ③发现和记录设备及自身的状态信息,供CPU处理使用。
  ④设备地址识别。

  为实现上述功能,设备控制器必须包含如下组成部分:

  该接口有三类信号线:数据线、地址线和控制线。数据线一般与两类寄存器相链接:数据存储器(存放从设备送来的输入数据或从CPU送来的输出数据)和控制/状态寄存器(存放从CPU送来的控制信息或设备的状态信息)。设备控制器连接设备须要相应数量的接口,一个借口连接一台设备。每一个接口中都存在数据、控制和状态三种类型的信号。用于实现对设备的控制。它经过一组控制线与处理器交互,对从处理器收到的IO命令进行译码。CPU启动设备时,将启动命令发送给控制器,并同时经过地址线吧地址发送给控制器,由控制器的IO逻辑对地址进行译码,并相应地对所选设备进行控制。

6、IO控制方式

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

  计算机从外部设备读取数据到存储器,每次读一个字的数据。对读入的每一个字,CPU须要对状态循环检查,知道肯定该字已经在IO控制器的数据寄存器中。在程序IO方式中,因为CPU的高速型和IO设备的低速性,导致CPU的绝大部分时间都处于等待IO设备完成数据IO的循环测试中,形成CPU的极大浪费。在该方式中,CPU之因此要不断地测试IO设备的状态,就是由于在CPU中无中断机构,使IO设备没法向CPU报告它已完成了一个字符的输入操做。

  程序直接控制方式虽然简单易于实现,可是其缺点也是显然的,因为CPU和外部设备只能串行工做,致使CPU的利用率至关低。

  中断驱动方式的思想是:容许IO设备主动打断CPU的运行并请求服务,从而“解放”CPU,使得其向IO控制器发送命令后能够继续作其余有用的工做。咱们从IO控制器和CPU两个角度分别来看中断驱动方式的工做过程: 从IO控制器的角度来看,IO控制器从COU接受一个读命令,而后从外围设备读数据。一旦数据读入到该IO控制器的数据寄存器,便经过控制线给CPU发出一个中断信号,表示数据已准备好,而后等待CPU请求该数据。IO控制器收到CPU发出的取数据请求后,将数据放到数据总线上,传到CPU的寄存器中。至此,本次IO操做完成,IO控制器又能够开始下一次IO操做。

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

  中断驱动方式比程序直接控制方式有效,但因为数据中的每一个字在存储器与IO控制器之间的传输都必须经过CPU处理,这就致使了中断驱动方式仍然会花费较多的CPU时间。

  中断驱动方式中,CPU仍然须要主动处理在存储器和IO设备之间的数据传送,因此速度仍是受限,而直接内存存取(DMA)方式的基本思想是在外围设备和内存之间开辟直接的数据交换通路,完全解放CPU。该方式的特色是:

  ①基本单位是数据块。
  ②所传诵的数据,是从设备直接送入内存的,或者相反。
  ③仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在DMA控制器的控制下完成的。

  为了实如今主机与控制器之间成块数据的直接交换,必须在DMA控制器中设置以下四类寄存器:

  ①命令/状态寄存器(CR)。用于接收从CPU发来的IO命令或有关控制信息,或设备的状态。
  ②内存地址寄存器(MAR)。在输入时,它存放把数据从设备传送到内存的起始目标地址;在输出时,它存放由内存到设备的内存源地址。
  ③数据寄存器(DR)。用于暂存从设备到内存或从内存到设备的数据。
  ④数据计数器(DC)。存放本次CPU要读或写的字节数。

  DMA的工做过程是:CPU读写数据时,他给IO控制器发出一条命令,启动DMA控制器,而后继续其余工做。以后CPU就把这个操做委托给DMA控制器,由该控制器负责处理。DMA控制器直接与存储器交互,传送整个数据块,这个过程不须要CPU参与。当传送完成后,DMA控制器发送一个中断信号给处理器。所以,只有在传送开始和结束时才须要CPU的参与。

  DMA控制方式与中断驱动方式的主要区别是中断驱动方式在每一个数据传送玩后中断CPU,而DMA控制方式则是在所要求传送的一批数据所有传送结束时中断CPU;此外,中断驱动方式数据传送的是在中断处理时由CPU控制完成,而DMA控制方式则是在DMA控制器的控制下完成的。

  IO通道方式是DMA方式的发展,它能够进一步减小CPU的干预,即把对一个数据块的读或写为一个单位的干预,减小为对一组数据块的读或写及有关的控制盒管理为单位的干预。同时,又能够实现CPU、通道和IO设备三者的并行操做,从而更有效的提升整个系统的资源利用率。

  例如,当CPU要完成一组相关的读或写操做及有关控制时,只需向IO通道发送一条IO指令,已给出其所要执行的通道程序的首址和要访问的IO设备,通道接到该指令后,经过执行通道程序即可完成CPU指定的IO任务。

  IO通道和通常处理器的区别是:通道指令的类型单一,没有本身的内存,通道所执行的通道程序释放在主机内存中的,也就是说通道与CPU共享内存。

  IO通道与DMA的区别是:DMA方式须要CPU来控制传输的数据块大小、传输的内存位置,而通道方式中这些信息是由通道控制的。另外,每一个DMA控制器对应一台设备与内存传递数据,而一个通道能够控制多台设备与内存的数据交换。

相关文章
相关标签/搜索