第5章 设备管理_第1页
第5章 设备管理_第2页
第5章 设备管理_第3页
第5章 设备管理_第4页
第5章 设备管理_第5页
已阅读5页,还剩94页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第六章输入输出系统主机硬件系统之外的设备及相关设备控制器、通道设备管理的对象是什么?通常可以放到主机箱外部,简称外设。外设的种类繁多,特性和操作方式也相差巨大,但本质上和主机的关系仅为数据的交换,包括输入(IN)和输出(OUT),所以外设也称为I/O设备。由于外设的种类繁多,差异大,使得设备管理成为操作系统最繁杂且与硬件最紧密相关的部分.6.1I/O系统的功能、模型和接口6.1.1

I/O系统的基本功能1.隐藏物理设备的细节2.与设备的无关性3.提高处理机和I/O设备的利用率4.对I/O设备进行控制5.确保对设备的共享6.错误处理6.1.2I/O系统的层次结构和模型1.I/O系统的层次结构(1)用户层I/O软件(2)设备独立性软件(3)设备驱动程序(4)中断处理程序6.1.3I/O系统接口1.块设备接口2.流设备接口3.网络通信接口6.2I/O设备和设备控制器I/O设备一般由机械和电子两部分组成,把这两部分分开处理,以提供更加模块化,更加通用的设计。物理设备机械部分是设备本身(物理装置)设备控制器电子部分叫做设备控制器或适配器。在小型和微型机中,它常采用接口与芯片组的形式存在,完成设备与主机间的连接和通讯。在计算机系统设计时为什么把设备控制器从设备中独立出来?6.2.1I/O设备类型按传输速率分类低速设备中速设备高速设备按信息交换单位分类块设备字符设备按设备共享属性分类独占设备共享设备虚拟设备键鼠打印机硬盘2.设备与控制器之间的接口图5-1设备与控制器间的接口这又是什么?6.2.2设备控制器设备控制器是CPU和I/O设备之间的接口,代替CPU控制设备,实现I/O设备和计算机之间的数据交换。CPUATA控制器USB控制器ATA硬盘U盘……这些设备控制器在哪里能看到?南桥芯片南桥芯片(SouthBridge)

南桥芯片的发展方向主要是集成更多的功能,例如网卡、RAID、IEEE1394、甚至WI-FI无线网络等等。

是主板芯片组的重要组成部分,一般位于主板上离CPU插槽较远的下方,PCI插槽的附近,这种布局是考虑到它所连接的I/O总线较多,离CPU远一点有利于布线,离设备近一些有利于提高速度。南桥芯片不与处理器直接相连,而是通过一定的方式与北桥芯片相连。

南桥芯片负责I/O总线之间的通信,如PCI总线、USB、LAN、SATA、音频控制器、键盘控制器等,一般相对来说比较稳定,发展也比较慢。常见的南桥芯片有Intel的ICH7,nForce的410,VIA的VT8237。这是什么?1.设备控制器的基本功能接收和识别命令(控制寄存器)设备控制器将CPU送来的命令写入控制寄存器中,并进行译码。2)数据交换(数据寄存器)3)标识和报告设备的状态(状态寄存器)1.设备控制器的基本功能4)地址识别(地址译码器)系统中的每个设备都有自己的地址段,设备接口电路中有多个寄存器,一个寄存器有唯一的一个地址,每个地址为I/O端口,该地址称为I/O端口地址。设备控制器必须能识别每个设备的地址。5)数据缓冲(缓冲器)6)差错控制

2.设备控制器的组成图5-2设备控制器的组成6.2.3内存映像I/O1.利用特定的I/O指令2.内存映像I/O6.2.4

I/O通道1.

I/O通道设备的引入通道硬件比较简单,指令类型单一,主要局限于与I/O操作有关的指令;通道没有自己的内存,通道与CPU共享内存。2.通道类型1)字节多路通道(ByteMultiplexorChannel)图5-3字节多路通道的工作原理适合连接低、中速设备2)数组选择通道(BlockSelectorChannel)

为连接高速设备,推动了按数组方式进行数据传送的数组选择通道的形成。这种通道可以连接多台高速设备,但由于它只含有一个分配型子通道,在一段时间内只能执行一道通道程序,控制一台设备进行数据传送,致使当某台设备占用了该通道后,便一直由它独占,即使是它无数据传送,通道被闲置,也不允许其它设备使用该通道,直至该设备传送完毕释放该通道。这种通道的利用率很低。3)数组多路通道(BlockMultiplexorChannel)

数组多路通道是将数组选择通道传输速率高和字节多路通道能使各子通道(设备)分时并行操作的优点相结合而形成的一种新通道。它含有多个非分配型子通道,因而这种通道既具有很高的数据传输速率,又能获得令人满意的通道利用率。也正因此,才使该通道能被广泛地用于连接多台高、中速的外围设备,其数据传送是按数组方式进行的。3.“瓶颈”问题图5-4单通路I/O系统6.3中断机构和中断处理程序6.3.1中断简介1.中断和陷入2.中断向量表和中断优先级3.对多中断源的处理方式1)屏蔽中断2)嵌套中断6.3.2中断处理程序的处理过程唤醒被阻塞的驱动(程序)进程2.保护被中断进程的CPU环境3.转入相应的设备处理程序4.中断处理5.恢复被中断进程的现场图6-11中断处理流程6.4设备驱动程序6.4.1设备驱动程序概述1.设备驱动程序的功能2.设备驱动程序的特点3.设备处理方式1.设备驱动程序的功能(1)接收由I/O进程发来的命令和参数,并将命令中的抽象要求转换为具体要求,例如,将磁盘块号转换为磁盘的盘面、磁道号及扇区号。

(2)检查用户I/O请求的合法性,了解I/O设备的状态,传递有关参数,设置设备的工作方式。(3)发出I/O命令,如果设备空闲,便立即启动I/O设备去完成指定的I/O操作;如果设备处于忙碌状态,则将请求者的请求块挂在设备队列上等待。

(4)及时响应由控制器或通道发来的中断请求,并根据其中断类型调用相应的中断处理程序进行处理。

(5)对于设置有通道的计算机系统,驱动程序还应能够根据用户的I/O请求,自动地构成通道程序。2.设备驱动程序的特点(1)驱动程序主要是指在请求I/O的进程与设备控制器之间的一个通信和转换程序。

(2)驱动程序与设备控制器和I/O设备的硬件特性紧密相关,因而对不同类型的设备应配置不同的驱动程序。

(3)驱动程序与I/O设备所采用的I/O控制方式紧密相关。

(4)由于驱动程序与硬件紧密相关,因而其中的一部分必须用汇编语言书写。3.设备处理方式(1)为每一类设备设置一个进程,专门用于执行这类设备的I/O操作.(2)在整个系统中设置一个I/O进程,专门用于执行系统中所有各类设备的I/O操作。

(3)不设置专门的设备处理进程,而只为各类设备设置相应的设备处理程序(模块),供用户进程或系统进程调用。6.4.2设备驱动程序的处理过程将抽象要求转换为具体要求2.检查I/O请求的合法性3.检查设备的状态传送必要的参数

启动I/O设备6.4.3I/O控制方式I/O控制方式指得就是CPU与外设的通信方式。目前在多通道程序设计环境下,I/O操作控制能力已经成为计算机系统综合处理能力的重要构成因素。一般选取衡量I/O控制方式的好坏时应考虑如下因素:信息传输效率尽量高,以形成大的吞吐量。I/O系统资源利用率好,实现资源的均衡使用。尽量减少CPU用于进行I/O处理的开销,使CPU效率得以充分发挥。

这四种方式代表了计算机系统中I/O控制的四个不同的发展阶段。每个阶段的发展都受到计算机硬件组织结构发展变迁的影响。

按照传输控制能力的强弱与速度,以及CPU与外设并行处理程度的不同。常将I/O系统中信息的传输控制方式分为四类:1、程序I/O方式2、中断方式

3、DMA方式4、通道方式1.程序I/O方式CPU在一条启动外设的I/O指令发出后,同时将忙/闲标志置为忙,如果外设的工作没有完成,则标志一直为忙,CPU不断循环检测该标志,直到标志为不忙为止。然后,CPU就将数据寄存器的值取出,主存与外设之间便可以交换一定量的信息。CPU向I/O控制器发命令置忙标志忙吗?读状态寄存器标志CPU读数据寄存器到指定内存单元传送完成?完成未完成忙不忙设备收到控制器送来的CPU命令启动I/O,把数据送入寄存器完成?是置不忙标志未完成下条指令程序I/O方式流程缺点:

使CPU将大量的时间花费在循环等待上,使CPU效率发挥极差,外设也不能合理利用,整个系统的效率很低。程序I/O方式评价优点:

实现简单,控制简单,基本不需额外硬件支持。CPU能否不做循环测试等待?2.中断驱动I/O控制方式

随着计算机技术的向前发展,在计算机系统中引入了中断机构。利用中断信号,外设可以将自身操作的状态及时反馈给CPU,这样CPU便可以在发出一条I/O指令后,转去继续完成其他任务。当I/O操作完成后。外设控制器自动向CPU发出中断请求信号。CPU接到I/O中断信号后进行干预,启动I/O中断处理程序执行。

例如,从终端输入一个字符的时间约为100ms,而将字符送入终端缓冲区的时间0.1ms。采用程序I/O方式:CPU约有99.9ms的时间处于忙—等待中。采用中断驱动方式:CPU可利用这99.9ms的时间去做其它事情,而仅用0.1ms的时间来处理由控制器发来的中断请求。CPU向I/O控制器发命令CPU去做其他工作检查状态?读I/O控制器状态CPU读数据寄存器到指定内存单元传送完成?完成未完成出错就绪设备收到控制器送来的CPU命令启动I/O,把数据送入寄存器完成?是发中断信号未完成下条指令中断驱动I/O控制方式流程缺点:CPU每次处理的数据量少(通常不超过几个字节,由数据寄存器的大小而定),只适于数据传输率较低的设备。设备速度过高的话容易造成中断次数激增导致数据丢失。中断驱动I/O控制方式评价优点:

在外设进行数据处理时,CPU不必等待,可以继续执行该程序或其他程序。支持多道程序和设备并行操作。CPU能否每次传输多些数据?CPU向I/O控制器发命令CPU去做其他工作检查状态?读I/O控制器状态CPU读数据寄存器到指定内存单元传送完成?完成未完成出错就绪设备收到控制器送来的CPU命令启动I/O,把数据送入寄存器完成?是发中断信号未完成下条指令3.直接存储器访问DMAI/O控制方式1)DMA(DirectMemoryAccess)控制方式的引入特点:①数据传输的基本单位是数据块;②所传送的数据是从设备直接送入内存的,或者相反;③仅在传送数据块的开始和结束时,才需CPU干预,整块数据的传送是在DMA控制器的控制下完成的。2)DMA控制器的组成(1)数据寄存器DR。(2)内存地址寄存器MAR。(3)数据计数器DC

。(4)命令/状态寄存器CR

。CPU向I/O控制器发读数据块命令CPU去做其他工作CPU读DMA控制器的状态DMA控制器设置MAR和DC的值启动DMA传送命令DC=0?是中断信号否下条指令DMA控制器不断窃取CPU工作周期,将设备中的数据传送至内存MAR处,同时MAR+1,DC-1。3)DMA工作过程(1)DMA方式如果一次需要读多个数据块则需要CPU进行多次中断处理。(2)多个DMA控制器的同时使用会引起内存地址的冲突并使得控制过程进一步复杂。DMA方式的局限性怎么解决?4.I/O通道控制方式1)I/O通道控制方式的引入I/O通道方式是DMA方式的发展,它可进一步减少CPU的干预,即把对一个数据块的读(或写)为单位的干预,减少为对一组数据块的读(或写)及有关的控制和管理为单位的干预,同时又可实现CPU、通道和I/O设备三者的并行操作,从而更有效地提高整个系统的资源利用率。2)通道程序6.5.设备独立性1.设备独立性(DeviceIndependence)的概念为了提高OS的可适应性和可扩展性,在现代OS中都毫无例外地实现了设备独立性,也称为设备无关性。基本含义是:

应用程序独立于具体使用的物理设备。在应用程序中,使用逻辑设备名称来请求使用某类设备;而系统在实际执行时,还必须使用物理设备名称。因此,系统须具有将逻辑设备名称转换为某物理设备名称的功能。

在实现了设备独立性的功能后,可带来以下两方面的好处。

1)设备分配时的灵活性

2)易于实现I/O重定向

2.设备独立性软件1)执行所有设备的公有操作①对独立设备的分配与回收;②将逻辑设备名映射为物理设备名,找到相应的物理设备的驱动程序;③对设备进行保护,禁止用户直接访问设备;④缓冲管理;⑤差错控制。由于在I/O操作中的绝大多数错误都与设备无关,故主要由设备驱动程序处理,而设备独立性软件只处理那些设备驱动程序无法处理的错误。6.5.3设备分配1设备分配中的数据结构1)设备控制表DCT(每个设备一张)图5-16设备控制表2)控制器控制表(每个控制器一张)通道控制表(每个通道一张)系统设备表(整个只有系统一张)2.设备分配时应考虑的因素1)

I/O设备的固有属性:独占、共享、虚拟2)分配算法1、先来先服务算法2、优先级高者优先3)设备分配的安全性

(1)安全分配方式

(2)不安全分配方式3.独占设备的分配程序6.5.4逻辑设备名到物理设备名映射的实现1.逻辑设备表(LUT)2.LUT的设置问题整个系统只设置一张LUT每个用户设置一张LUT6.6用户层的I/O软件6.6.1系统调用与库函数1系统调用2库函数6.6.2SPOOLing技术什么是SPOOLing?(SimultaneausPeriphernalOperatingOn-Line)作用:

将一台物理设备虚拟为多台逻辑设备。实现:

利用专门的外围控制机(可以由一道程序模拟),将低速I/O设备上的数据传送到高速磁盘上;或者相反。便可在主机的直接控制下,实现脱机输入、输出功能。此时的外围操作与CPU对数据的处理同时进行。

2.SPOOLing系统的组成图5-19SPOOLing系统的组成3.共享打印机

当用户进程请求打印输出时,SPOOLing系统同意为它打印输出,但并不真正立即把打印机分配给该用户进程,而只为它做两件事:①由输出进程在输出井中为之申请一个空闲磁盘块区,并将要打印的数据送入其中;②输出进程再为用户进程申请一张空白的用户请求打印表,并将用户的打印要求填入其中,再将该表挂到请求打印队列上。

4.SPOOLing系统的特点提高了I/O的速度。(2)将独占设备改造为共享设备。(3)实现了虚拟设备功能。预习题1、通道的类型有哪几种?分别连接什么类型设备?2、引入缓冲的是为了解决什么问题?3、设备分配需要一些什么数据结构?6.7缓冲管理6.7.1缓冲的作用缓和CPU与I/O设备间速度不匹配的矛盾。(2)减少对CPU的中断频率,放宽对CPU中断响应时间的限制。(看下图)(3)解决数据粒度不匹配问题(4)提高CPU和I/O设备之间的并行性。图5-10利用缓冲寄存器实现缓冲中断频率:100us中断频率:800us中断频率:1.6ms缓冲技术的实现原理常用的缓冲技术有四种:单缓冲双缓冲环形缓冲缓冲池

当某个进程进行数据输出操作时,先将数据送入缓冲区,当缓冲区满时再将缓冲区的内容送到输出设备上;反之亦然。在缓冲管理中必须建立缓冲区,缓冲区的设定有两种方式:

1、采用专门的硬件方法来实现缓冲,但会增加硬件成本;

2、采用软件缓冲的方式,即从主存空间中划定出一个特殊的内存区域作为缓冲区。6.7.2单缓冲和双缓冲1.单缓冲(SingleBuffer)图5-11单缓冲工作示意图每块数据的处理时间为:Max(C,T)+M2.双缓冲(DoubleBuffer)图5-12双缓冲工作示意图每块数据的处理时间为:Max(C,T)双机通信时缓冲区的设置6.7.3循环缓冲1.循环缓冲的组成1.空缓冲区R(指针:Nexti)2.满缓冲区G(指针:Nextg)3.现行工作缓冲区C(指针:Current)2.循环缓冲区的使用Getbuf过程。计算进程要取数据:将指针Nextg所指的缓冲区提供给进程使用,用Current指针指向该缓冲区的第一个单元,同时将Nextg移向下一个G缓冲区。输入进程要使用空缓冲区装数据:将指针Nexti所指的缓冲区提供给输入进程使用,同时将Nexti移向下一个R缓冲区。(2)Releasebuf过程。

当计算进程把C缓冲区中的数据提取完时,调用该过程释放该缓冲区:将该缓冲区由当前工作缓冲区C改为空缓冲区R。当输入进程将缓冲区装满时:将该缓冲区释放,并改为G缓冲区。3.进程同步

使用循环多缓冲可以使输入进程和计算进程并行执行。相应的,指针Nexti和指针Nextg将不断地沿顺时针方向移动,这样可能出现两种情况:1、Nexti指针追上Nextg指针(输入速度>处理速度)

无空缓冲区,输入进程阻塞,称为系统受计算限制。2、Nextg指针追上Nexti指针(输入速度<处理速度)

无数据可取,计算进程阻塞,称为系统受I/O限制。解决方法:使用公用缓冲池:池中缓冲区可供多个进程共享。

循环缓冲仅适用于某特定的I/O进程和计算进程,属于专用缓冲,当系统较大时,会有很多这样的循环缓冲,不仅消耗大量内存,而且利用率也不高。怎么办?6.7.4缓冲池(BufferPool)1.缓冲池的组成

对于既可用于输入又可用于输出的公用缓冲池,其中至少应含有以下三种类型的缓冲区:①空(闲)缓冲区;②装满输入数据的缓冲区;③装满输出数据的缓冲区。

为了管理上的方便,可将相同类型的缓冲区链成一个队列,于是可形成以下三个队列:空闲缓冲区队列emq:由空闲缓冲区连接而成,用F(emq)指针指向队首,L(emq)指向队尾。输入缓冲区队列inq:由装满输入数据的缓冲区连接而成。输出缓冲区队列outq:由装满输出数据的缓冲区连接而成。2.Getbuf过程和Putbuf过程ProcedureGetbuf(type)begin

Wait(RS(type));

Wait(MS(type));B(number)∶=Takebuf(type);

Signal(MS(type));endProcedurePutbuf(type,number)begin

Wait(MS(type));Addbuf(type,number);

Signal(MS(type));

Signal(RS(type));endAddbuf(type,number)用于将由参数number所指示的缓冲区,挂在type队列上。Takebuf(type)用于从type所指示的队列的队首摘下一缓冲区。每队列设置一个互斥信号量MS(type),每个缓冲队列设置一个资源信号量RS(type),用于实现getbuf和putbuf的互斥与同步。3.缓冲区的工作方式图5-15缓冲区的工作方式6.8磁盘存储器管理6.8.1磁盘性能简述1.数据的组织和格式(盘片、磁道、扇区)柱面扇区磁臂磁头磁道扇区2.磁盘的类型1)固定头磁盘这种磁盘在每条磁道上都有一读/写磁头,所有的磁头都被装在一刚性磁臂中。通过这些磁头可访问所有各磁道,并进行并行读/写,有效地提高了磁盘的I/O速度。这种结构的磁盘主要用于大容量磁盘上。

2)移动头磁盘每一个盘面仅配有一个磁头,也被装入磁臂中。为能访问该盘面上的所有磁道,该磁头必须能移动以进行寻道。可见,移动磁头仅能以串行方式读/写,致使其I/O速度较慢;但由于其结构简单,故仍广泛应用于中小型磁盘设备中。3.磁盘访问时间1)寻道时间Ts

这是指把磁臂(磁头)移动到指定磁道上所经历的时间。该时间是启动磁臂的时间s与磁头移动n条磁道所花费的时间之和,即Ts=m×n+s其中,m是一常数,与磁盘驱动器的速度有关,对一般磁盘,m=0.2;对高速磁盘,m≤0.1,磁臂的启动时间约为2ms。这样,对一般的温盘,其寻道时间将随寻道距离的增加而增大,大体上是5~30ms。2)旋转延迟时间Tτ

这是指定扇区移动到磁头下面所经历的时间。对于硬盘,典型的旋转速度大多为5400r/min或7200r/min,每转需时11.1ms,平均旋转延迟时间Tτ为5.55ms;对于软盘,其旋转速度为300r/min或600r/min,这样,平均Tτ为50~100ms。

3)传输时间Tt

这是指把数据从磁盘读出或向磁盘写入数据所经历的时间。Tt的大小与每次所读/写的字节数b和旋转速度有关:其中,r为磁盘每秒钟的转数;N为一条磁道上的字节数,当一次读/写的字节数相当于半条磁道上的字节数时,Tt与Tτ相同,因此,可将访问时间Ta表示为:

磁盘调度的目标,是使磁盘的平均寻道时间最少(即平均寻道长度最短)。假设当前系统有磁头正在100磁道,并且某时刻依次提交如下磁道访问请求:55,58,39,18,90,160,150,38,184,请分析各种不同调度策略下的平均寻道长度。6.8.2磁盘调度1.先来先服务FCFS(First-Come,FirstServed)从100号磁道开始,磁道号访问次序:55,58,39,18,90,160,150,38,184从100号磁道开始被访问的下一个磁道号移动距离(磁道数)总共寻道长度平均寻道长度1.先来先服务FCFS(First-Come,FirstServed)图5-23FCFS调度算法1.先来先服务FCFS(First-Come,FirstServed)从100号磁道开始,磁道号访问次序:55,58,39,18,90,160,150,38,1841838|395558901001501601842.最短寻道时间优先SSTF(ShortestSeekTimeFirst)从100号磁道开始,需要访问的磁道:55,58,39,18,90,160,150,38,184从100号磁道开始被访问的下一个磁道号移动距离(磁道数)总共寻道长度平均寻道长度2.最短寻道时间优先SSTF(ShortestSeekTimeFirst)图5-24SSTF调度算法2.最短寻道时间优先SSTF(Shortest

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论