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

下载本文档

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

文档简介

第六章设备管理6.1I/O系统6.2I/O控制方式6.3缓冲管理6.4I/O软件6.5设备分配6.6磁盘存储器管理外设的特点:种类多差异大(控制和速度)外设管理目的包括:外设资源的控制外设资源的共享提高外设资源的利用率。6.1I/O系统人机交互设备:视频显示设备、键盘、鼠标、打印机与计算机或其他电子设备交互的设备:磁盘、磁带、传感器、控制器计算机间的通信设备:网卡、调制解调器1.按交互对象分类6.1.1I/O设备2.按交互方向分类输入(可读):键盘、扫描仪输出(可写):显示设备、打印机输入/输出(可读写):磁盘、网卡3.按外设特性分类使用特征:存储、输入/输出、终端数据传输率:低速(如键盘)、中速(如打印机)、高速(如网卡、磁盘)信息组织特征:单个字符或数据块字符设备(如打印机)块设备(如磁盘)4按设备的共享属性分类

(1)独占设备。

(2)共享设备。

(3)虚拟设备。

设备与控制器之间的接口图5-1设备与控制器间的接口设备不是与CPU直接通信,而是与设备控制器通信6.1.2设备控制器设备控制器是一个可编址的设备,微机中,常做成电路卡,也称接口卡图5-2设备控制器的组成6.1.3I/O通道1.I/O通道(I/OChannel)设备的引入CPU和控制设器之间增设通道目的:建立独立的I/O操作,减轻CPU的负担

I/O通道是一种特殊的处理机。它具有执行I/O指令的能力,并通过执行通道(I/O)程序来控制I/O操作。

I/O通道又与一般的处理机不同:一是其指令类型单一,由于通道硬件比较简单通道没有自己的内存,通道程序是放在主机的内存中的2.通道类型根据信息交换方式分:字节多路通道(ByteMultiplexorChannel)

子通道按时间片轮转方式共享图5-3字节多路通道的工作原理2)数组选择通道(BlockSelectorChannel)

按数组方式进行数据传送

一段时间只执行一道通道程序

连接高速设备

3)数组多路通道(BlockMultiplexorChannel)

子通道分时共享

数据传送以数组方式

3.“瓶颈”问题图5-4单通路I/O系统图5-5多通路I/O系统6.1.4总线系统图5-6总线型I/O系统结构1.ISA和EISA总线

1)ISA(IndustryStandardArchitecture)总线这是为了1984年推出的80286型微机而设计的总线结构。

2)EISA(ExtendedISA)总线到80年代末期,ISA总线已难于满足带宽和传输速率的要求,于是人们又开发出扩展ISA(EISA)总线,其带宽为32位,总线的传输速率高达32Mb/s。2.局部总线(LocalBus)VESA(VideoElectronicStandardAssociation)总线2)PCI(PeripheralComponentInterface)总线6.1.5外设管理的目的和功能方便控制:方便OS内部对设备的控制。如:增加和删除设备,适应新的设备类型。共享:方便用户使用,对不同类型的设备统一使用方法,协调对设备的并发使用。提高效率:提高I/O访问效率,匹配CPU和多种不同处理速度的外设。1.外设管理目的2.外设管理功能提供使用设备的用户接口:命令接口和编程接口设备分配和释放:使用设备前,需要分配设备和相应的通道、控制器。设备的访问和控制:包括并发访问和差错处理。I/O缓冲和调度:目标是提高I/O访问效率6.1.5外设管理的目的和功能外设管理结构逻辑I/O:逻辑设备(也称为虚拟设备)实体,不涉及实际的设备控制;针对用户接口,提供抽象的命令,如:Open,Close,Read,Write。针对通信设备,则是通信体系结构如网络协议栈;针对文件存储设备,是文件系统的逻辑结构控制;设备I/O:逻辑设备与物理设备间的过渡协调机构。用户命令到设备操作序列的转换I/O缓冲:提高I/O效率。调度和控制:物理设备控制实体;直接面对硬件设备的控制细节。这部分通常体现为设备驱动程序。并发I/O访问调度设备控制和状态维护中断处理第六章设备管理6.1I/O系统6.2I/O控制方式6.3缓冲管理6.4I/O软件6.5设备分配6.6磁盘存储器管理

6.2I/O控制方式6.2.1程序I/O方式6.2.2中断驱动I/O控制方式6.2.3DMA(直接存储器访问)I/O控制方式图5-7程序I/O和中断驱动方式的流程DMA控制器的组成命令/状态寄存器CR。内存地址寄存器MAR数据寄存器DR。数据计数器DC。DMA工作过程图5-9DMA方式的工作流程6.2.4I/O通道控制方式1.I/O通道控制方式的引入I/O通道方式是DMA方式的发展,它可进一步减少CPU的干预,即把对一个数据块的读(或写)为单位的干预,减少为对一组数据块的读(或写)及有关的控制和管理为单位的干预。当CPU要完成一组相关的读(或写)操作及有关控制时,只需向I/O通道发送一条I/O指令,以给出其所要执行的通道程序的首址和要访问的I/O设备通道接到该指令后,通过执行通道程序便可完成CPU指定的I/O任务。2.通道程序操作码。(2)内存地址。(3)计数。(4)通道程序结束位P。(5)记录结束标志R。操作PR计数内存地址WRITE0080813WRITE001401034WRITE01605830WRITE013002000WRITE002501850WRITE11250720第六章设备管理6.1I/O系统6.2I/O控制方式6.3缓冲管理6.4I/O软件6.5设备分配6.6磁盘存储器管理6.3缓冲管理6.3.1缓冲的引入缓和CPU与I/O设备间速度不匹配的矛盾。(2)减少对CPU的中断频率,放宽对CPU中断响应时间的限制。(3)提高CPU和I/O设备之间的并行性。6.3.2单缓冲和双缓冲1.单缓冲(SingleBuffer)图5-11单缓冲工作示意图2.双缓冲(DoubleBuffer)图5-12双缓冲工作示意图图5-13双机通信时缓冲区的设置单缓冲:不允许同时收发双缓冲:可以同时收发6.3.3循环缓冲1.循环缓冲的组成R:空缓冲区G:装满数据的缓冲区C:工作缓冲区2.循环缓冲区的使用Getbuf过程:

得到需要的缓冲区,并移动相应的指针(2)Releasebuf过程:

释放缓冲区,修改缓冲区状态3.进程同步问题:Nexti指针追赶上Nextg指针。(2)Nextg指针追赶上Nexti指针。6.3.4缓冲池(BufferPool)

前面的几种缓冲属于专用缓冲,系统较大需要缓冲较多时,缓冲的利用率不高,目前都用缓冲池

1.缓冲池的组成

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

(2)输入队列inq。

(3)输出队列outq。2.Getbuf过程和Putbuf过程ProcedureGetbuf(type)beginWait(RS(type));Wait(MS(type));B(number)∶[KG-*3]=Takebuf(type);Signal(MS(type));endProcedurePutbuf(type,number)beginWait(MS(type));Addbuf(type,number);Signal(MS(type));Signal(RS(type));endMS(type):每个队列的互斥信号量,RS(type):每个队列的资源信号量3.缓冲区的工作方式图5-15缓冲区的工作方式四种工作方式第六章设备管理6.1I/O系统6.2I/O控制方式6.3缓冲管理6.4I/O软件6.5设备分配6.6磁盘存储器管理

6.4I/O软件I/O软件是指管理所有I/O硬件设备的软件集合目标:提高I/O设备的利用率、方便用户使用分层:低层实现与硬件的操作高层向用户提供规范的接口6.4.1I/O软件的设计目标和原则

1)与具体设备无关

2)统一命名

3)对错误的处理

4)缓冲技术

5)设备分配和释放

6)合理的I/O控制方式

I/O软件的层次用户层:为用户提供对设备的操作及与I/O操作相关的库函数设备独立性软件:实现设备的命名、保护、分配、释放,与设备驱动程序接口设备驱动程序:对具体的硬件操作中断处理程序:6.4.1I/O软件的设计目标和原则6.4.2中断处理程序的处理过程唤醒被阻塞的驱动进程2.保护现场3.转入相应的设备处理程序4.进入中断处理5.恢复被中断的现场继续当一个进程请求I/O操作时,该进程被挂起I/O设备完成I/O操作时,设备控制器发送一个中断请求CPU处理中断图5-20中断现场保护示意图图5-21中断处理流程

设备处理程序又称设备驱动程序,是I/O进程与控制器之间的通信程序,常以进程的形式存在。功能:接收上层软件发来的抽象命令(read、write)转换为具体要求后,发给设备控制器设备控制器发来的信号传送给上层6.4.3设备驱动程序1.设备驱动程序的功能(1)接收由I/O进程发来的命令和参数,并将命令中的抽象要求转换为具体要求,例如,将磁盘块号转换为磁盘的盘面、磁道号及扇区号。

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

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

(5)对于设置有通道的计算机系统,驱动程序还应能够根据用户的I/O请求,自动地构成通道程序。2.设备处理方式(1)为每一类设备设置一个进程,专门用于执行这类设备的I/O操作.(2)在整个系统中设置一个I/O进程,专门用于执行系统中所有各类设备的I/O操作。

(3)不设置专门的设备处理进程,而只为各类设备设置相应的设备处理程序(模块),供用户进程或系统进程调用。3.设备驱动程序的特点(1)驱动程序主要是指在请求I/O的进程与设备控制器之间的一个通信和转换程序。

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

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

(4)由于驱动程序与硬件紧密相关,因而其中的一部分必须用汇编语言书写。(5)驱动程序应允许可重入,一次调用完成前被再次调用(6)驱动程序不允许系统调用,可允许内核调用4设备驱动程序的处理过程将抽象要求转换为具体要求2.检查I/O请求的合法性3.读出和检查设备的状态4.传送必要的参数5.工作方式的设置,如串行通信,需要几个参数设置6.启动I/O设备可以分为两部分:驱动I/O设备工作、中断处理1.设备独立性(DeviceIndependence)的概念为了提高OS的可适应性和可扩展性,在现代OS中都毫无例外地实现了设备独立性,也称为设备无关性。其基本含义是:应用程序独立于具体使用的物理设备。为了实现设备独立性而引入了逻辑设备和物理设备这两个概念。在应用程序中,使用逻辑设备名称来请求使用某类设备;而系统在实际执行时,还必须使用物理设备名称。因此,系统须具有将逻辑设备名称转换为某物理设备名称的功能。6.4.4设备独立性软件

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

1)设备分配时的灵活性

2)易于实现I/O重定向2.设备独立性软件

为实现设备独立性,驱动程序之上设置一层软件1)执行所有设备的公有操作①对独立设备的分配与回收;②将逻辑设备名映射为物理设备名,进一步可以找到相应物理设备的驱动程序;③对设备进行保护④缓冲管理⑤差错控制。2)向用户层(或文件层)软件提供统一接口3.逻辑设备名到物理设备名映射的实现逻辑设备表LUT2)LUT的设置问题

整个系统一张每个用户设置一张

图5-18逻辑设备表第六章设备管理6.1I/O系统6.2I/O控制方式6.3缓冲管理6.4I/O软件6.5设备分配6.6磁盘存储器管理

6.5设备分配6.5.1设备分配中的数据结构1.设备控制表DCT图5-16设备控制表设备分配是对进程使用外设过程的管理设备控制表(DCT)设备控制表(DCT,DeviceControlTable):每个设备一张,描述设备特性和状态。反映设备的特性、设备和控制器的连接情况。DCT的内容主要包括:设备标识:用来区别不同的设备;设备类型:反映设备的特性;如:块设备或字符设备;设备连接的控制器表指针:该设备所连接的控制器控制表;设备状态:工作或空闲状态;等待队列:等待使用该设备的进程队列;系统设备表(SDT,SystemDeviceTable):系统内一张,反映系统中设备资源的状态,记录所有设备的状态及其设备控制表的入口。SDT表项的主要组成:DCT指针:指向相应设备的DCT;设备使用进程标识:正在使用该设备的进程标识;DCT信息:为引用方便而保存的DCT信息,如:设备标识、设备类型等;控制器控制表(COCT,COntrollerControlTable):每个设备控制器一张,描述I/O控制器的配置和状态。如DMA控制器所占用的中断号、DMA数据通道的分配。通道控制表(CHCT,CHannelControlTable):每个通道一张,描述通道工作状态。2.控制器控制表、通道控制表和系统设备表图5-17COCT、CHCT和SDT表6.5.2设备分配原则与设备分配有关的设备属性:独享设备:打印机等;共享设备:磁盘、网卡等;设备分配方式:各有优缺点静态分配:在进程分创建时分配,在进程退出时释放;不会出现死锁;设备利用率不高;动态分配:在进程执行过程中根据需要分配,使用结束后释放;需要考虑死锁问题有利于提高设备利用率设备分配的原则是合理使用外设(公平和避免死锁),提高设备利用率。动态分配策略:针对特定的设备采用特定的分配策略。先来先服务(FCFS):按I/O请求的先后顺序,排成I/O请求命令队列;按FCFS分配设备;基于优先级:依据进程的优先级,指定I/O请求的优先级,排成不同优先级队列;按优先级高低分配设备;6.5.4独占设备的分配程序1.基本的设备分配程序分配设备2)分配控制器3)分配通道2.设备分配程序的改进增加设备的独立性

2)考虑多通路情况6.5.4SPOOLing技术1.什么是SPOOLing(SimultaneausPeriphernalOperatingOn-Line)

为了缓和CPU的高速性与I/O设备低速性间的矛盾而引入了脱机输入、脱机输出技术。该技术是利用专门的外围控制机,将低速I/O设备上的数据传送到高速磁盘上;或者相反。当系统中引入了多道程序技术后,完全可以利用其中的一道程序,来模拟脱机输入时的外围控制机功能,把低速I/O设备上的数据传送到高速磁盘上;再用另一道程序来模拟脱机输出时外围控制机的功能,把数据从磁盘传送到低速输出设备上。此时的外围操作与CPU对数据的处理同时进行,我们把这种在联机情况下实现的同时外围操作称为SPOOLing

,或称为假脱机操作。2.SPOOLing系统的组成图5-19SPOOLing系统的组成3.SPOOLing系统的特点提高了I/O的速度。(2)将独占设备改造为共享设备。(3)实现了虚拟设备功能。例子:共享打印机第六章设备管理6.1I/O系统

6.2I/O控制方式

6.3缓冲管理6.4I/O软件6.5设备分配6.6磁盘存储器管理

6.6磁盘存储器管理6.6.1磁盘性能简述1.数据的组织和格式磁盘存储器的重要性:磁盘可以包括1个或多个盘片每片2个面每面若干条磁道每条磁道若干个扇区,扇区相当于一个盘块磁盘存储数据前,先进行格式化6.6磁盘存储器管理1.数据的组织和格式图5-22磁盘的格式化2.磁盘的类型1)固定头磁盘这种磁盘在每条磁道上都有一读/写磁头,所有的磁头都被装在一刚性磁臂中。通过这些磁头可访问所有各磁道,并进行并行读/写,有效地提高了磁盘的I/O速度。这种结构的磁盘主要用于大容量磁盘上。

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

这是指把磁臂(磁头)移动到指定磁道上所经历的时间。该时间是启动磁臂的时间s与磁头移动n条磁道所花费的时间之和,即Ts=m×n+s

其中,m是一常数,与磁盘驱动器的速度有关,对一般磁盘,m=0.2;对高速磁盘,m≤0.1,磁臂的启动时间s约为2ms。

磁盘访问时间可分为三部分:寻道时间、旋转延迟时间和传输时间2)旋转延迟时间Tτ

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

这是指把数据从磁盘读出或向磁盘写入数据所经历的时间。Tt的大小与每次所读/写的字节数b和旋转速度有关:其中,r为磁盘每秒钟的转数;N为一条磁道上的字节数6.6.2磁盘调度

当多个进程都要访问磁盘时,需选择一种调度算法,使访问磁盘的时间最小

访问磁盘的时间中,主要是寻道时间

磁盘调度的目标就是使磁盘的平均寻道时间最小常用算法:先来先服务FCFS(First-Come,FirstServed)

最短寻道时间优先扫描算法循环扫描算法

N-Step-SCANFSCAN

1.先来先服务FCFS(First-Come,FirstServed)简单、公平未对寻道优化平均寻道时间可能较长图5-24SSTF调度算法

下个要访问的磁道是离当前磁头距离最近的磁道但不能保证平均寻道时间最短为什么?但比FIFO提供更好的性能3.扫描(SCAN)算法1)进程“饥饿”现象SSTF算法虽然能获得较好的寻道性能,但却可能导致某个进程发生“饥饿”(Starvation)现象。因为只要不断有新进程的请求到达,且其所要访问的磁道与磁头当前所在磁道的距离较近,这种新进程的I/O请求必须优先满足。需要对SSTF算法略加修改

SCAN算法2)SCAN算法图5-25SCAN调度算法示例电梯调度算法先沿一个方向移动再沿另个方向移动4.循环扫描(CSCAN)算法问题:一个方向上磁道刚被扫描过等待另个方向上扫描回来解决:只按一个方向循环移动5.N-Step-SCAN和FSCAN调度算法1)N-Step-SCAN算法

“磁臂粘着”(Armstickiness)现象:在SSTF、SCAN及CSCAN几种调度算法中,都可能出现磁臂停留在某处不动的情况,例如,有一个或几个进程对某一磁道有较高的访问频率,即这个(些)进程反复请求对某一磁道的I/O操作,从而垄断了整个磁盘设备。

N步SCAN算法是将磁盘请求队列分成若干个长度为N的子队列,磁盘调度将按FCFS算法依次处理这些子队列。而每处理一个队列时又是按SCAN算法,对一个队列处理完后,再处理其他队列。5.N-Step-SCAN和FSCAN调度算法1)N-Step-SCAN算法当正在处理某子队列时,如果又出现新的磁盘I/O请求,便将新请求进程放入其他队列,这样就可避免出现粘着现象。当N值取得很大时,(长度较小)会使N步扫描法的性能接近于SCAN算法的性能;当N=1时,N步SCAN算法便蜕化为FCFS算法。2)FSCAN算法

FSCAN算法实质上是N步SCAN算法的简化,即FSCAN只将磁盘请求队列分成两个子队列。一个是由当前所有请求磁盘I/O的进程形成的队列,由磁盘调度按SCAN算法进行处理。在扫描期间,将新出现的所有请求磁盘I/O的进程,放入另一个等待处理的请求队列。这样,所有的新请求都将被推迟到下一次扫描时处理。6.6.3磁盘高速缓存(DiskCache)1.磁盘高速缓存的形式

是指利用内存中的存储空间,来暂存从磁盘中读出的一系列盘块中的信息。因此,这里的高速缓存是一组在逻辑上属于磁盘,而物理上是驻留在内存中的盘块。高速缓存在内存中可分成两种形式:第一种是在内存中开辟一个单独的存储空间来作为磁盘高速缓存,其大小是固定的,不会受应用程序多少的影响第二种是把所有未利用的内存空间变为一个缓冲池,供请求分页系统和磁盘I/O时(作为磁盘高速缓存)共享。2.数据交付方式

指请求磁盘时,当数据存放在高速缓存中时,如何将数据交付给请求进程。系统可以采取两种方式:

(1)数据交付。这是直接将高速缓存中的数据,传送到请求者进程的内存工作区中。

(2)指针交付。只将指向高速缓存中某区域的指针,交付给请求者进程。后一种方式由于所传送的数据量少,因而节省了数据从磁盘高速缓存存储空间到进程的内存工作区的时间。3.置换算法

磁盘中的盘块数据读入高速缓存时,也存在缓存满而需要将数据换出的问题常用算法:最近最久未使用法LRU、最近未使用NRU、最少使用法LFU等由于请求调页中的联想存储器与高速缓存(磁盘I/O中)的工作情况不同,因而使得在置换算法中所应考虑的问题也有所差异。不少系统在设计其高速缓存的置换算法时,除了考虑到最近最久未使用这一原则外,还考虑了以下几点:3.置换算法(1)访问频率内存的高速缓存(联想存储器)的访问频率远高于磁盘的高速缓存

(2)可预见性磁盘的高速缓存的数据,哪些可能较长时间不被访问,哪些可能再次被访问,相当一部分是可预知的。

(3)数据的一致性高速缓存由内存充当,是可易失的,掉电后数据会丢失。有的系统做法:高速缓存中的盘块数据拉成一条LRU链,头部放影响一致性的数据和可能长久不被访问的盘块数据,链尾放不久可能回被访问的数据。4.周期性地写回磁盘LRU算法的问题在UNIX系统中专门增设了一个修改(update)程序,使之在后台运行,该程序周期性地调用一个系统调用SYNC。该调用的主要功能是强制性地将所有在高速缓存中已修改的盘块数据写回磁盘。一般是把两次调用SYNC的时间间隔定为30s。这样,因系统故障所造成的工作损失不会超过30s的劳动量。

MS-DOS中所采用的方法:只要高速缓存中的某盘块数据被修改,便立即将它写回磁盘,并将这种高速缓存称为“写穿透、高速缓存”(write-throughcache)。MS-DOS所采用的写回方式,几乎不会造成数据的丢失,但须频繁地启动磁盘。6.6.4提高磁盘I/O速度的其它方法提前读(Read-Ahead)

文件经常采用顺序访问方式,读当前块时,

温馨提示

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

评论

0/150

提交评论