您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 操作系统第6章输入输出管理
第六章设备管理目的与要求:掌握I/O控制的原理、设备的使用方法。重点与难点:三种不同的I/O控制方式,三种不同的设备使用方法。6.1设备管理概述1.设备的分类和标识•1、设备分类•按工作特性分成存储设备、输入设备、输出设备。•(1)存储设备•也称外存或后备存储器、辅助存储器。•存储速度较内存慢,比内存容量大,相对价格便宜。•也称块设备。在物理上按固定的块组织,每块有自己的地址,块的大小通常在512KB-32KB。•(2)输入设备•输入设备是计算机用来接收来自外部世界信息的设备。如:键盘、鼠标、扫描仪、话筒、卡片输入机,纸带输入机等。•(3)输出设备•输出设备是将计算机加工处理好的信息送向外部世界的设备。如:打印机,绘图仪,显示器、音箱等。•输入设备、输出设备也称字符设备。信息以字符为单位组织。字符设备不编址,也没有任何寻址操作。按传输速度的快慢来分类(1)低速设备。如:键盘(10B/S)、鼠标(100B/S)(2)中速设备(比低速高一个数量级)。如:行式打印机、激光打印机(100KB/S)(3)高速设备(比中速高一个数量级)。如:磁盘(IDE磁盘5MB/S)、PCI总线528MB/S•2、设备标识•怎样标识各台设备?或如何给各台设备命名?•(1)设备绝对号•系统按某种原则为每台设备分配唯一的号码,用作硬件区分和识别设备的代号,称做设备绝对号(或设备绝对地址)。•(2)设备类型号•操作系统为每类设备规定了一个编号,称做设备类型号,也称主设备号。•用户在编写程序时不能通过设备绝对号来使用设备,只需向系统说明他要使用的设备类型。•如:UNIX系统中的所有块设备的设备名由主设备和次设备两部份构成。•例:rdf0,rdf1分别表示第1个和第2个软盘驱动器。前者rdf表示设备类型,后者表示同类设备的相对序号。6.1.2I/O系统结构•总线I/O系统结构不同规模的计算机系统,其I/O系统结构存在差异。大多数微型机和小型计算机中,都使用总线I/O系统结构。如:PCI(PeripheralComponentInterconnect,外部设备互连)总线例1:典型的PC总线结构。连接CPU、主存、设备控制器和I/O设备模型例2:微机的I/O组成CPU寄存器磁盘控制器打印机控制器其他控制器磁盘驱动器打印系统其他I/OCPU盒I/O地址I/O数据I/O控制….….….专门的数据线和控制线及状态线6.1.3设备控制器一、I/O部件的组成I/O设备通常包含一个电子部件和一个机械部件。(1)电子部件被称做设备控制器(DeviceController)或适配器(Adapter)(当控制多设备时:又叫总线控制器,通道控制器)。在个人计算机中,它通常是一块可以插入主板扩展槽的印刷电路板;(2)机械部分则是设备本身。操作系统一般只与控制器打交道,而非设备本身。早期CPU是直接控制外部设备的,在引入I/O部件之后,才将CPU逐渐从与外设的交互细节中解放出来。二、设备控制器的功能(1)实现主机与设备之间的通信控制,进行端口地址的译码;(2)把计算机的数字信号转换成机械部分能识别的模拟信号,或者反过来。(3)实现数据缓冲。(4)接收主机发来的控制命令。(5)将设备和控制器当前所处的状态提供给主机。四、控制器与CPU的通信方式1、每个控制器都有一些用来与CPU通信的I/O寄存器。•控制寄存器:用来选择外部设备的某个功能。如全双工或半双式通信方式、激活奇偶校验等。•状态寄存器:记载当前设备的状态,如当前命令是否完成,设备是否出错等。•数据寄存器:保存当前输入/输出的数据。•操作系统通过向这些寄存器写命令字来执行I/O功能。•操作系统从这些寄存器中读取数据,从而知道设备的当前状态,并判断是否准备接收新的命令等。2、通信方式的实现方法(1)存贮器映像I/O方式。在某些计算机上,这些寄存器占用内存地址空间的一部份。内存0kn设备1控制寄存器设备2控制寄存器设备3控制寄存器(2)专用地址方式。有些计算机使用专用的地址。每个控制器中的寄存器对应地址空间的一部份。如IBM-PC中的专用I/O地址如下:键盘060-063硬盘320–32F打印机378–37F软盘3F0–3F7彩色显示器3D0–3DFIBMPC的I/O地址6.1.4I/O系统的控制方式(1)程序I/O(程序直接控制方式)CPU直接控制I/O操作的全过程,包括测试设备状态、发送读写命令、传输数据。因此,处理机指令集应包括控制类、测试类、读写类I/O指令。I/O部件接收到相应的命令后,置于I/O状态寄存器的相应位置上。随着操作的执行更改状态位,但并不通知CPU。I/O数据通过CPU寄存器转发。向I/O部件发读命令读I/O部件状态寄存器检查状态从I/O部件读字数据将该字写入内存未OKOK出错该块读完OK下一指令未OK程序直接控制I/O方式示例(2)中断驱动I/O(中断控制方式)CPU向I/O部件发出命令后,转去做其他有用的工作。当I/O部件准备好数据后,利用中断通知CPU,再由CPU完成数据传输。CPU不必反复测试寄存器状态,节约了时间。但总体看来,中断控制方式仍然消耗大量的CPU时间,因为每个字的数据传输都必须经过CPU寄存器转发。下一指令向I/O部件发读命令读I/O部件状态寄存器检查状态从I/O部件读字数据将该字写入内存OK出错处理该块读完OK未OK中断处理做其他事情中断驱动I/O方式示例CPU(3)DMA技术(直接存贮器存储)一、前两种方式的缺陷:•I/O的传输速率受CPU测试或中断响应的速度限制;•CPU为管理I/O耗费大量时间。二、DMA(直接内存存取)方式是一种优于中断方式的I/O控制方式,其特点是:(1)数据传送的基本单位是数据块,即CPU与I/O之间,每次至少传送一个数据块;(2)所传的数据块,无需再经CPU寄存器转发而直接传至内存,或相反;(3)仅在一个数据块传输的开始或结束需要CPU干预。(4)CPU向DMA部件发送I/O命令后,即可进行其他工作。给DMA的命令中应包括:操作类别、I/O设备的地址、读写数据在内存中的首地址、字数。DMA的功能可以以独立的DMA部件在系统I/O总线上完成,也可整合到I/O部件中完成。读写内存时,DMA部件需要控制总线,CPU可能在涉及存储访问时因此而忙等待。向DMA部件发读命令读取DMA部件状态中断下一条指令做其他事情CPU直接控制外部设备引入I/O部件,CPU直接控制I/O部件引入中断驱动方式引入DMAI/O通道或I/O处理机输入/输出控制方式的发展过程(4)通道技术•概念1、什么是I/O通道。也称I/O处理器(机),是一个专门负责I/O的处理器,置于CPU和设备控制器之间;它是在DMA的基础上发展起来的,也是一种DMA技术,只是通道的控制芯片更为复杂,有了自己专用于I/O的指令集和存储器。称这种I/O处理器为I/O通道。2、通道程序。是由一系列的通道指令(或称通道命令)所构成,它由CPU按数据传送的不同要求自动形成,一般只包括少数几条指令。3、I/O通道的类型。①字节多路通道字节多路通道是以字节为基本传输单位,当一子通道控制的某台外设交换了一个字节后,就转向下一个子通道,以控制下一台设备传送一个字节。这就实现了子通道的循环轮转,以达到多路控制的目的,字节多路通道主要用来控制低速、并且以字节为基本传送单位的设备。如打印机。①字节多路通道示例②数组选择通道这种通道一次执行一个通道程序,控制一台设备连续地传送一批数据,当一个程序执行完后,才转向下一个程序,它的优点是传输速度高,缺点是一次只能控制一台设备进行I/O操作。它主要用来控制高速外设。如磁盘。数组选择通道③数组多路通道这种通道是上述两种通道的折中,可以分时的方式执行多道程序,每道程序可传送一组数据。它主要用于中速设备的控制。如磁带机。在一大型系统中可以同时存在这三种类型的通道以便控制各种不同类型的设备。※6.2I/O软件I/O软件的层次及其设计(1)I/O软件的总体目标按分层的思想构造软件,较低层的软件要使较高层的软件独立于硬件,较高层的软件则要向用户提供一个友好、规范、清晰的界面。(2)I/O软件设计的具体目标①设备独立性。让应用程序独立于具体的物理设备。②统一命名。一个文件或一个设备的名字应该是一个简单的字符串或一个整数,它不应依赖于设备。③同步/异步传输。大多数物理I/O是异步的,但应可与CPU同步。④出错处理。一般说来,错误应尽可能地在接近硬件的层上处理。⑤设备共享与独占。有些I/O设备应共享,如磁盘,而有些I/O设备应独占,如打印机等。(3)I/O软件的层次根据I/O软件的设计目标,将I/O软件组织成以下4个层次:中断处理程序、设备驱动程序、与设备无关的I/O软件和用户空间的I/O软件。用户进程用户层I/O设备无关的I/O设备驱动程序及中断处理程序硬件设备管理子系统I/O软件层次的逻辑结构图6.2.1中断处理程序(第一层)中断处理程序的主要任务:在采用中断驱动方式管理I/O设备时,当设备完成任务后,会向CPU发出中断信号,CPU分析中断原因,并调用对应的中断处理程序进行处理。中断处理程序进行相应的检查并取走数据,然后从中断处理程序返回至原来的执行点,继续执行。中断处理程序的基本步骤:无论是哪一种I/O设备,其中断处理程序的处理基本相同,其步骤为:①唤醒被阻塞的驱动进程。②保护被中断进程的CPU环境。③分析中断原因,转入相应的中断处理程序。④进行中断处理。⑤恢复现场。7.2.2设备驱动程序(第二层)设备驱动程序中存放着所有与设备相关的代码,每一类设备配置一种驱动程序。设备驱动程序的功能有如下几点:①将接收到的来自它上一层的与设备无关的抽象请求转为具体请求。如:请求“读第N块”,磁盘驱动程序应计算请求块的物理地址,检查驱动器的电机是否正在运转,确定磁头臂是否定位在正确的柱面上等。②检查用户I/O请求的合法性,了解I/O设备的状态,传递有关参数、设置设备的工作方式。③发出I/O命令,启动分配到的I/O设备,完成指定的I/O操作。④及时响应控制器或通道发来的中断请求,并调用相应的中断处理程序进行处理。⑤对于有通道的计算机系统,驱动程序还应能根据用户的I/O请求构成通道程序。6.2.3与设备无关的I/O软件(第三层)与设备无关的I/O软件和设备驱动程序之间的确切界限依赖于具体系统,某些系统出于效率的考虑,让设备驱动程序来实现本层软件功能。与设备无关的软件的基本任务是实现一般设备都需要的I/O功能,并且向用户层软件提供一个统一的逻辑接口。与设备无关的I/O软件系统称为I/O子系统。I/O子系统执行着与设备无关的操作,同时还为用户应用程序提供一个统一的接口。I/O子系统所需完成的主要功能:1、设备命名。2、设备保护。3、与设备无关的块。4、设备分配。5、出错处理。6.2.4用户空间的I/O软件(第四层)这一层与设备的控制细节无关,不直接与设备打交道。它将所有的设备看做逻辑资源。一、用户空间的I/O软件有两类:•一类是与用户程序相连的库过程,这些库过程是I/O软件的一部分。如:为用户进程提供各类I/O函数。用户以设备标识符和一些简单的函数来使用设备,如打开、关闭、读、写等。如C库中的函数fopen(),fread(),fwrite(),fclose()等。√另一类是SPOOLing(外部设备联机并行操作)系统,也称假脱机系统。它是针对慢速独占设备提出的一种设备管理技术,其核心思想是利用一台可共享的、高速大容量的块设备来模拟独占设备的操作,使一台独占设备变为多台可并行的虚拟设备,即把独占设备变成逻辑上的共享设备。二、SPOOLing系统具有下列特点:①对于用户进程是透明的,用户进程仍使用统一的系统调用命令访问字符设备。②用户进程实际上使用的是虚拟设备,而不是直接使用字符设备。③字符设备与各虚拟设备之间的数据交换由SPOOLing进程统一调度实施,而且这种交换是以并行方式进行的。例:打印设备是独占型设备,但通过SPOOLing技术,可让打印设备成为共享设备。三、设备的使用方法(一)设备相关系统调用简介
本文标题:操作系统第6章输入输出管理
链接地址:https://www.777doc.com/doc-5552048 .html