版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第六章输入输出系统I/O系统是计算机系统的重要组成部分I/O系统包括用于实现信息输入、输出和存储功能的设备和相应的控制器I/O系统的基本任务:完成用户提出的I/O请求,提高I/O速率以及改善I/O的利用率I/O系统的主要功能:缓冲区管理、设备分配、设备处理、虚拟设备及实现设备独立性。第六章输入输出系统6.1
I/O系统的功能、模型和接口6.2
I/O设备和设备控制器6.3中断机构和中断处理程序6.4设备驱动程序6.5与设备无关的I/O软件6.6用户层的I/O软件6.7缓冲区管理6.1I/O系统的功能、模型和接口I/O系统的组成直接用于I/O和存储信息的设备相应的设备控制器I/O通道(大、中型计算机)总线I/O系统的结构微型机I/O系统主机I/O系统6.1I/O系统的功能、模型和接口I/O系统的结构微型机I/O系统微型机比较简单,多采用总线I/O系统结构。CPU和内存是直接连接到总线上的。I/O设备是通过设备控制器连接到总线上,CPU并不直接与I/O设备进行通信,而是与设备控制器进行通信,设备控制器是处理机和设备之间的接口。主机I/O系统在I/O系统中采用总线结构,而是增加一级I/O通道。其中,I/O系统共分为4级:最低级为I/O设备,次低级为设备控制器,次高级为I/O通道,最高级是计算机。因而也称这样的I/O系统结构为四级结构。6.1.1I/O系统的基本功能隐藏物理设备的细节与设备的无关性提高处理机和I/O设备的利用率对I/O设备进行控制确保对设备的正确性错误处理执行I/O操作设置设备寄存器、检查寄存器状态映射、保护、分块、缓冲、分配产生I/O请求、格式化I/O、Spooling6.1.2I/O系统的层次结构和模型实现与用户交互的接口。用户可直接调用在I/O操作有关的库函数,对设备进行操作。与硬件直接相关,负责实现系统对设备发出的操作指令,驱动I/O设备工作。保存被中断进程的CPU环境,转入相应的中断处理程序进行处理,处理完后再恢复被中断进程的现场后返回到被中断进程。I/O软件的层次式结构用户层软件设备独立性软件设备驱动程序中断处理程序硬件I/O请求I/O应答实现与设备驱动器的统一接口、设备命名、设备的保护以及分配与释放等,同时为设备管理和数据传送提供必要的存储空间。6.1.2I/O系统的层次结构和模型I/O系统中各种模块之间的层次视图I/O系统的上、下接口6.1.2I/O系统的层次结构和模型I/O系统中各种模块之间的层次视图I/O系统的分层中断处理程序处于I/O系统的底层,直接与硬件进行交互设备驱动程序进程与控制器之间的通信程序。功能:接收用户的I/O请求命令和参数,并将命令中的抽象要求转换为具体要求。设备独立性软件6.1.3I/O接口块设备接口块设备。数据的存取和传输都是以数据块为单位的设备。基本特征是传输速率高、可寻址。磁盘设备的I/O常采用DMA方式。特点隐藏磁盘的二维结构;将抽象命令映射为低层操作。6.1.3I/O接口流设备接口字符设备。数据的存取和传输都是以字符为单位的设备。基本特征是传输速率低、不可寻址,常采用中断驱动方式。get和put操作常采用顺序存取方式,(用户程序)获取或输出字符的方法是采用get和put操作。in-control指令包含了许多参数,每个参数表示一个与具体设备相关的特定功能。6.1.3I/O接口网络通信接口现代OS都提供了面向网络的功能。还需要通过某种方式把计算机连接到网络上。OS提供相应的网络软件和网络通信接口,使计算机能够通过网络与网络上的其他计算机通信或上网浏览。6.2I/O设备和设备控制器6.2.1I/O设备6.2.2设备控制器6.2.3内存映像I/O6.2.4I/O通道6.2.1I/O设备I/O设备的类型按从属关系分类系统设备用户设备6.2.1I/O设备I/O设备的类型
按传输速率分类低速设备每秒几个字节至数百字节键盘、鼠标、语音输入输出设备等中速设备每秒数千至数万字节行式打印机、激光打印机等高速设备每秒数百K至数十M字节磁盘机、磁带机、光盘机等6.2.1I/O设备I/O设备的类型按信息交换的单位分类块设备(BlockDevice)信息的存取总是以数据块为单位可寻址如,磁盘,盘块的大小为512B~4KB字符设备(CharacterDevice)基本单位是字符不可寻址如,交互式终端、打印机6.2.1I/O设备I/O设备的类型按资源分配角度分类(共享属性)独占设备多数低速设备属独占设备,如打印机共享设备可供多个进程同时访问,如磁盘虚拟设备通过虚拟技术将一台独占设备变换为若干个逻辑设备,供若干个进程同时使用6.2.1I/O设备I/O设备的类型按操作特性存储设备存储信息,如磁盘等I/O设备用来向CPU传送信息或输出加工处理后的信息,如显示器、打印机6.2.1I/O设备设备与控制器之间的接口由外界输入的信号经转换器转换后送入缓冲器,数据达到一定的字符数后,再从缓冲器通过一组数据信号线送到控制器用于在设备和设备控制器之间传送数据。从设备控制器经过数据信号线传送来的数据先暂存在缓冲器,经转换器经过适当转换后,逐个字符输出作为由设备控制器向I/O设备发送控制信号时的通路。规定设备要执行的操作用于传送指示设备当前状态的信号:正在读、写或完成接口6.2.2设备控制器CPU与I/O设备之间的接口接收CPU发来的命令,控制一个或多个I/O设备工作,以实现I/O设备和计算机之间的数据交换,减轻CPU的负担可编址的设备分类控制字符设备控制块设备6.2.2设备控制器基本功能接收和识别命令控制寄存器存放接受的命令和参数,并对其译码数据交换实现CPU与控制器、控制器与设备之间的数据交换,需设置数据寄存器标识和报告设备的状态:需设置状态寄存器地址识别识别所控制的设备,需设置地址译码器数据缓冲:解决I/O设备速率低的问题差错控制:对I/O设备发送的数据进行差错检测6.2.2设备控制器设备控制器的组成设备(输入)或CPU(输出)送来的数据CPU送来的控制信息或设备的状态信息CPU发送启动命令,同时,CPU发送地址,对地址译码,选择相应设备控制6.2.3内存映像I/O驱动程序将抽象I/O命令转换出一系列具体的命令、参数等数据装入设备控制器的相应寄存器,由控制器来执行这些命令,具体实施对I/O设备的控制。两种完成方法利用特定的I/O指令内存映像I/O6.2.3内存映像I/O利用特定的I/O指令访问内存和设备需要使用两种不同的指令例,将CPU寄存器的内容复制到控制器寄存器,指令是
io-storecpu-reg,dev-no,dev-reg将CPU寄存器内容存入内存单元k的指令是
storecpu-reg,k6.2.3内存映像I/O内存映像I/O不再区分内存单元地址和设备控制器中的寄存器地址,都采用k。当k处于0~n-1之间时,被认为是内存地址,否则就是设备控制器的寄存器地址。例,将CPU寄存器的内容复制到控制器0的第一个寄存器opcode,指令是
Storecpu-reg,n6.2.4I/O通道I/O通道(I/OChannel)设备的引入一种特殊处理机,专门负责输入/输出工作有自己简单的指令系统,只有数据传送指令和设备控制指令主要目的是为了建立独立的I/O操作,使有关对I/O操作的组织、管理及其结束处理也独立于CPUCPU向I/O通道发送I/O命令,由通道执行程序通道与一般处理机的区别指令单一没有独立的内存6.2.4I/O通道通道类型 字节多路通道(ByteMultiplexorChannel)以字节交换方式工作,分时并行操作主要用来连接多个中低速设备6.2.4I/O通道通道类型 数组选择通道(BlockSelectorChannel)以成组方式工作,高速传输数据可以连接多台高速设备仅含有一个分配型子通道,在一段时间内只能执行一个通道程序,控制一台I/O设备由于设备独占使用,利用率较低6.2.4I/O通道通道类型 数组多路通道(BlockMultiplexorChannel)将数组选择通道传输速率高和字节多路通道分时并行操作的优点相结合而形成的一种新通道。它含有多个非分配型子通道,因而这种通道既具有很高的数据传输速率,又能获得令人满意的通道利用率。6.2.4I/O通道“瓶颈”问题价格昂贵,所设置的通道数量较少;往往使它成了I/O的瓶颈,进而造成整个系统吞吐量的下降。6.2.4I/O通道“瓶颈”问题解决方法增加设备到主机间的通路而不增加通道。即,把一个设备连接到多个控制器上,而一个控制器又连接到多个通道上。6.3中断机构和中断处理程序6.3.1中断简介6.3.2中断处理程序6.3.1中断简介中断和陷入中断。CPU硬件有一条中断请求线(interrupt-requestline,IRL),由I/O设备触发。设备控制器通过中断请求线发送信号而引起中断,CPU捕获中断并派遣到中断处理程序,中断处理程序通过处理设备来清除中断。陷入。CPU内部事件所引起的中断。若系统发现有陷入事件,CPU也将暂停正在执行的程序,转去执行该事件的处理程序。区别:信号的来源。6.3.1中断简介中断向量表和中断优先级中断向量表。为了处理上的方便,为每种设备配以相应的处理程序,并把该程序的入口放置在一个二维表(中断号,入口地址)中。6.3.1中断简介中断向量表和中断优先级中断优先级每个中断源对服务要求的紧急程度并不相同。能够使CPU延迟处理低优先级中断而不屏蔽所有中断,这也可以让高优先级中断抢占低优先级中断处理。对中断源的处理方式屏蔽中断。中断分为非屏蔽中断和可屏蔽中断。嵌套中断。6.3.2中断处理程序I/O中断处理程序的基本工作保留现行进程的执行现场;通知等待该I/O操作完成的进程;最终转入进程调度程序进行重新调度。6.3.2中断处理程序工作步骤唤醒被阻塞的驱动(程序)进程保护被中断进程的CPU环境转入相应的设备处理程序中断处理恢复被中断进程的现场中断现场保护示意图不同的设备中断处理程序不同6.3.2中断处理程序I/O完成后,驱动程序必须检查本次I/O操作中是否发生了错误,并向上层软件报告,最终向调用者报告本次I/O的执行情况6.4设备驱动程序6.4.1设备驱动程序概述6.4.2设备驱动程序的处理过程6.4.3对I/O设备的控制方式6.4.1设备驱动概述设备处理程序又称为设备驱动程序,是I/O进程与设备控制器之间的通信程序设备驱动程序的功能接收用户的I/O请求命令和参数,并将命令中的抽象要求转换为具体要求(I/O请求块)。检查用户I/O请求的合法性,了解I/O设备的状态,传递有关参数,设置设备的工作方式。发出I/O命令并检查设备状态,空闲则启动I/O完成指定的操作,忙碌则将请求者的请求块挂到相应设备的I/O请求队列。及时响应由控制器或通道发来的中断请求并处理若计算机系统设置有通道,则驱动程序根据用户的I/O请求,自动地构成通道程序。6.4.1设备驱动概述注意每类设备有一个I/O请求队列,在系统初始化时,将系统中所有设备的I/O请求队列置为空。在系统初启时,系统为每类设备创建一个进程(其中的一种方式),执行程序就是该设备的设备驱动程序。由于系统初启时,相应的I/O请求队列为空,则在该队列上睡眠。一旦有I/O请求块挂入,唤醒该设备驱动进程。它被调度到时,从队列中取出一个I/O请求块,并按该块的内容执行一次I/O操作,发出I/O完成(或出错)中断信号。然后,检查请求队,若为空,则进入睡眠状态,否则,取下一个请求块。6.4.1设备驱动概述设备驱动程序的特点驱动程序主要是指在请求I/O的进程与设备控制器之间的一个通信和转换程序驱动程序与设备控制器和I/O设备的硬件特性紧密相关,因而对不同类型的设备应配置不同的驱动程序驱动程序与I/O设备所采用的I/O控制方式紧密相关由于驱动程序与硬件紧密相关,因而其中的一部分必须用汇编语言书写驱动程序应允许可重入。一个正在运行的驱动程序常会在一次调用完成前被再次调用。驱动程序不允许系统调用。6.4.1设备驱动概述设备处理方式在整个系统中设置一个I/O进程,统一负责所有设备的驱动工作。专门用于执行系统中所有各类设备的I/O操作。为每一类设备设置一个进程,专门用于负责该类设备的驱动工作(I/O操作)。为每台设备建立一个设备驱动进程,它们分别负责专门设备的驱动工作。同类设备的各驱动进程共享该类设备的设备驱动程序。不设置专门的设备处理进程,而只为各类设备设置相应的设备处理程序(模块),供用户进程或系统进程调用。6.4.2设备驱动程序的处理过程将抽象要求转换为具体要求。设置控制器中的寄存器。检查I/O请求的合法性。若请求的设备不支持本次的I/O请求,认为是非法操作。读出和检查设备的状态。检查设备是否空闲或就绪。传送必要的参数。如数据量、起始地址等设置工作方式。对于有多种工作方式的设备进行设置启动I/O设备。驱动进程将自己阻塞起来,直到中断到来时将其唤醒6.4.3对I/O设备的控制方式使用轮询的可编程I/O方式使用中断的可编程I/O方式直接存储器访问方式I/O通道控制方式1.使用轮询的可编程I/O方式CPU通过I/O测试指令测试设备接口中的状态位:“忙”,则一直测试;“闲”,进行数据传送,每次传送一个字符又称为忙—等方式。1.使用轮询的可编程I/O方式①不断地读取忙位,直到该位被清除(此过程称为轮询,亦称忙等待-busywaiting)②a主机设置命令寄存器中的写位②b主机写入一个字节③主机设置命令就绪位④当控制器注意到命令就绪位已被设置,则设置忙位。⑤a控制器读取命令寄存器,并看到写入命令⑤b控制器读取读取一个字节⑤c控制器向设备执行I/O操作⑥a控制器清除命令就绪位⑥b清除状态寄存器的故障位,清除忙位1.使用轮询的可编程I/O方式适用场合没有中断机构的微机系统存在的问题CPU的绝大部分时间都处于等待I/O设备完成数据I/O的循环测试中外设不能合理使用,也无法支持多道程序2.使用中断的可编程I/O方式中断驱动(InterruptDriven)方式,即当某进程要启动某个I/O设备工作时,便由CPU向相应的设备控制器发出一条I/O命令,然后立即返回继续执行原来的任务。设备控制器按命令要求去控制指定的I/O设备,完成后,通过中断向CPU发送一中断信号。在I/O设备输入输出数据的过程中,无须CPU干预,每次传送一个字符。2.使用中断的可编程I/O方式2.使用中断的可编程I/O方式适用场合适用于低速设备I/O,并可配合DMA和通道方式实现I/O。存在的问题在每个数据传送完后中断CPU。3.直接存储器访问方式特点数据传输的基本单位是数据块所传送的数据是从设备直接送入内存的,或者相反仅在传送一个或多个数据块的开始和结束时才需CPU干预除了具有中断机构外,还增加了DMA控制器数据传送方向、存放数据的内存地址及传送数据长度需CPU控制每个设备需配置一个DMA控制器3.直接存储器访问方式DMA控制器的组成接收CPU发送的I/O命令有关控制信息设备状态输入:数据存放到内存的起始目标地址输出:存放数据由内存到设备的内存源地址暂存从设备到内存/内存到设备的数据存放本次CPU要读或写的字(节)数DMA传输的六个步骤①设备驱动程序被告知传输磁盘数据到内存地址X的缓冲区②驱动程序通知设备控制器从磁盘传输C个字节数据到内存地址X的缓冲区③磁盘控制器初始化DMA传输④磁盘控制器向DMA控制器发送每个字节⑤DMA控制器向缓冲区传输字节,增加内存地址并减少C,直到C=0⑥当C=0时,DMA直到CPU,通知传输完毕3.直接存储器访问方式适用场合适用于高速外设I/O,一次可以在外设与内存之间传输一个或多个数据快,传输完毕后才需CPU干预。存在的问题传送方向、始址、长度等由CPU控制,一个设备一个DMA,成本高。3.直接存储器访问方式DMA与中断方式的主要区别中断方式在每个数据传送完后中断CPU,DMA方式则是在所要求传送的一批数据全部传送完时中断CPU。中断方式的数据传送时在中断处理时由CPU控制完成的,而DMA则是在DMA控制下完成的4.I/O通道控制方式I/O通道控制方式的引入
以内存为中心的数据交换方式进一步减少了CPU的干预,把对一个数据块的读(或写)为单位的干预,减少为对一组数据块的读(或写)及有关的控制和管理为单位的干预一个通道控制多台设备CPU仅在I/O操作的开始和结束时花费少量时间处理与I/O有关的工作可实现CPU、通道和I/O设备三者的并行操作,从而更有效地提高整个系统的资源利用率4.I/O通道控制方式通道程序指令格式:操作码,P,R,计数,内存地址操作码规定指令所执行的操作,如读、写、控制等内存地址标明字符送入内存或从内存取出的内存首址计数本条指令所要读/写的字节数通道程序结束位标识通道程序是否结束,P=1表示结束记录结束标志R=0,表示本指令与下一指令处理同一个记录R=1,表示处理某记录的最后一条指令4.I/O通道控制方式72025011WRITE185025000WRITE200030010WRITE58306010WRITE103414000WRITE8138000WRITE内存地址计数RP操作码CPU与通道之间的通信4.I/O通道控制方式适用场合系统预先要将I/O的过程编制为通道程序,置于内存的特定位置,然后启动通道。由通道负责执行通道程序对外设进行I/O控制,CPU转其他程序运行。存在的问题需要通道硬件,成本高。6.5与设备无关的I/O软件6.5.1与设备无关软件的基本概念6.5.2与设备无关的软件6.5.3设备分配6.5.4逻辑设备名到物理设备名映射的实现6.5.1与设备无关软件的基本概念物理设备名采用单通路I/O系统结构,容易产生瓶颈逻辑设备名问题解决方法进程用物理设备名提出I/O请求逻辑设备表进程以逻辑设备名提出I/O请求系统实际执行时,用物理设备名6.5.2与设备无关的软件设备驱动程序的统一接口缓冲区管理差错控制对独立设备的分配与回收独立于设备的逻辑数据块①设备驱动程序与OS有相同(相近)接口②将抽象的设备名映射到适当的驱动程序对字符设备和块设备的缓冲区进行有效的管理,以提高I/O的效率①暂时性错误②持久性错误①独立设备②共享设备不同设备数据交换单位不同6.5.3设备分配相关数据结构设备控制表DCT设备类型:type设备标识符:deviceid设备状态:等待/不等待忙/闲指向控制器表COCT的指针重复执行次数或时间设备队列的队首指针DCT1DCT2DCTn设备控制表集合每个设备一张,记录本设备的情况若与其相连的控制器或通道忙,则等待标志置1正在使用,则忙标志置1;请求本设备未满足的进程PCB队列6.5.3设备分配相关数据结构控制器控制表、通道控制表控制器标识符:controllerid控制器状态:忙/闲与控制器连接的通道表指针控制器队列的队首指针控制器队列的队尾指针通道标识符:channelid通道状态:忙/闲与通道连接的控制器表首址通道队列的队首指针通道队列的队尾指针(a)控制器表COCT(b)通道表CHCT一个控制器一张一个通道一张6.5.3设备分配相关数据结构系统设备表SDT系统设备表SDT表目1…表目i…设备类设备标识符DCT驱动程序入口整个系统一张,记录已被连接到系统中的所有物理设备的情况6.5.3设备分配应考虑的因素设备固有属性独占性一段时间内,只允许一个进程独占大多数低度速I/O设备都属于独享设备缺点:设备得不到充分利用,可能产生死锁共享性允许多个进程同时共享如磁盘、磁鼓之类的外存储器,既具有很能大的存储容量,其定位操作的时间又短可虚拟性独占设备经某种技术处理,改造成虚拟设备。如采用SPOOLing技术,变一台为“多台设备”6.5.3设备分配应考虑的因素设备分配算法先来先服务优先级高者优先设备分配中的安全性安全分配方式每当进程发出I/O请求后,便进入阻塞状态,I/O操作完成后唤醒优点:摒弃了“请求和保持”条件,不会产生死锁不安全分配方式
进程发出I/O请求后仍继续运行,继续申请I/O设备优点:可操作多个设备,推进迅速缺点:推进速度缓慢缺点:可能产生死锁6.5.3设备分配独占设备的分配程序基本的设备分配程序分配设备、分配控制器、分配通道6.5.3设备分配独占设备的分配程序分配设备1分配控制器1分配通道1申请设备1按设备物理名查SDT由COCT查CHCT分配通道是由DCT查COCT分配控制器根据安全策略进行分配否设备忙?由SDT查设备DCT6.5.3设备分配独占设备的分配程序基本分配程序的问题进程以物理设备名提出I/O请求采用单通路I/O系统结构,容易产生瓶颈改进增加设备独立性考虑多通路情况为进程P分配所需的I/O设备从SDT表查该类设备的控制表DCT不忙分配此控制器给进程P不忙分配此通道给进程P启动I/O,进行具体的I/O操作不安全进程P的PCB放入此设备的等待队列YN进程P的PCB放入此控制器的等待队列YNNN多通路设备分配流程示意图由DCT检查该设备忙否?不忙检查分配此设备的安全性?忙最后一个DCT?忙最后一个COCT?Y最后一个DCT?此设备连接的COCT忙否?此控制器连接的CHCT忙否?进程P的PCB放入此通道的等待队列YY最后一个COCT?忙最后一个CHCT?N分配此设备给进程P安全6.5.4逻辑设备名到物理设备名映射的实现逻辑设备表(LUT,LogicalUnitTable)每个表目中包含:逻辑设备名、物理设备名和设备驱动程序的入口地址。6.5.4逻辑设备名到物理设备名映射的实现逻辑设备表的设置问题整个系统中只设置一张LUT。所有用户都使用不相同的逻辑设备名。在多用户环境下这通常是难以做到的,主要用于单用户系统中。每个用户设置一张LUT。用户登录时,为该用户建立一个进程,同时建立一张LUT,并将该表放入进程的PCB中。在多用户系统中,通常都配置系统设备表。6.6用户层的I/O软件6.6.1系统调用和库函数6.6.2假脱机(Spooling)系统6.6.1系统调用和库函数系统调用提供进程与操作系统之间的接口通常以汇编语言指令的形式提供;有些语言(如C,C++和Perl)已经取代了汇编语言而直接用于系统编程。每个系统调用关联一个数(系统调用表编号);查询系统调用表,以定位预定函数;调用预定函数返回状态和任意返回值;系统调用的实现对调用者是透明的。6.6.1系统调用和库函数系统调用6.6.1系统调用和库函数库函数在许多现代操作系统中,系统调用本身已经采用C语言编写,并以函数形式提供,所以在使用C语言编写的用户程序中,可以直接使用这些系统调用。6.6.2假脱机(SPOOLing)系统SPOOLing技术为了缓和CPU的高速性与I/O设备低速性间的矛盾。在多道程序环境下,其中的一道程序模拟脱机输入输出时的外围控制机功能。在主机的直接控制下,实现脱机输入、输出功能,外围操作与CPU对数据的处理同时进行。在联机情况下实现的同时外围操作称为SPOOLing(SimultaneausPeriphernalOperatingOn-Line),或称为假脱机操作。6.6.2假脱机(SPOOLing)系统SPOOLing系统的组成内存内存请求输入数据启动请求输出数据6.6.2假脱机(SPOOLing)系统SPOOLing系统特点提高了I/O的速度将独占设备改造为共享设备实现了虚拟设备功能6.6.2假脱机(SPOOLing)系统例:假脱机打印机系统获得空盘块挂入满盘块队列6.6.2假脱机(SPOOLing)系统SPOOLing技术仍被广泛使用网络文件传送先把文件送到网络SPOOLing目录,然后网络值班进程把它取出并传递到目标地址Internet电子邮件系统为了寄邮,调用电子邮件程序待发信存在SPOOLing中供以后传输注意:SPOOLing只提高设备利用率,缩短用户程序执行时间,并不提高CPU利用率6.7缓冲区管理6.7.1缓冲的引入6.7.2单缓冲区和双缓冲区6.7.3环形缓冲区6.7.4缓冲池(BufferPool)6.7.1缓冲的引入缓和CPU与I/O设备间速度不匹配的矛盾。数据到达速率与其离去速率不同减少对CPU的中断频率,放宽对CPU中断响应时间的限制。1位缓冲9.6Kb/s(a)中断CPU的频率为,每100s中断一次CPUCPU必须在100s内响应,否则数据会被冲掉8位缓冲寄存器送内存9.6Kb/s(b)中断CPU的频率降低为9.6Kb/86.7.1缓冲的引入解决数据粒度不匹配问题提高CPU和I/O设备之间的并行性提高系统的吞吐量和设备的利用率8位缓冲寄存器9.6Kb/s送内存(c)每800s中断一次CPU6.7.2单缓冲区和双缓冲区单缓冲区(SingleBuffer)输入设备,缓冲区均空闲C>T时,输入先结束;反之,计算先结束。因此,每块数据的处理时间为:max{C,T}+M6.7.2单缓冲区和双缓冲区双缓冲区(DoubleBuffer)输入设备,缓冲区2均空闲C>T时,输入先结束;反之,计算先结束。因此,每块数据的处理时间约为:max{C,T}例,两台机器间通信
只能实现单向的数据传输计算进程正在使用的缓冲区计算进程下一可用缓冲区输入进程下一可用空缓冲区6.7.3环形缓冲区环形缓冲区的引入当输入与输出速度基本匹配时,双缓冲能获得较好效果;当速度相差较大时,需要引入多个(大小相等)缓冲,组织成循环缓冲的形式环形缓冲区的组成NextiNextgCurrent6.7.3环形缓冲区6.7.3环形缓冲区环形缓冲区的使用Getbuf过程为计算进程和输入进程提供缓冲区,并移动指针Releasebuf过程当计算进程或输入使用完缓冲区后,调用过程将缓冲区释放进程同步——输入、计算进程并行Nexti指针追赶上Nextg指针输入进程速度大于计算进程,全部空缓冲区已满,无可用缓冲区,输入进程阻塞(系统受计算限制)Nextg指针追赶上Nexti指针计算进程速度大于输入进程,全部缓冲区空,无可用数据,计算进程阻塞(系统受I/O限制)6.7.4缓冲池(BufferPool)缓冲池的组成专用缓冲的利用率不高,与环形缓冲不同
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 黄金焕肤病因介绍
- 和解调解协议书6篇
- 2023车库租赁协议书七篇
- 土地流转工作协议书
- 足跟瘀斑病因介绍
- 萎缩性毛周角化病病因介绍
- 中考政治总复习基础知识梳理九年级全册第二单元了解祖国爱我中华
- 中小学教师教育政策法规知识408新教师培训省公开课全国赛课一等奖微课获奖
- (可行性报告)一专业建设可行性分析
- (2024)植物纤维模塑制品项目可行性研究报告模板立项审批(一)
- 股权合作协议范本三篇
- 2023年四川省眉山市公开招聘警务辅助人员(辅警)笔试专项训练题试卷(2)含答案
- 《田间试验》课件
- 【MOOC】概率论与数理统计-北京理工大学 中国大学慕课MOOC答案
- 人生课件路遥
- 2024年新疆中考化学真题【附答案】
- (2024年)知识产权全套课件(完整)
- 小学六年级数学100道题解分数方程
- 入团志愿书(2016版本)(可编辑打印标准A4) (1)
- 操作系统课程设计报告:Linux二级文件系统设计
- 阑尾炎病历模板
评论
0/150
提交评论