




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1I/OSYSTEMS1I/OSYSTEMS2计算机系统的一个重要组成部分是I/O系统。I/O系统包括:输入设备输出设备设备控制器
I/O通道或I/O处理机设备管理的对象主要是:I/O设备设备控制器
I/O通道2计算机系统的一个重要组成部分是I/O系统。3设备管理的基本任务是:完成用户提出的I/O请求,提高I/O速率,提高I/O设备的利用率。设备管理的主要功能有:缓冲区管理设备分配设备处理虚拟设备实现设备独立性设备管理是OS中最繁杂且与硬件最紧密相关的部分。3设备管理的基本任务是:完成用户提出的I/O请求,提高I/O4本章总览OS在I/O方面的功能是管理和控制I/O操作和I/O设备。
I/O技术表现出两大相冲突的发展趋势:硬件接口的标准化程度的提高设备类型的更多样化的高速发展基本的I/O硬件像接口,总线,设备控制器技术的发展顺应了I/O设备的广泛变化。操作系统内核用各种设备驱动模块来组织
I/O子系统结构。问题:性能和复杂。4本章总览OS在I/O方面的功能是管理和控制I/O操作5设备管理的目的和功能
外设管理目的提高效率:提高I/O访问效率,匹配CPU和多种不同处理速度的外设。方便使用:方便用户使用,对不同类型的设备统一使用方法,协调对设备的并发使用。方便控制:方便OS内部对设备的控制:增加和删除设备,适应新的设备类型。5设备管理的目的和功能外设管理目的6设备管理的目的和功能
外设管理功能设备分配和释放:使用设备前,需要分配设备和相应的通道、控制器。设备的访问和控制:包括并发访问和差错处理。I/O缓冲和调度:目标是提高I/O访问效率(主要是磁盘)。6设备管理的目的和功能外设管理功能77889910101111125.1I/O系统I/O系统的结构125.1I/O系统I/O系统的结构13AtypicalPCbusstructure13AtypicalPCbusstructure1414155.1.1I/O设备I/O设备的类型繁多,从OS观点看,其重要的性能指标有:数据传输速率、数据的传输单位、设备共享属性等。按传输速率分类
低速设备
典型设备有:键盘、鼠标器、语音输入和输出等。中速设备
典型设备有:行式打印机、激光打印机等。高速设备
典型设备有:磁带机、磁盘机、光盘机等。1.I/O设备的类型155.1.1I/O设备I/O设备的类型繁多,从OS观点16
按信息交换的单位分类
块设备:这类设备用于存储信息。属于有结构设备。
典型的块设备是磁盘,
每个盘块的大小为512B~4KB。传输速率较高,可寻址即对它可随机地读/写任一块;磁盘设备的I/O常采用
DMA方式。字符设备:用于数据的输入和输出。其基本单位是字符,故称为字符设备。按设备的共享属性分类
独占设备共享设备虚拟设备16按信息交换的单位分类17设备与控制器之间的接口数据信号控制信号状态信号2.设备与控制器之间的接口通常,设备并不直接与CPU进行通信,而是与设备控制器通信。因此,在I/O设备中应含有与设备控制器间的接口。在该接口中有三种类型的信号各对应一条信号线。17设备与控制器之间的接口2.设备与控制器之间的接口通常,设18图5-1设备与控制器间的接口控制信号线:作为设备控制器向I/O设备发送控制信号时的通路。该信号规定了设备将要执行的操作:读操作(指由设备向控制器传送数据)写操作(从控制器接收数据)数据信号线:用于在设备和设备控制器之间传送数据信号。输入设备:外界输入的信号经转换器转换后形成的数据,通常先送入缓冲器中,当数据量达到一定的比特数后,再从缓冲器通过一组数据信号线传送给设备控制器。输出设备:将从设备控制器经过数据信号线传送来的一批数据先暂存于缓冲器中,经转换器作适当转换后,再逐个字符地输出。状态信号线:用于传送指示设备当前状态的信号。设备的当前状态有:正在读(写)设备已读(写)完成,并准备好新的数据传送。18图5-1设备与控制器间的接口控制信号线:作为设备控制器195.1.2设备控制器设备控制器是计算机中的一个实体,其主要职责是控制一个或多个I/O设备,以实现I/O设备和计算机之间的数据交换。它是CPU与I/O设备间的接口,它接收从CPU发来的命令,并去控制I/O设备工作,使处理机从繁杂的设备控制事务中解脱出来。它是一个可编址的设备,当它仅控制一个设备时,它只有一个唯一的设备地址;若控制多个设备时,则应含有多个设备地址,并使每一个设备地址对应一个设备。195.1.2设备控制器设备控制器是计算机中的一个实体,其205.1.2设备控制器它可分为两类:控制字符设备的控制器控制块设备的控制器设备控制器的基本功能书P162接收和识别命令数据交换设备状态的了解和报告地址识别数据缓冲差错控制205.1.2设备控制器它可分为两类:控制字符设备的控制器21设备控制器的组成
由于设备控制器位于CPU与设备之间,它既要与CPU通信,又要与设备通信,还应具有按照CPU所发来的命令区控制设备工作的功能。因此有以下三部分组成:控制器与处理机接口该接口用于实现CPU与设备控制器之间的通信。控制器与设备接口可以连接一个或多个设备。在每个接口中都存在数据、控制和状态三种类型的信号。控制器中的I/O逻辑根据处理机发来的地址信号去选择一个设备接口。21设备控制器的组成22图5-2设备控制器的组成I/O逻辑I/O逻辑用于实现对设备的控制:它通过一组控制线与处理机交互,处理机利用该逻辑向控制器发送I/O命令;I/O逻辑对收到的命令进行译码。每当CPU要启动一个设备时,一方面将启动命令发送给控制器;另一方面有通过地址线把地址发送给控制器,由控制器的I/O逻辑对收到的地址进行译码,再根据所译出的命令对所选设备进行控制。22图5-2设备控制器的组成I/O逻辑235.1.3I/O通道在CPU与I/O设备之间增加了设备控制器后,已能大大减少CPU对I/O的干预,但当主机所配置的外设很多时,CPU的负担仍然很重。为此,在CPU和设备控制器之间又增设了I/O通道。其主要目的是为了建立独立的I/O操作,不仅使数据的传送能独立于CPU,而且I/O操作的组织、管理及结束处理尽量独立,以保证CPU有更多的时间进行数据处理。即设置I/O通道的目的是使一些原来由CPU处理的I/O任务转由通承担,从而把CPU从繁杂的I/O任务中解脱出来。设置了通道后,CPU只需向通道发送一条I/O指令。通道收到该指令后,便从内存中取出本次要执行的通道程序,然后执行该通道程序;仅当通道完成了规定的I/O任务后,才向CPU发中断信号。235.1.3I/O通道在CPU与I/O设备之间增加了设备24I/O通道是一种特殊的处理机,具有执行I/O指令的能力。通过执行通道(I/O)程序来控制I/O操作。其指令类型单一主要局限于与I/O操作有关的指令通道没有自己的内存,通道所执行的通道程序是放在主机的内存中的。24I/O通道是一种特殊的处理机,具有执行I/O指令的能力。25通道类型字节多路通道一种按字节交叉方式工作的通道。它通常含有许多非分配型子通道,其数量从几十到几百个,每一个子通道连接一台I/O设备,并控制该设备的I/O操作。这些子通道按时间片轮转方式共享主通道:当第一个子通道控制其I/O设备完成一个字节的交换后,便立即腾出主通道,让给第二个子通道使用;当所有子通道轮转一周后,重又返回由第一个子通道去使用主通道。这样,只要字节多路通道扫描每个子通道的速率足够快,而连接到子通道上的设备的速率不是太高时,便不致丢失信息。25通道类型字节多路通道26数组选择通道字节多路通道不适合连接高速设备数组选择通道可以连接多台高速设备该通道只含有一个分配型子通道这种通道的利用率很低数组多路通道上面两种通道技术的结合有多个非分配型子通道该通道能被广泛地用于连接多台高、中速的外围设备具有很高的数据传输速率,又能获得令人满意的通道利用率26数组选择通道27瓶颈问题通道价格昂贵,通道数量势必减少。这往往又使它成了I/O的瓶颈,从而造成整个系统吞吐量的下降。假设设备1至设备4是四个磁盘,为了启动磁盘4,必须用通道1和控制2;但若这两者已被其他设备占用,必然无法启动磁盘4。27瓶颈问题通道价格昂贵,通道数量势必减少。这往往又使它成了28瓶颈问题的解决解决方法:增加设备到主机间的通路而不增加通道。就是把一个设备连接到多个控制器上,而一个控制器又连接到多个通道上。图中的设备1、2、3、4都有四条通往存储器的通路。多通路方式不仅解决了瓶颈问题,而且提高了系统的可靠性。28瓶颈问题的解决解决方法:增加设备到主机间的通路而不增加通295.1.4总线系统总线是许多信号线的集合,它是微型计算机芯片间、各部件间和外部设备间相互进行信息或数据交换的通路。由于计算机内部定向的信息流和数据流在总线中的流动,就形成了计算机的各种操作。常见的系统总线标准有ISA、EISA、PCI等总线295.1.4总线系统总线是许多信号线的集合,它是微型计算30总线的主要技术指标总线数据传输速率单位时间内总线上传送的数据量,即每钞钟传送Mb的最大稳态数据传输率。总线数据传输速率=总线的工作频率*总线的位宽/8。总线的带宽
总线的带宽指的是总线能同时传送的二进制数据的位数,或数据总线的位数,即32位、64位等总线宽度的概念。总线的工作频率
总线的工作时钟频率以MHZ为单位,工作频率越高,总线工作速度越快,总线传输速率越高。30总线的主要技术指标总线数据传输速率31ISA和EISA总线80286微机的总线。带宽为8bit,最高传输速率为2Mb/s,可以连接12台外部设备。扩展ISA即EISA总线:带宽16位。传输速率高达32Mb/s,可以连接12台外部设备。31ISA和EISA总线80286微机的总线。带宽为8bit32局部总线局部总线是指将多媒体卡,高速LAN网卡,高性能图形板等从ISA总线上卸下来,再通过局部总线控制器直接连接到CPU总线上,使之与高速CPU总线相匹配。局部总线中较有影响的是VESA和PCI总线。VESA:带宽32位。最高传输速率132Mb/s,仅能连接2~4台设备。PCI:PCI在CPU和外设之间插入一复杂的管理层,用于协调数据传输和提供一致的接口。PCI能支持10种外设,最大传输速率可达132Mb/s。是当前广为流行的总线。32局部总线局部总线是指将多媒体卡,高速LAN网卡,高性能图335.2I/O控制方式I/O控制方式是随着计算机技术的发展而不断发展的。在I/O控制方式的整个发展过程中,始终贯穿的宗旨是:尽量减少主机对I/O控制的干预,把主机从反之的I/O控制事物中解脱出来,以便更多地去完成数据处理任务。早期采用程序控制I/O方式;当在系统中引入中断机制后,便发展为中断驱动方式;随着DMA控制器的出现,又使I/O方式在传输单位上发生了变:即从以字节为单位的传输扩大到以数据块为单位进行传输。从而改善了块设备的I/O性能;通道的引入,又使对I/O操作的组织和数据的传送都能独立进行而无需CPU干预。335.2I/O控制方式I/O控制方式是随着计算机技术的发34I/O控制方式程序控制I/O(programmedI/O)中断驱动方式(interrupt-drivenI/O)直接存储访问方式(DMA,DirectMemoryAccess)I/O通道控制方式(channel(channelcontrol)34I/O控制方式程序控制I/O(programmedI/35程序控制(忙—等待或轮询方式)系统中没有中断机构,I/O操作由程序发起,并等待操作完成。数据的每次读写均通过CPU。例如:当主机要通过端口来写出数据时,主机与控制器之间的握手协议如下:缺点:在外设进行数据处理时,CPU只能等待,致使CPU利用率很低。35程序控制(忙—等待或轮询方式)系统中没有中断机构,I/O36六个步骤1主机不断地读取忙位,直到该位被清除;2主机设置命令寄存器中的写位并向数据输出寄存器中写入一个字(节);3主机设置命令就绪位;4当控制器注意到命令就绪位已被设置,则设置忙位;5控制器读取命令寄存器,并看到写入命令,它从数据输出寄存器中读取一个字(节),并向设备执行I/O操作。6控制器清除命令就绪位,清除状态寄存器的故障位,以表示设备成功,清除忙位以表示完成。完成一个字节的传输后继续重复上述步骤取更多的数据。36六个步骤1主机不断地读取忙位,直到该位被清除;37中断驱动方式
I/O操作由程序发起,在操作完成时(如数据可读或已经写入)由外设向CPU发出中断,通知该程序。数据的每次读写通过CPU具体过程如右图所示:37中断驱动方式I/O操作由程序发起,在操作完成时(如数据38优点:在外设进行数据处理时,CPU不必等待,可以继续执行该程序或其他程序。缺点:CPU每次处理的数据量仍是以字(字节)为单位,只适于数据传输率较低的设备。38优点:在外设进行数据处理时,CPU不必等待,可以继续执行39直接存储访问方式(DMA)计算机为了避免用PIO而增加CPU的负担,将一部分任务下放给一个专用的处理器-DMA控制器;DMA控制器的组成,如下图所示:图5-8DMA控制器的组成39直接存储访问方式(DMA)计算机为了避免用PIO而增加C40DMA工作过程-以磁盘读入数据为例由程序设置DMA控制器中的若干寄存器值(如内存始址,传送字节数),然后发起I/O操作;而DMA控制器完成内存与外设的成批数据交换;在操作完成时由DMA控制器向CPU发出中断。图5-9DMA方式的工作流程40DMA工作过程-以磁盘读入数据为例由程序设置DMA控制器41DMA方式的优缺点优点:显著地减少了CPU的干预,由原来的一个字(节)减少到了一块;CPU只需干预该块数据I/O操作的开始和结束,而块内的一批数据读写无需CPU控制,适于高速设备。缺点:在DMA方式下,CPU发出一个I/O命令后,读写完一个连续的数据块时需要相应一次中断。41DMA方式的优缺点优点:显著地减少了CPU的干预,由原来42三种I/O控制方式的比较42三种I/O控制方式的比较43I/O通道控制方式
I/O通道是一种特殊的处理机。它具有执行I/O指令的能力。可以执行由通道指令组成的通道程序,因此可以进行较为复杂的I/O控制。通道程序通常由操作系统所构造,放在内存里。通道程序操作码。内存地址。计数。通道程序结束位P。记录结束标志R。43I/O通道控制方式I/O通道是一种特殊的处理机。它具有44六条指令的简单通道程序操作PR计数内存地址WRITE0080813WRITE001401034WRITE01605830WRITE013002000WRITE002501850WRITE1125072044六条指令的简单通道程序操作PR计数内存地址WRITE45通道方式的优点优点:通道方式是DMA方式的发展,它可进一步减少CPU的干预。可以实现CPU、通道和I/O设备三者的并行操作,更有效地提高整个系统的资源利用率。45通道方式的优点优点:465.3缓冲管理为了缓和CPU与I/O设备速度不匹配的矛盾,提高CPU和I/O设备的并行性,在现代OS中,几乎所有的I/O设备在与处理机交换数据时都用了缓冲区。缓冲管理的主要职责是组织好这些缓冲区,并提高获得和释放缓冲区的手段。465.3缓冲管理为了缓和CPU与I/O设备速度不匹配的矛47缓冲技术缓冲技术可提高外设利用率。原因匹配CPU与外设的不同处理速度减少对CPU的中断次数。提高CPU和I/O设备之间的并行性。47缓冲技术48缓冲区设置硬缓冲:在设备中设置缓冲区,由硬件实现软缓冲:在内存中开辟一个空间,用作缓冲区48缓冲区设置硬缓冲:49
单缓冲(singlebuffer)
一个缓冲区,CPU和外设轮流使用,一方处理完之后接着等待对方处理。单缓冲工作示意图49
单缓冲(singlebuffer)一个缓冲区,CP50双缓冲(doublebuffer)
两个缓冲区,CPU和外设都可以连续处理而无需等待对方。要求CPU和外设的速度相近。双缓冲工作示意图50双缓冲(doublebuffer)两个缓冲区,CPU51循环缓冲(circularbuffer)
多个缓冲区,CPU和外设的处理速度可以相差较大。可参见“生产者-消费者问题”,关键是资源量的增减(空或满的缓冲区数目)而不是生产者和消费者的指针移动。51循环缓冲(circularbuffer)多个缓冲区,52循环缓冲的组成:多个缓冲区,多个指针循环缓冲区的使用:getbuf和releasebuf过程进程同步:nexti指针追赶上nextg指针
nextg指针追赶上nexti指针52循环缓冲的组成:多个缓冲区,多个指针53缓冲池(bufferpool)
缓冲区整体利用率高。缓冲区队列空闲缓冲区,输入缓冲区,输出缓冲区53缓冲池(bufferpool)缓冲区整体利用率高。54过程54过程55Getbuf过程和putbuf过程既可以实现互斥又可保证同步的getbuf过程和putbuf过程Getbuf(type)putbuf(type,number)
Wait(RS(type));wait(MS(type));Wait(MS(type));addbuf(type,number);B(number):=takebuf(type);signal(MS(type));Signal(MS(type));signal(RS(type));55Getbuf过程和putbuf过程56工作方式收容输入提取输入收容输出提取输出56工作方式收容输入575.4I/O软件I/O软件的总体设计目标是高效率和通用性。通常将I/O软件组成一种层次结构,低层软件用于实现与硬件相关的操作,高层软件主要向用户提供一个接口。每一层具有一个要执行的定义明确的功能和一个与相邻层次定义明确的接口。575.4I/O软件I/O软件的总体设计目标是高效率和通用58I/O软件应达到的目标与具体设备无关统一命名对错误的处理缓冲技术设备的分配和释放I/O控制方式58I/O软件应达到的目标与具体设备无关59
I/O软件的基本思想是按分层的思想构成,较低层软件要使较高层软件独立于硬件的特性,较高层软件则要向用户提供一个友好的、清晰的、简单的、功能更强的接口。
I/O软件的组成59I/O软件的基本思想是按分层的思想构成,较低层606061(1)用户进程层执行输入输出系统调用,对I/O数据进行格式化,为假脱机输入/输出作准备(2)独立于设备的软件实现设备的命名、设备的保护、成块处理、缓冲技术和设备分配(3)设备驱动程序设置设备寄存器、检查设备的执行状态(4)中断处理程序负责I/O完成时,唤醒设备驱动程序进程,进行中断处理(5)硬件层实现物理I/O的操作61(1)用户进程层执行输入输出系统调用,对I/O数据进行格62每个进程在启动一个I/O操作后阻塞直到I/O操作完成并产生一个中断由操作系统接管CPU后唤醒该进程为止5.4.2中断处理程序62每个进程在启动一个I/O操作后阻塞5.4.2中63中断处理程序处理过程唤醒被阻塞的驱动程序进程保存现场转入设备中断处理程序进行中断处理恢复被中断进程的现场63中断处理程序处理过程唤醒被阻塞的驱动程序进程64中断现场保护示意图64中断现场保护示意图65中断处理流程65中断处理流程66与设备密切相关的代码放在设备驱动程序中,每个设备驱动程序处理一种设备类型每一个控制器都设有一个或多个设备寄存器,用来存放向设备发送的命令和参数。设备驱动程序负责释放这些命令,并监督它们正确执行一般,设备驱动程序的任务是接收来自与设备无关的上层软件的抽象请求,并执行这个请求5.4.3设备驱动程序66与设备密切相关的代码放在设备驱动程序中,每个设备驱动程序67
在设备驱动程序的进程释放一条或多条命令后,系统有两种处理方式,多数情况下,执行设备驱动程序的进程必须等待命令完成,这样,在命令开始执行后,它阻塞自已,直到中断处理时将它解除阻塞为止。而在其它情况下,命令执行不必延迟就很快完成。
设备驱动程序(续)67在设备驱动程序的进程释放一条或多条命令后,系统68设备驱动程序的功能
将抽象要求转换为具体要求检查I/O请求的合法性发出I/O命令响应中断请求构成通道程序68设备驱动程序的功能将抽象要求转换为具体要求69处理方式为每类设备设置一个进程整个系统一个I/O进程不设专门进程69处理方式70I/O进程(1)I/O请求的进入用户程序:调用send将I/O请求发送给I/O进程;调用block将自己阻塞,直到I/O任务完成后被唤醒系统:利用wakeup唤醒I/O进程,完成用户所要求的I/O处理(2)I/O中断的进入当I/O中断发生时,内核中的中断处理程序发一条消息给I/O进程,由I/O进程负责判断并处理中断70I/O进程(1)I/O请求的进入71(3)I/O进程是系统进程,一般赋予最高优先级。一旦被唤醒,它可以很快抢占处理机投入运行IO进程开始运行后,首先关闭中断,然后用receive去接收消息。两种情形:没有消息,则开中断,将自己阻塞;有消息,则判断消息(IO请求或IO中断);IO请求准备通道程序,发出启动IO指令,继续判断有无消息IO中断,进一步判断正常或异常结束正常:唤醒要求进行IO操作的进程异常:转入相应的错误处理程序71(3)I/O进程72特点驱动程序主要是指在请求I/O的进程与设备控制器之间的一个通信和转换程序。驱动程序与设备控制器和I/O设备的硬件特性紧密相关,因而对不同类型的设备应配置不同的驱动程序。驱动程序与I/O设备所采用的I/O控制方式紧密相关。由于驱动程序与硬件紧密相关,因而其中的一部分必须用汇编语言书写。驱动程序应允许可重入。驱动程序不允许系统调用。72特点驱动程序主要是指在请求I/O的进程与设备控制器之间的73处理过程将抽象要求转换为具体要求检查I/O请求的合法性读出和检查设备状态传送必要参数方式设置启动I/O设备73处理过程将抽象要求转换为具体要求74
虽然I/O软件中一部分是设备专用的,但大部分软件是与设备无关的。设备驱动程序与设备独立软件之间的确切界限是依赖于具体系统的。
5.4.4设备独立性软件74虽然I/O软件中一部分是设备专用的,但大部分软75设备独立性的概念应用程序独立于具体使用的物理设备。在应用程序中使用逻辑设备名来请求使用某类设备。在实际执行时还必须使用物理设备名称。实现设备独立性可以带来:设备分配时的灵活性;易于实现I/O重定向;75设备独立性的概念应用程序独立于具体使用的物理设备。767677
1)独立于设备的软件的基本任务是实现所有设备都需要的功能,并且向用户级软件提供一个统一的接口
2)如何给文件和设备这样的对象命名是操作系统中的一个主要课题。独立于设备的软件负责把设备的符号名映射到正确的设备驱动上
3)设备保护系统如何防止无权存取设备的用户存取设备呢?771)独立于设备的软件的基本任务是实现所有设备都需要的功78
4)不同的磁盘可以采用不同的扇区尺寸。向较高层软件掩盖这一事实并提供大小统一的块尺寸,这正是设备独立软件的一个任务。它可将若干扇区合成一个逻辑块。这样,较高层的软件只与抽象设备打交道,独立于物理扇区的尺寸而使用等长的逻辑块
5)缓冲技术
6)设备分配
7)出错处理
784)不同的磁盘可以采用不同的扇区尺寸。向较高层软件掩盖79
逻辑设备名到物理设备名映射的实现逻辑设备表LUT的设置系统LUT用户LUT79逻辑设备名到物理设备名映射的实现逻辑设备表80尽管大部分I/O软件都包含在操作系统中,但仍有一小部分是由与用户程序连接在一起的库过程,甚至完全由运行于核外的程序构成。系统调用,包括I/O系统调用,通常由库过程实现这些过程所做的工作只是将系统调用时所用的参数放在合适的位置,由其它的I/O过程实际实现真正的操作5.4.5用户层的I/O软件80尽管大部分I/O软件都包含在操作系统中,但仍有一小部分是815.5设备分配由于外设资源的有限,需解决进程间的外设共享问题,以提高外设资源的利用率。设备分配是对进程使用外设过程的管理。在有的系统中还应分配相应的控制器和通道。系统必须设置相应的数据结构。815.5设备分配由于外设资源的有限,需解决进程间的外设共825.5.1数据结构
设备控制表(DCT,DeviceControlTable):每个设备一张,描述设备特性和状态。反映设备的特性、设备和控制器的连接情况。825.5.1数据结构设备控制表(DCT,Device83控制器控制表(COCT,COntrollerControlTable):每个设备控制器一张,描述I/O控制器的配置和状态。如DMA控制器所占用的中断号、DMA数据通道的分配。通道控制表(CHCT,CHannelControlTable):每个通道一张,描述通道工作状态。83控制器控制表(COCT,COntrollerCont84系统设备表(SDT,SystemDeviceTable):系统内一张,反映系统中设备资源的状态,记录所有设备的状态及其设备控制表的入口。SDT表项的主要组成:DCT指针:指向相应设备的DCT;设备使用进程标识:正在使用该设备的进程标识;DCT信息:为引用方便而保存的DCT信息,如:设备标识、设备类型等;84系统设备表(SDT,SystemDeviceTab858586
5.5.2设备分配时应考虑的因素设备固有属性设备分配算法设备分配中的安全性86
5.5.2设备分配时应考虑的因素设备固有属性87
设备固有属性独占共享独享设备共享设备虚拟设备87
设备固有属性独占88
设备分配算法先来先服务优先级高者优先88
设备分配算法先来先服务89
设备分配中的安全性安全分配方式不安全分配方式89
设备分配中的安全性安全分配方式905.5.3独占设备分配程序
基本设备分配程序分配设备分配设备控制器分配通道改进增加设备独立性考虑多通路问题905.5.3独占设备分配程序基本设备分配程序91
5.5.4假脱机技术利用假脱机技术(SPOOLing,SimultaneousPeripheralOperationOnLine,也称为虚拟设备技术)可把独享设备转变成具有共享特征的虚拟设备,从而提高设备利用率。引入在多道程序系统中,专门利用一道程序(SPOOLing程序)来完成对设备的I/O操作。无需使用外围I/O处理机。91
5.5.4假脱机技术利用假脱机技术(SPOOLing92SPOOLing程序和外设进行数据交换,可以称为“实际I/O”。一方面,SPOOLing程序预先从外设输入数据并加以缓冲,在以后需要的时候输入到应用程序;另一方面,SPOOLing程序接受应用程序的输出数据并加以缓冲,在以后适当的时候输出到外设。应用程序进行I/O操作时,只是和SPOOLing程序交换数据,可以称为“虚拟I/O”。这时候的虚拟I/O实际上是从SPOOLing程序的缓冲池中读出数据或把数据送入缓冲池,而不是跟实际的外设进行I/O操作。92SPOOLing程序和外设进行数据交换,可以称为“实际I93SPOOLing系统组成93SPOOLing系统组成94特点高速虚拟I/O操作:应用程序的虚拟I/O比实际I/O速度提高,缩短应用程序的执行时间(尽快完成计算,并释放占用的计算机资源)。另一方面,程序的虚拟I/O操作时间和实际I/O操作时间分离开来。实现对独享设备的共享:由SPOOLing程序提供虚拟设备,可以对独享设备依次共享使用。94特点高速虚拟I/O操作:应用程序的虚拟I/O比实际I/O95举例
打印机设备和可由打印机管理器管理的打印作业队列。如:WindowsNT中,应用程序直接向针式打印机输出需要15分钟,而向打印作业队列输出只需要1分钟,此后用户可以关闭应用程序而转入其他工作,在以后适当的时候由打印机管理器完成15分钟的打印输出而无需用户干预。95举例打印机设备和可由打印机管理器管理的打印作业队列。如965.6磁盘存储器管理分配空间组织文件的存取方式提高磁盘存储空间的利用率提高IO速度保证文件系统的可靠性965.6磁盘存储器管理分配空间97提高IO速度的主要途径选择性能好的磁盘并行化采用适当的调度算法设置磁盘高速缓冲区97提高IO速度的主要途径选择性能好的磁盘989899磁盘的组织现代磁盘驱动器可以看作一个一维的逻辑块的数组,逻辑块是最小的传输单位。一维逻辑块数组按顺序映射到磁盘的扇区。扇区0是最外面柱面的第一个磁道第一个扇区。该映射是先按磁道内扇区顺序,再按柱面内磁道顺序,再按从外到内的柱面顺序来排序的。99磁盘的组织现代磁盘驱动器可以看作一个一维的逻辑块的数组,100磁盘的类型固定头磁盘移动头磁盘100磁盘的类型固定头磁盘101磁盘访问时间寻道时间旋转延迟时间传输时间101磁盘访问时间寻道时间102寻道时间这是把磁臂(磁头)从当前位置移动到指定磁道上所经历的时间。该时间是启动磁盘的时间s与磁头移动n条磁道所花费的时间之和。Ts=m*n+s102寻道时间这是把磁臂(磁头)从当前位置移动到指定磁道上所103旋转延迟时间对于硬盘,典型的转转速度为3600r/min,每转需时16.7ms,平均旋转延迟时间Tr为8.3ms。对于软盘,其旋转速度为300或600r/min,这样,平均Tr为50~100ms。103旋转延迟时间对于硬盘,典型的转转速度为3600r/mi104传输时间Tr是指把数据从磁盘读出,或向磁盘写入数据所经历的时间,Tt的大小与每次所读/写的字节数b及旋转速度有关Tt=b/(rN)104传输时间Tr是指把数据从磁盘读出,或向磁盘写入数据所经105总时间Ts+1/(2r)+b/(rN)例如,我们假定寻道时间和旋转延迟时间平均为30ms,而磁道的传输速率为1MB/s,如果传输1K字节,此时总的访问时间为31ms,传输时间所占比例是相当的小。当传输10K字节的数据时,其访问时间也只是40ms,即当传输的数据量增加10倍时,访问时间只增加了约30%。105总时间Ts+1/(2r)+b/(rN)106磁盘调度算法先来先服务最短寻道时间优先扫面算法循环扫面算法N-Step-SCANFSCANS106磁盘调度算法先来先服务107先来先服务(FCFS)640cylinders107先来先服务(FCFS)640cylinders108最短寻道时间优先(SSTF)236cylinders108最短寻道时间优先(SSTF)236cylinders109进程“饥饿”现象SSTF算法可能导致某个进程出现“饥饿”现象。只要不断有新进程的请求到达,且其所要访问的磁道与磁头当前所在磁道的距离较近,这种新进程的I/O请求必须优先满足。老进程将出现“饥饿”现象为解决该问题,对SSTF略微进行改进,形成SCAN扫面算法。109进程“饥饿”现象SSTF算法可能导致某个进程出现“饥饿110扫面算法(SCAN)208110扫面算法(SCAN)208111循环扫面算法111循环扫面算法112问题-“磁臂粘着”在SSTF、SCAN及CSCAN几种调度算法中,都可能出现磁臂停留在某处不动的情况,例如,有一个或几个进程对某一磁道有较高的访问频率,即这个(些)进程反复请求对某一磁道的I/O操作,从而垄断了整个磁盘设备。我们把这一现象称为“磁臂粘着”(Armstickiness)。112问题-“磁臂粘着”在SSTF、SCAN及CSCAN几113N-Step-SCANN步SCAN算法是将磁盘请求队列分成若干个长度为N的子队列,磁盘调度将按FCFS算法依次处理这些子队列。而每处理一个队列时又是按SCAN算法,对一个队列处理完后,再处理其他队列。当正在处理某子队列时,如果又出现新的磁盘I/O请求,便将新请求进程放入其他队列,这样就可避免出现粘着现象。当N值取得很大时,会使N步扫描法的性能接近于SCAN算法的性能;当N=1时,N步SCAN算法便蜕化为FCFS算法。113N-Step-SCANN步SCAN算法是将磁盘请求队列114FSCAN算法FSCAN算法实质上是N步SCAN算法的简化,即SCAN只将磁盘请求队列分成两个子队列。一个是由当前所有请求磁盘I/O的进程形成的队列,由磁盘调度按SCAN算法进行处理。在扫描期间,将新出现的所有请求磁盘I/O的进程,放入另一个等待处理的请求队列。这样,所有的新请求都将被推迟到下一次扫描时处理。114FSCAN算法FSCAN算法实质上是N步SCAN算法的115磁盘高速缓存(DiskCache)磁盘高速缓存的形式是指利用内存中的存储空间,来暂存从磁盘中读出的一系列盘块中的信息。因此,这里的高速缓存是一组在逻辑上属于磁盘,而物理上是驻留在内存中的盘块。高速缓存在内存中可分成两种形式。第一种是在内存中开辟一个单独的存储空间来作为磁盘高速缓存,其大小是固定的,不会受应用程序多少的影响;第二种是把所有未利用的内存空间变为一个缓冲池,供请求分页系统和磁盘I/O时(作为磁盘高速缓存)共享。此时高速缓存的大小,显然不再是固定的。当磁盘I/O的频繁程度较高时,该缓冲池可能包含更多的内存空间;而在应用程序运行得较多时,该缓冲池可能只剩下较少的内存空间。115磁盘高速缓存(DiskCache)磁盘高速缓存的形式116数据交付方式系统可以采取两种方式,将数据交付给请求进程:
(1)数据交付。这是直接将高速缓存中的数据,传送到请求者进程的内存工作区中。
(2)指针交付。只将指向高速缓存中某区域的指针,交付给请求者进程。后一种方式由于所传送的数据量少,因而节省了数据从磁盘高速缓存存储空间到进程的内存工作区的时间116数据交付方式系统可以采取两种方式,将数据交付给请求进程117置换算法
由于请求调页中的联想存储器与高速缓存(磁盘I/O中)的工作情况不同,因而使得在置换算法中所应考虑的问题也有所差异。因此,现在不少系统在设计其高速缓存的置换算法时,除了考虑到最近最久未使用这一原则外,还考虑了以下几点:
(1)访问频率。
(2)可预见性。
(3)数据的一致性。117置换算法由于请求调页中的联想存储器与高速缓存(磁盘I118周期性地写回磁盘在UNIX系统中专门增设了一个修改(update)程序,使之在后台运行,该程序周期性地调用一个系统调用SYNC。该调用的主要功能是强制性地将所有在高速缓存中已修改的盘块数据写回磁盘。一般是把两次调用SYNC的时间间隔定为30s。这样,因系统故障所造成的工作损失不会超过30s的劳动量。而在MS-DOS中所采用的方法是:只要高速缓存中的某盘块数据被修改,便立即将它写回磁盘,并将这种高速缓存称为“写穿透、高速缓存”(write-throughcache)。MS-DOS所采用的写回方式,几乎不会造成数据的丢失,但须频繁地启动磁盘。118周期性地写回磁盘在UNIX系统中专门增设了一个修改(u119提前读(Read-Ahead)延迟写优化物理块的分布虚拟盘提高磁盘I/O速度的其它方法119提前读(Read-Ahead)提高磁盘I/O速度的其120虚拟盘(RAM盘)RAM盘是通过使用软件将RAM模拟当做硬盘来使用的一种技术。相对于传统的硬盘文件访问来说,这种技术可以极大的提高在其上进行的文件访问的速度。但是RAM的易失性也意味着当关闭电源后的数据将会丢失。120虚拟盘(RAM盘)RAM盘是通过使用软件将RAM模拟当121RAID(廉价/独立磁盘冗余阵列)RedundantArrayofInexpensive/IndependentDisk把相同的数据存储在多个硬盘的不同的地方(因此,冗余地)的方法。通过把数据放在多个硬盘上,输入输出操作能以平衡的方式交叠,改良性能.并行交叉存取RAID分级121RAID(廉价/独立磁盘冗余阵列)Redundant122RAID1它具有磁盘镜像功能。两组以上的N个磁盘相互作镜像,除非拥有相同数据的主软盘与镜像同时损坏,否则只要一个磁盘正常即可维持运作,可靠性最高。磁盘利用率最低。122RAID1它具有磁盘镜像功能。两组以上的N个磁盘相互作123RAID3采用Bit-interleaving(数据交错存储)技术,它需要通过编码再将数据比特分区后分别存在硬盘中,而将同比特检查后单独存在一个硬盘中,但由于数据内的比特分散在不同的硬盘上,因此就算要读取一小段数据资料都可能需要所有的硬盘进行工作,所以这种规格比较适于读取大量数据时使用。123RAID3采用Bit-interleaving(数据交124RAID5RAIDLevel5是一种储存性能、数据安全和存储成本兼顾的存储解决方案。RAID5不是对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID5的一个磁盘数据发生损坏后,可以利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。RAID5可以理解为是RAID0和RAID1的折衷方案。RAID5可以为系统提供数据安全保障,但保障程度要比镜像低而磁盘空间利用率要比镜像高。124RAID5RAIDLevel5是一种储存性能、数125RAID6与RAID5相比,RAID6增加了第二个独立的奇偶校验信息块。两个独立的奇偶系统使用不同的算法,数据的可靠性非常高,即使两块磁盘同时失效也不会影响数据的使用。但RAID6需要分配给奇偶校验信息更大的磁盘空间,相对于RAID5有更大的“写损失”,因此“写性能”非常差。较差的性能和复杂的实作方式使得RAID6很少得到实际应用。125RAID6与RAID5相比,RAID6增加了第二个126RAID的优点可靠性高磁盘IO速度高性能价格比高应用RAID最初用于高端服务器市场,不过随着计算机应用的快速发展,RAID技术已经渗透到很多领域。如今,在家用电脑主板中,RAID控制芯片也随处可见。就目前而言,PATA、SATA以及SCSI接口的硬盘都可以通过相应的RAID控制芯片来组建RAID系统。在家用电脑上,我们一般只用到RAID0、RAID1这两种磁盘阵列方式。126RAID的优点可靠性高RAID最初用于高端服务器市场,127I/OSYSTEMS1I/OSYSTEMS128计算机系统的一个重要组成部分是I/O系统。I/O系统包括:输入设备输出设备设备控制器
I/O通道或I/O处理机设备管理的对象主要是:I/O设备设备控制器
I/O通道2计算机系统的一个重要组成部分是I/O系统。129设备管理的基本任务是:完成用户提出的I/O请求,提高I/O速率,提高I/O设备的利用率。设备管理的主要功能有:缓冲区管理设备分配设备处理虚拟设备实现设备独立性设备管理是OS中最繁杂且与硬件最紧密相关的部分。3设备管理的基本任务是:完成用户提出的I/O请求,提高I/O130本章总览OS在I/O方面的功能是管理和控制I/O操作和I/O设备。
I/O技术表现出两大相冲突的发展趋势:硬件接口的标准化程度的提高设备类型的更多样化的高速发展基本的I/O硬件像接口,总线,设备控制器技术的发展顺应了I/O设备的广泛变化。操作系统内核用各种设备驱动模块来组织
I/O子系统结构。问题:性能和复杂。4本章总览OS在I/O方面的功能是管理和控制I/O操作131设备管理的目的和功能
外设管理目的提高效率:提高I/O访问效率,匹配CPU和多种不同处理速度的外设。方便使用:方便用户使用,对不同类型的设备统一使用方法,协调对设备的并发使用。方便控制:方便OS内部对设备的控制:增加和删除设备,适应新的设备类型。5设备管理的目的和功能外设管理目的132设备管理的目的和功能
外设管理功能设备分配和释放:使用设备前,需要分配设备和相应的通道、控制器。设备的访问和控制:包括并发访问和差错处理。I/O缓冲和调度:目标是提高I/O访问效率(主要是磁盘)。6设备管理的目的和功能外设管理功能13371348135913610137111385.1I/O系统I/O系统的结构125.1I/O系统I/O系统的结构139AtypicalPCbusstructure13AtypicalPCbusstructure140141415.1.1I/O设备I/O设备的类型繁多,从OS观点看,其重要的性能指标有:数据传输速率、数据的传输单位、设备共享属性等。按传输速率分类
低速设备
典型设备有:键盘、鼠标器、语音输入和输出等。中速设备
典型设备有:行式打印机、激光打印机等。高速设备
典型设备有:磁带机、磁盘机、光盘机等。1.I/O设备的类型155.1.1I/O设备I/O设备的类型繁多,从OS观点142
按信息交换的单位分类
块设备:这类设备用于存储信息。属于有结构设备。
典型的块设备是磁盘,
每个盘块的大小为512B~4KB。传输速率较高,可寻址即对它可随机地读/写任一块;磁盘设备的I/O常采用
DMA方式。字符设备:用于数据的输入和输出。其基本单位是字符,故称为字符设备。按设备的共享属性分类
独占设备共享设备虚拟设备16按信息交换的单位分类143设备与控制器之间的接口数据信号控制信号状态信号2.设备与控制器之间的接口通常,设备并不直接与CPU进行通信,而是与设备控制器通信。因此,在I/O设备中应含有与设备控制器间的接口。在该接口中有三种类型的信号各对应一条信号线。17设备与控制器之间的接口2.设备与控制器之间的接口通常,设144图5-1设备与控制器间的接口控制信号线:作为设备控制器向I/O设备发送控制信号时的通路。该信号规定了设备将要执行的操作:读操作(指由设备向控制器传送数据)写操作(从控制器接收数据)数据信号线:用于在设备和设备控制器之间传送数据信号。输入设备:外界输入的信号经转换器转换后形成的数据,通常先送入缓冲器中,当数据量达到一定的比特数后,再从缓冲器通过一组数据信号线传送给设备控制器。输出设备:将从设备控制器经过数据信号线传送来的一批数据先暂存于缓冲器中,经转换器作适当转换后,再逐个字符地输出。状态信号线:用于传送指示设备当前状态的信号。设备的当前状态有:正在读(写)设备已读(写)完成,并准备好新的数据传送。18图5-1设备与控制器间的接口控制信号线:作为设备控制器1455.1.2设备控制器设备控制器是计算机中的一个实体,其主要职责是控制一个或多个I/O设备,以实现I/O设备和计算机之间的数据交换。它是CPU与I/O设备间的接口,它接收从CPU发来的命令,并去控制I/O设备工作,使处理机从繁杂的设备控制事务中解脱出来。它是一个可编址的设备,当它仅控制一个设备时,它只有一个唯一的设备地址;若控制多个设备时,则应含有多个设备地址,并使每一个设备地址对应一个设备。195.1.2设备控制器设备控制器是计算机中的一个实体,其1465.1.2设备控制器它可分为两类:控制字符设备的控制器控制块设备的控制器设备控制器的基本功能书P162接收和识别命令数据交换设备状态的了解和报告地址识别数据缓冲差错控制205.1.2设备控制器它可分为两类:控制字符设备的控制器147设备控制器的组成
由于设备控制器位于CPU与设备之间,它既要与CPU通信,又要与设备通信,还应具有按照CPU所发来的命令区控制设备工作的功能。因此有以下三部分组成:控制器与处理机接口该接口用于实现CPU与设备控制器之间的通信。控制器与设备接口可以连接一个或多个设备。在每个接口中都存在数据、控制和状态三种类型的信号。控制器中的I/O逻辑根据处理机发来的地址信号去选择一个设备接口。21设备控制器的组成148图5-2设备控制器的组成I/O逻辑I/O逻辑用于实现对设备的控制:它通过一组控制线与处理机交互,处理机利用该逻辑向控制器发送I/O命令;I/O逻辑对收到的命令进行译码。每当CPU要启动一个设备时,一方面将启动命令发送给控制器;另一方面有通过地址线把地址发送给控制器,由控制器的I/O逻辑对收到的地址进行译码,再根据所译出的命令对所选设备进行控制。22图5-2设备控制器的组成I/O逻辑1495.1.3I/O通道在CPU与I/O设备之间增加了设备控制器后,已能大大减少CPU对I/O的干预,但当主机所配置的外设很多时,CPU的负担仍然很重。为此,在CPU和设备控制器之间又增设了I/O通道。其主要目的是为了建立独立的I/O操作,不仅使数据的传送能独立于CPU,而且I/O操作的组织、管理及结束处理尽量独立,以保证CPU有更多的时间进行数据处理。即设置I/O通道的目的是使一些原来由CPU处理的I/O任务转由通承担,从而把CPU从繁杂的I/O任务中解脱出来。设置了通道后,CPU只需向通道发送一条I/O指令。通道收到该指令后,便从内存中取出本次要执行的通道程序,然后执行该通道程序;仅当通道完成了规定的I/O任务后,才向CPU发中断信号。235.1.3I/O通道在CPU与I/O设备之间增加了设备150I/O通道是一种特殊的处理机,具有执行I/O指令的能力。通过执行通道(I/O)程序来控制I/O操作。其指令类型单一主要局限于与I/O操作有关的指令通道没有自己的内存,通道所执行的通道程序是放在主机的内存中的。24I/O通道是一种特殊的处理机,具有执行I/O指令的能力。151通道类型字节多路通道一种按字节交叉方式工作的通道。它通常含有许多非分配型子通道,其数量从几十到几百个,每一个子通道连接一台I/O设备,并控制该设备的I/O操作。这些子通道按时间片轮转方式共享主通道:当第一个子通道控制其I/O设备完成一个字节的交换后,便立即腾出主通道,让给第二个子通道使用;当所有子通道轮转一周后,重又返回由第一个子通道去使用主通道。这样,只要字节多路通道扫描每个子通道的速率足够快,而连接到子通道上的设备的速率不是太高时,便不致丢失信息。25通道类型字节多路通道152数组选择通道字节多路通道不适合连接高速设备数组选择通道可以连接多台高速设备该通道只含有一个分配型子通道这种通道的利用率很低数组多路通道上面两种通道技术的结合有多个非分配型子通道该通道能被广泛地用于连接多台高、中速的外围设备具有很高的数据传输速率,又能获得令人满意的通道利用率26数组选择通道153瓶颈问题通道价格昂贵,通道数量势必减少。这往往又使它成了I/O的瓶颈,从而造成整个系统吞吐量的下降。假设设备1至设备4是四个磁盘,为了启动磁盘4,必须用通道1和控制2;但若这两者已被其他设备占用,必然无法启动磁盘4。27瓶颈问题通道价格昂贵,通道数量势必减少。这往往又使它成了154瓶颈问题的解决解决方法:增加设备到主机间的通路而不增加通道。就是把一个设备连接到多个控制器上,而一个控制器又连接到多个通道上。图中的设备1、2、3、4都有四条通往存储器的通路。多通路方式不仅解决了瓶颈问题,而且提高了系统的可靠性。28瓶颈问题的解决解决方法:增加设备到主机间的通路而不增加通1555.1.4总线系统总线是许多信号线的集合,它是微型计算机芯片间、各部件间和外部设备间相互进行信息或数据交换的通路。由于计算机内部定向的信息流和数据流在总线中的流动,就形成了计算机的各种操作。常见的系统总线标准有ISA、EISA、PCI等总线295.1.4总线系统总线是许多信号线的集合,它是微型计算156总线的主要技术指标总线数据传输速率单位时间内总线上传送的数据量,即每钞钟传送Mb的最大稳态数据传输率。总线数据传输速率=总线的工作频率*总线的位宽/8。总线的带宽
总线的带宽指的是总线能同时传送的二进制数据的位数,或数据总线的位数,即32位、64位等总线宽度的概念。总线的工作频率
总线的工作时钟频率以MHZ为单位,工作频率越高,总线工作速度越快,总线传输速率越高。30总线的主要技术指标总线数据传输速率157ISA和EISA总线80286微机的总线。带宽为8bit,最高传输速率为2Mb/s,可以连接12台外部设备。扩展ISA即EISA总线:带宽16位。传输速率高达32Mb/s,可以连接12台外部设备。31ISA和EISA总线80286微机的总线。带宽为8bit158局部总线局部总线是指将多媒体卡,高速LAN网卡,高性能图形板等从ISA总线上卸下来,再通过局部总线控制器直接连接到CPU总线上,使之与高速CPU总线相匹配。局部总线中较有影响的是VESA和PCI总线。VESA:带宽32位。最高传输速率132Mb/s,仅能连接2~4台设备。PCI:PCI在CPU和外设之间插入一复杂的管理层,用于协调数据传输和提供一致的接口。PCI能支持10种外设,最大传输速率可达132Mb/s。是当前广为流行的总线。32局部总线局部总线是指将多媒体卡,高速LAN网卡,高性能图1595.2I/O控制方式I/O控制方式是随着计算机技术的发展而不断发展的。在I/O控制方式的整个发展过程中,始终贯穿的宗旨是:尽量减少主机对I/O控制的干预,把主机从反之的I/O控制事物中解脱出来,以便更多地去完成数据处理任务。早期采用程序控制I/O方式;当在系统中引入中断机制后,便发展为中断驱动方式;随着DMA控制器的出现,又使I/O方式在传输单位上发生了变:即从以字节为单位的传输扩大到以数据块为单位进行传输。从而改善了块设备的I/O性能;通道的引入,又使对I/O操作的组织和数据的传送都能独立进行而无需CPU干预。335.2I/O控制方式I/O控制方式是随着计算机技术的发160I/O控制方式程序控制I/O(programmedI/O)中断驱动方式(interrupt-drivenI/O)直接存储访问方式(DMA,DirectMemoryAccess)I/O通道控制方式(channel(channelcontrol)34I/O控制方式程序控制I/O(programmedI/161程序控制(忙—等待或轮询方式)系统中没有中断机构,I/O操作由程序发起,并等待操作完成。数据的每次读写均通过CPU。例如:当主机要通过端口来写出数据时,主机与控制器之间的握手协议如下:缺点:在外设进行数据处理时,CPU只能等待,致使CPU利用率很低。35程序控制(忙—等待或轮询方式)系统中没有中断机构,I/O162六个步骤1主机不断地读取忙位,直到该位被清除;2主机设置命令寄存器中的写位并向数据输出寄存器中写入一个字(节);3主机设置命令就绪位;4当控制器注意到命令就绪位已被设置,则设置忙位;5控制器读取命令寄存器,并看到写入命令,它从数据输出寄存器中读取一个字(节),并向设备执行I/O操作。6控制器清除命令就绪位,清除状态寄存器的故障位,以表示设备成功,清除忙位以表示完成。完成一个字节的传输后继续重复上述步骤取更多的数据。36六个步骤1主机不断地读取忙位,直到该位被清除;163中断驱动方式
I/O操作由程序发起,在操作完成时(如数据可读或已经写入)由外设向CPU发出中断,通知该程序。数据的每次读写通过CPU具体过程如右图所示:37中断驱动方式I/O操作由程序发起,在操作完成时(如数据164优点:在外设进行数据处理时,CPU不必等待,可以继续执行该程序或其他程序。缺点:CPU每次处理的数据量仍是以字(字节)为单位,只适于数据传输率较低的设备。38优点:在外设进行数据处理时,CPU不必等待,可以继续执行165直接存储访问方式(DMA)计算机为了避免用PIO而增加CPU的负担,将一部分任务下放给一个专用的处理器-DMA控制器;DMA控制器的组成,如下图所示:图5-8DMA控制器的组成39直接存储访问方式(DMA)计算机为了避免用PIO而增加C166DMA工作过程-以磁盘读入数据为例由程序设置DMA控制器中的若干寄存器值(如内存始址,传送字节数),然后发起I/O操作;而DMA控制器完成内存与外设的成批数据交换;在操作完成时由DMA控制器向CPU发出中断。图5-9DMA方式的工作流程40DMA工作过程-以磁盘读入数据为例由程序设置DMA控制器167DMA方式的优缺点优点:显著地减少了CPU的干预,由原来的一个字(节)减少到了一块;CPU只需干预该块数据I/O操作的开始和结束,而块内的一批数据读写无需CPU控制,适于高速设备。缺点:在DMA方式下,CPU发出一个I/O命令后,读写完一个连续的数据块时需要相应一次中断。41DMA方式的优缺点优点:显著地减少了CPU的干预,由原来168三种I/O控制方式的比较42三种I/O控制方式的比较169I/O通道控制方式
I/O通道是一种特殊的处理机。它具有执行I/O指令的能力。可以执行由通道指令组成的通道程序,因此可以进行较为复杂的I/O控制。通道程序通常由操作系统所构造,放在内存里。通道程序操作码。内存地址。计数。通道程序结束位P。记录结束标志R。43I/O通道控制方式I/O通道是一种特殊的处理机。它具有170六条指令的简单通道程序操作PR计数内存地址WRITE0080813WRITE001401034WRITE01605830WRITE013002000WRITE002501850WRITE1125072044六条指令的简单通道程序操作PR计数内存地址WRITE171通道方式的优点优点:通道方式是DMA方式的发展,它可进一步减少CPU的干预。可以实现CPU、通道和I/O设备三者的并行操作,更有效地提高整个系统的资源利用率。45通道方式的优点优点:1725.3缓冲管理为了缓和CPU与I/O设备速度不匹配的矛盾,提高CPU和I/O设备的并行性,在现代OS中,几乎所有的I/O设备在与处理机交换数据时都用了缓冲区。缓冲管理的主要职责是组织好这些缓冲区,并提高获得和释放缓冲区的手段。465.3缓冲管理为了缓和CPU与I/O设备速度不匹配的矛173缓冲技术缓冲技术可提高外设利用率。原因匹配CPU与外设的不同处理速度减少对CPU的中断次数。提高CPU和I/O设备之间的并行性。47缓冲技术174缓冲区设置硬缓冲:在设备中设置缓冲区,由硬件实现软缓冲:在内存中开辟一个空间,用作缓冲区48缓冲区设置硬缓冲:175
单缓冲(singlebuffer)
一个缓冲区,CPU和外设轮流使用,一方处理完之后接着等待对方处理。单缓冲工作示意图49
单缓冲(singlebuffer)一个缓冲区,CP176双缓冲(doublebuffer)
两个缓冲区,CPU和外设都可以连续处理而无需等待对方。要求CPU和外设的速度相近。双缓冲工作示意图50双缓冲(doublebuffer)两个缓冲区,CPU177循环缓冲(circularbuffer)
多个缓冲区,CPU和外设的处理速度可以相差较大。可参见“生产者-消费者问题”,关键是资源
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 不安腿综合征的临床护理
- 山东中考数学试卷真题及答案分值
- 三校生高考不等式试卷及答案
- 2025标准装修合同协议书范本
- 2025年停车场广告投放租赁合同样本
- 成本消减策略
- 2025年中国购物篮手推车市场调查研究报告
- 2025LED电子显示屏系统采购合同书LED电子显示屏应用
- 2025上海经济适用房买卖合同
- 纺织设备性能测试标准与方法研究考核试卷
- 2025年陕西省土地工程建设集团有限责任公司招聘笔试参考题库附带答案详解
- 2024广西公务员【申论A卷、C卷+2023申论A卷】共3套真题及答案
- 《多样的中国民间美术》课件 2024-2025学年人美版(2024)初中美术七年级下册
- 人教版 七年级 下册 语文 第四单元《青春之光》课件
- 2024物业管理数字化升级服务合同
- 灌浆作业安全操作规程(3篇)
- 药品追回管理制度内容
- 二战时期的中国抗日战争
- 35kv变电站设备安装工程施工设计方案
- 煤炭清洁高效利用对策
- DB32-T 4174-2021 城市居住区和单位绿化标准
评论
0/150
提交评论