版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第六章输入输出系统6.1
I/O系统的功能、模型和接口6.2
I/O设备和设备控制器6.3
中断机构和中断处理程序6.4
设备驱动程序6.5
与设备无关的I/O软件6.6
用户层I/O软件6.7缓冲区管理6.8磁盘存储器的性能和调度6.1
I/O系的功能、模型和接口6.1.1I/O系统的基本功能1)隐藏物理设备的细节2)与设备无关性
用户命令只需提供逻辑设备名3)提高处理机和I/O设备的利用率
尽可能让CPU和I/O设备并行操作4)对I/O设备进行控制可编程I/O,中断I/O,DMA,通道I/O5)确保对设备的正确共享
独占设备、共享设备6)错误处理
临时性错误:重新操作永久性错误:向上层软件报告1.方便用户使用I/O设备2.提高CPU和I/O设备利用率3.方便用户共享设备
6.1.2I/O系统的层次结构和模型I/O软件的目标:
1)解决由于外部设备与CPU速度不匹配所引起的问题,提高主机和外设的并行工作能力,提高系统效率2)方便用户对设备的操作和管理1.I/O软件的层次结构(1)用户层软件:实现与用户交互的接口,用户可直接调用在用户层提供的、与I/O操作有关的库函数,对设备进行操作。
(2)设备独立性软件:负责实现与设备驱动器的统一接口、设备命名、设备的保护以及设备的分配与释放等,同时为设备管理和数据传送提供必要的存储空间。(3)设备驱动程序:与硬件直接相关,负责具体实现系统对设备发出的操作指令,驱动I/O设备工作的驱动程序。(4)中断处理程序:用于保存被中断进程的CPU环境,转入相应的中断处理程序进行处理,处理完后再恢复被中断进程的现场后返回到被中断进程。2.I/O系统中各种模块之间的层次视图1)I/O系统的上下接口
(1)I/O系统接口(2)软硬件接口
2)I/O系统分层6.1.3I/O系统接口1.块设备接口1)块设备:数据的存取和传输以数据块为单位,速度快可寻址2)隐藏磁盘二维结构
块接口将磁盘扇区从0到n-1编号3)将抽象命令映射为低层操作2.流设备接口
1)字符设备:数据的存取和传输以字符为单位,速度低不可寻址,多是独占设备需互斥共享
2)用put,get操作进行顺序存取
3)采用统一的in-control指令来管理字符设备3.网络通信接口6.2I/O设备和设备控制器6.2.1
I/O设备1.I/O设备的类型
I/O设备的性能指标:设备使用特性、数据传输速率、数据的传输单位、设备共享属性等。
1)按设备的使用特性分类第一类:存储设备(外存):存取速度慢,容量大价格便宜。
第二类:输入/输出设备:
输入设备:用来接收外部信息,如键盘、鼠标、扫描仪等。
输出设备:用于将计算机加工处理后的信息送向外部的设备,如打印机、绘图仪等。
交互式设备:集成上述两类设备,如显示器
2)按传输速率分类
低速设备:几个字节至数百个字节/S。如键盘、鼠标器、语音的输入和输出等设备。
中速设备:数千个字节至数十万个字节/S。如行式打印机、
激光打印机等。
高速设备:数百个千字节至千兆字节/S。如磁带机、磁盘机、光盘机等。
2.设备与控制器之间的接口1)数据信号线
用于在设备和设备控制器之间传送数据信号。2)控制信号线
由设备控制器向I/O设备发送控制信号时的通路。
规定了设备将要执行的操作,如读操作(指由设备向控制器传送数据)或写操作(从控制器接收数据),或执行磁头移动等操作。3)状态信号线用于传送指示设备当前状态的信号。
设备的当前状态有正在读(或写);设备已读(写)完成,并准备好新的数据传送。
6.2.2设备控制器1.设备控制器的基本功能
1)接收和识别命令
CPU可以向控制器发送多种不同的命令,设备控制器应能接收并识别这些命令。控制寄存器:用来存放接收的命令和参数,并对其命令进行译码。2)数据交换
CPU与控制器之间、控制器与设备之间的数据交换。在控制器中须设置数据寄存器。
3)标识和报告设备的状态控制器应记下设备的状态供CPU了解。状态寄存器:反映设备的某一种状态。4)地址识别系统中的每一个设备都有一个地址,设备控制器必须能够识别它所控制的每个设备的地址。
在控制器中应配置地址译码器。
5)数据缓冲
I/O设备的速率较低而CPU和内存的速率高,故在控制器中必须设置一缓冲器。
输出:缓冲器暂存由主机高速传来的数据;
输入:暂存从I/O设备送来的数据,待接收到一批数据后,再高速地传送给主机。6)差错控制
对由I/O设备传送来的数据进行差错检测。
若发现传送中出现了错误,CPU报告,重新传送。2.设备控制器的组成
1)设备控制器与处理机的接口
用于实现CPU与设备控制器之间的通信。
共有三类信号线:数据线、地址线和控制线。数据线:传输数据和设备状态信息地址线:传送给I/O逻辑进行地址译码控制线:传送控制命令2)设备控制器与设备的接口
在一个设备控制器上可以连接一个或多个设备。控制器中便有一个或多个设备接口,一个接口连接一台设备。
每个接口中都存在数据、控制和状态三种类型的信号。
控制器中的I/O逻辑根据处理机发来的地址信号去选择一个设备接口。
3)I/O逻辑
用于实现对设备的控制。
通过一组控制线与处理机交互:
(1)处理机利用该逻辑向控制器发送I/O命令;(2)I/O逻辑对收到的命令进行译码。6.2.3内存映像I/O6.2.4
I/O通道
1.I/O通道(I/OChannel)设备的引入
在CPU和设备控制器之间又增设了通道其主要目的:建立独立的I/O操作,使一些原来由CPU处理的I/O任务转由通道来承担进一步把CPU从繁杂的I/O任务中解脱出来。设置了通道后,CPU只需向通道发送一条I/O指令。通道在收到该指令后,便从内存中取出本次要执行的通道程序,然后执行该通道程序,仅当通道完成了规定的I/O任务后,才向CPU发中断信号。
I/O通道是一种特殊的处理机:能执行I/O指令,并通过通道(I/O)程序来控制I/O操作。
但I/O通道又与一般的处理机不同:
1.指令类型单一,主要局限于与I/O操作有关的指令;
2.通道没有自己的内存,通道与CPU共享内存。2.通道类型
1)字节多路通道(ByteMultiplexorChannel)按字节交叉方式工作,通常含有许多非分配型子通道,这些子通道按时间片轮转方式共享主通道。不适于连接高速设备。
2)数组选择通道(BlockSelectorChannel)
数据传送是按数组方式进行。
用于连接多台高速设备,但只含有一个分配型子通道:在一段时间内只能执行一道通道程序,某台设备占用了该通道后,便一直由它独占,即使是它无数据传送,通道被闲置,也不允许其它设备使用该通道,直至该设备传送完毕释放该通道。通道利用率很低。3)数组多路通道(BlockMultiplexorChannel)
采用多路复用技术,含有多个非分配型子通道,既具有很高的数据传输速率,又能获得令人满意的通道利用率。
广泛地用于连接多台高、中速的外围设备。
3.“瓶颈”问题解决“瓶颈”问题的最有效的方法:增加设备到主机间的通路而不增加通道6.3中断机构和中断处理程序6.3.1中断简介1.中断和陷入
1)中断:CPU对I/O设备发来的中断信号的一种响应。是由外部设备引起的,又称外中断。
2)陷入:由CPU内部事件引起的中断如非法指令、地址越界等。又称内中断。2.中断向量表和中断优先级
1)中断向量表:记录中断号及对应的中断处理程序入口地址
2)中断优先级:磁盘中断,打印机,键盘3.对多中断源处理方式
1)屏蔽中断2)嵌套中断6.3.2中断处理程序
1.测试是否有未响应的中断信号
CPU执行完当前指令后要测试是否有未响应的中断信号,若无则执行下个指令,否则停止当前进程执行转去执行中断处理程序。
2.保护被中断进程的CPU环境
由硬件自动将处理机状态字PSW和程序计数器(PC)中的内容,保存在中断保留区(栈)中。3.转入相应的设备处理程序
由处理机对各个中断源进行测试,以确定引起本次中断的I/O设备,然后将相应的设备中断处理程序的入口地址装入到程序计数器中,转向中断处理程序。4.中断处理
不同设备有不同的中断处理程序。首先判别中断是正常完成中断还是异常结束中断。
若是前者,中断程序便进行结束处理;
若是异常结束中断,则根据发生异常的原因做相应的处理。
5.恢复被中断进程的现场
将保存在中断栈中的被中断进程的现场信息取出,并装入到相应的寄存器中,包括该程序下一次要执行的指令的地址N+1、处理机状态字PSW。
处理机再执行本程序时,便从N+1处开始,最终返回到被中断的程序。6.4设备驱动程序6.4.1设备驱动程序概述(设备处理程序)是I/O进程与设备控制器之间的通信程序,常以进程的形式存在,故简称设备驱动进程。主要任务:
1.接收上层软件发来的抽象I/O要求,转换为具体要求后发送给设备控制器,启动设备去执行;
2.将由设备控制器发来的信号传送给上层软件。
1.设备驱动程序的功能
(1)接收由设备独立性软件发来的命令和参数,并将命令中的抽象要求转换为具体要求,例如,将磁盘块号转换为磁盘的盘面、磁道号及扇区号。
(2)检查用户I/O请求的合法性,了解I/O设备的状态,传递有关参数,设置设备的工作方式。
(3)发出I/O命令。若设备空闲立即启动完成操作;若忙则将请求者的请求块挂在设备队列上等待。
(4)及时响应由控制器或通道发来的中断请求,并根据其中断类型调用相应的中断处理程序进行处理。
补:(5)对于设置有通道的计算机系统,驱动程序还应能够根据用户的I/O请求,自动地构成通道程序。2.设备驱动程序的特点(了)3.设备处理方式(了)
1)为每一类设备设置一个进程,专门执行这一类设备的I/O操作
2)整个系统设置一个I/O进程,专门执行所有各类设备的I/O操作
3)只为各类设备设置相应驱动程序6.4.2设备驱动程序的处理过程
不同类型的设备应有不同的设备驱动程序。
大体上分成两部分:
1)驱动I/O设备工作的驱动程序;
2)设备中断处理程序,以处理I/O完成后的工作。设备驱动程序的主要任务是启动指定设备。但在启动之前,还必须完成必要的准备工作,如检测设备状态是否为“忙”等。在完成所有的准备工作后,才最后向设备控制器发送一条启动命令。
1)将抽象要求转换为具体要求通常在每个设备控制器中都含有若干个寄存器,分别用于暂存命令、数据和参数等。
例如,将抽象要求中的盘块号转换为磁盘的盘面、
磁道号及扇区。这一转换工作只能由驱动程序来完成,
在OS中只有驱动程序才同时了解抽象要求和设备控制器中的寄存器情况;也只有它才知道命令、
数据和参数应分别送往哪个寄存器。
2)检查I/O请求的合法性对于任何输入设备,都是只能完成一组特定的功能,若该设备不支持这次的I/O请求,则认为这次I/O请求非法。系统应予以拒绝。3)读出和检查设备的状态在启动某个设备进行I/O操作时,其前提条件应是该设备正处于空闲状态。否则只能等待。
4)传送必要的参数
例如在启动磁盘进行读/写之前,应先将本次要传送的字节数和数据应到达的主存始址,送入控制器的相应寄存器中。
5)工作方式的设置有些设备可具有多种工作方式,典型情况是利用RS-232接口进行异步通信。在启动该接口之前,应先按通信规程设定参数:波特率、奇偶校验方式、停止位数目及数据字节长度等。
6)启动I/O设备在完成上述各项准备工作之后,驱动程序可以向控制器中的命令寄存器传送相应的控制命令。驱动程序发出I/O命令后,基本的I/O操作是在设备控制器的控制下进行的。
此时驱动(程序)进程把自己阻塞起来,直到中断到来时才将它唤醒。6.4.3
I/O控制方式
1.程序I/O方式
早期无中断机构,处理机对I/O设备的控制采取程序I/O方式,或称为忙—等待方式:处理机向控制器发出一条I/O指令启动输入设备输入数据时,把状态寄存器中的忙/闲标志busy置为1,然后不断地循环测试busy。
当busy=1时,表示输入机尚未输完一个字(符),处理机应继续对该标志进行测试;
当busy=0,表明输入机已将输入数据送入控制器的数据寄存器中。2中断驱动I/O控制方式
现代计算机系统中,广泛采用中断驱动(InterruptDriven)方式:当某进程要启动某个I/O设备工作时,便由CPU向相应的设备控制器发出一条I/O命令,然后立即返回继续执行原来的任务。设备控制器于是按照该命令的要求去控制指定I/O设备。此时,CPU与I/O设备并行操作。
一旦数据进入数据寄存器,控制器便通过控制线向CPU发送中断信号,由CPU检查输入过程中是否出错,若无错,便向控制器发送取走数据的信号,然后再通过控制器及数据线将数据写入内存指定单元中。
在I/O设备输入每个数据的过程中,由于无需CPU干预,因而可使CPU与I/O设备并行工作。仅当输完一个数据时,才需CPU花费极短的时间去做些中断处理。CPU和I/O设备都处于忙碌状态,从而提高了整个系统的资源利用率及吞吐量。3.直接存储器访问(DMA)I/O控制方式
1)DMA(DirectMemoryAccess)控制方式的引入虽然中断驱动I/O比程序I/O方式更有效,但须注意,它仍是以字(节)为单位进行I/O的,每当完成一个字(节)的I/O时,控制器便要向CPU请求一次中断。
中断驱动I/O方式时的CPU是以字(节)为单位进行干预的。如果将这种方式用于块设备的I/O,显然是极其低效的。例如,为了从磁盘中读出1KB的数据块,需要中断CPU1K次。为了进一步减少CPU对I/O的干预而引入了直接存储器访问方式。该方式的特点是:
(1)数据传输的基本单位是数据块,即在CPU与I/O设备之间,每次传送至少一个数据块;
(2)所传送的数据是从设备直接送入内存的,或者相反;
(3)仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在控制器的控制下完成的。可见,DMA方式较之中断驱动方式,又是成百倍地减少了CPU对I/O的干预,进一步提高了CPU与I/O设备的并行操作程度。
2)DMA控制器的组成
DMA控制器由三部分组成:主机与DMA控制器的接口;DMA控制器与块设备的接口;I/O控制逻辑。
主要介绍主机与控制器之间的接口。四类寄存器:(1)命令/状态寄存器(CR):接收CPU发来的I/O命令,或有关控制信息,或设备的状态。(2)内存地址寄存器(MAR)。在输入时,它存放把数据从设备传送到内存的起始目标地址;在输出时,它存放由内存到设备的内存源地址。
(3)数据寄存器(DR):暂存从设备到内存,或从内存到设备的数据。(4)数据计数器(DC)。存放本次CPU要读或写的字(节)数。
3)DMA工作过程以从磁盘读入数据为例
CPU向磁盘控制器发送一条读命令;
该命令被送到其中的命令寄存器(CR)中;
数据读入的内存起始目标地址送入内存地址寄存器(MAR)中;
要读数据的字(节)数则送入数据计数器(DC)中;
将磁盘中的源地址送至DMA控制器的I/O控制逻辑;
启动DMA控制器进行数据传送;
此后,整个数据传送过程便由DMA控制器进行控制。
当DMA控制器已从磁盘中读入一个字(节)的数据并送入数据寄存器(DR)后,再挪用一个存储器周期,将该字(节)传送到MAR所指示的内存单元中。接着便对MAR内容加1,将DC内容减1。若减1后DC内容不为0,表示传送未完,便继续传送下一个字(节);否则,由DMA控制器发出中断请求。图5-9是DMA方式的工作流程。4.I/O通道控制方式
1)I/O通道控制方式的引入虽然DMA方式比起中断方式来已经显著地减少了CPU的干预,即已由以字(节)为单位的干预减少到以数据块为单位的干预,但CPU每发出一条I/O指令,也只能去读(或写)一个连续的数据块。而当我们需要一次去读多个数据块且将它们分别传送到不同的内存区域,或者相反时,则须由CPU分别发出多条I/O指令及进行多次中断处理才能完成。
I/O通道方式是DMA方式的发展,它可进一步减少CPU的干预,即把对一个数据块的读(或写)为单位的干预减少为对一组数据块的读(或写)及有关的控制和管理为单位的干预。同时,又可实现CPU、通道和I/O设备三者的并行操作,从而更有效地提高整个系统的资源利用率。例如,当CPU要完成一组相关的读(或写)操作及有关控制时,只需向I/O通道发送一条I/O指令,以给出其所要执行的通道程序的首址和要访问的I/O设备,通道接到该指令后,通过执行通道程序便可完成CPU指定的I/O任务。
2.通道程序通道是通过执行通道程序,并与设备控制器共同实现对I/O设备的控制的。通道程序是由一系列通道指令(或称为通道命令)所构成的。通道指令与一般的机器指令不同,在它的每条指令中都包含下列诸信息:
(1)操作码。操作码规定了指令所执行的操作,如读、写、控制等操作。
(2)内存地址。内存地址标明字符送入内存(读操作)和从内存取出(写操作)时的内存首址。
(3)计数。该信息表示本条指令所要读(或写)数据的字节数。
(4)通道程序结束位P。该位用于表示通道程序是否结束。P=1表示本条指令是通道程序的最后一条指令。
(5)记录结束标志R。R=0表示本通道指令与下一条指令所处理的数据是同属于一个记录;R=1表示这是处理某记录的最后一条指令。
下面示出了一个由六条通道指令所构成的简单的通道程序。该程序的功能是将内存中不同地址的数据写成多个记录。其中,前三条指令是分别将813~892单元中的80个字符和1034~1173单元中的140个字符及5830~5889单元中的60个字符写成一个记录;第4条指令是单独写一个具有300个字符的记录;第5、6条指令共写含500个字符的记录。6.5与设备无关的I/O软件为了提高OS的可适应性和可扩展性,在现代OS中都毫无例外地实现了设备独立性,也称为设备无关性。6.5.1与设备无关软件的基本概念
1.早期以物理设备名使用设备
2.引入逻辑设备名
逻辑设备、物理设备
使用逻辑设备名的优点:1)设备分配时的灵活性
2)易于实现I/O重定向3.逻辑设备名到物理设备名的转换(LUT表)6.5.2与设备无关的软件
为了实现设备独立性,必须再在驱动程序之上设置一层软件,称为设备独立性软件。
设备独立性软件的主要功能:执行所有设备公有操作。
①向用户层(或文件层)软件提供统一接口。无论何种设备,它们向用户所提供的接口应该是相同的。例如,对各种设备的读操作,在应用程序中都使用read;而对各种设备的写操作,也都使用write。②缓冲管理③差错控制:暂时性错误、永久性错误。由于在I/O操作中的绝大多数错误都与设备无关,故主要由设备驱动程序处理,而设备独立性软件只处理那些设备驱动程序无法处理的错误;④对独立设备的分配与回收;⑤提供独立于设备的逻辑块6.5.3设
备
分
配
1.设备分配中的数据结构
1)设备控制表(DCT)系统为每一个设备都配置了一张设备控制表,用于记录本设备的情况。
(1)设备队列队首指针。凡因请求本设备而未得到满足的进程,其PCB都应按照一定的策略排成一个队列,称该队列为设备请求队列或简称设备队列。其队首指针指向队首PCB。在有的系统中还设置了队尾指针。
(2)设备状态。当设备自身正处于使用状态时,应将设备的忙/闲标志置“1”。若与该设备相连接的控制器或通道正忙,也不能启动该设备,此时则应将设备的等待标志置“1”。
(3)与设备连接的控制器表指针。该指针指向该设备所连接的控制器的控制表。在设备到主机之间具有多条通路的情况下,一个设备将与多个控制器相连接。此时,在DCT中还应设置多个控制器表指针。
(4)重复执行次数。由于外部设备在传送数据时,较易发生数据传送错误,因而在许多系统中,如果发生传送错误,并不立即认为传送失败,而是令它重新传送,并由系统规定设备在工作中发生错误时应重复执行的次数。在重复执行时,若能恢复正常传送,则仍认为传送成功。仅当屡次失败,致使重复执行次数达到规定值而传送仍不成功时,才认为传送失败。
2)控制器控制表、通道控制表和系统设备表
(1)控制器控制表(COCT)。
(2)通道控制表(CHCT)。
(3)系统设备表(SDT)系统范围的数据结构,其中记录了系统中全部设备的情况。2.设备分配时应考虑的因素
①
设备的固有属性;②
设备分配算法;③
设备分配时的安全性;④
设备独立性。1)设备的固有属性第一种独占性:采用独享分配策略
第二种共享性:可同时分配给多个进程使用,此时须注意对这些进程访问该设备的先后次序进行合理的调度。
第三种可虚拟设备:一台可虚拟设备是可共享的设备,可以将它同时分配给多个进程使用,并对这些访问该(物理)设备的先后次序进行控制。
2)设备分配算法
(1)先来先服务。将这些进程排成一个设备请求队列,设备分配程序总是把设备首先分配给队首进程。
(2)优先级高者优先。将优先权高的进程排在设备队列前面,对于优先级相同的I/O请求,则按先来先服务原则排队。
3)设备分配中的安全性
1)安全分配方式每当进程发出I/O请求后,便进入阻塞状态,直到其I/O操作完成时才被唤醒。这种分配方式已经摒弃了造成死锁的四个必要条件之一的“请求和保持”条件,从而使设备分配是安全的。其缺点是进程进展缓慢,即CPU与I/O设备是串行工作的。
2)不安全分配方式进程在发出I/O请求后仍继续运行,需要时又发出第二个I/O请求、
第三个I/O请求等。仅当进程所请求的设备已被另一进程占用时,请求进程才进入阻塞状态。3.独占设备的分配程序
1)基本的设备分配程序
(1)分配设备首先根据I/O请求中的物理设备名,查找系统设备表(SDT),从中找出该设备的DCT,再根据DCT中的设备状态字段,可知该设备是否正忙。若忙,便将请求I/O进程的PCB挂在设备队列上;否则,便按照一定的算法来计算本次设备分配的安全性。如果不会导致系统进入不安全状态,便将设备分配给请求进程;否则,仍将其PCB插入设备等待队列。
(2)分配控制器在系统把设备分配给请求I/O的进程后,再到其DCT中找出与该设备连接的控制器的COCT,从COCT的状态字段中可知该控制器是否忙碌。若忙,便将请求I/O进程的PCB挂在该控制器的等待队列上;否则,便将该控制器分配给进程。
(3)分配通道在该COCT中又可找到与该控制器连接的通道的CHCT,再根据CHCT内的状态信息,可知该通道是否忙碌。若忙,便将请求I/O的进程挂在该通道的等待队列上;否则,将该通道分配给进程。只有在设备、
控制器和通道三者都分配成功时,这次的设备分配才算成功。然后,便可启动该I/O设备进行数据传送。
2.设备分配程序的改进
设备分配程序缺点:
①
进程是以物理设备名来提出I/O请求的;
②
采用的是单通路的I/O系统结构,容易产生“瓶颈”。为此,应从以下两方面对基本的设备分配程序加以改进。
1)增加设备的独立性进程应使用逻辑设备名请求I/O。2)考虑多通路情况采用多通路的I/O系统结构。只要有一个控制器(通道)可用,系统便可将它分配给进程。
6.5.4逻辑设备名到物理设备名映射的实现
1.逻辑设备表LUT
用于将应用程序使用的逻辑设备名映射为物理设备名。每个表目中包含了三项:逻辑设备名、物理设备名和设备驱动程序的入口地址。
2.LUT的设置问题
LUT的设置可采取两种方式:
第一种方式是在整个系统中只设置一张LUT。
由于系统中所有进程的设备分配情况都记录在同一张LUT中,因而不允许在LUT中具有相同的逻辑设备名,这就要求所有用户都不使用相同的逻辑设备名。
这种方式主要用于单用户系统中。
第二种方式是为每个用户设置一张LUT。故此时的逻辑设备表可以采用上图
(b)中的格式。
6.6用户层的I/O软件6.6.1系统调用与库函数
一般而言,大部分的I/O软件都在操作系统内部,但仍有一小部分在用户层,包括与用户程序链接在一起的库函数。
用户层软件必须通过一组系统调用来取得操作系统服务。
用户程序通过调用对应的库函数使用系统调用。库函数与调用程序连接在一起,包含在运行时装入在内存的二进制程序中,如C语言中的库函数write等,这些库函数的集合也是I/O系统的组成部分。6.6.2
假脱机系统
1.假脱机技术
早期:脱机输入、脱机输出技术:利用专门的外围控制机,将低速I/O设备上的数据传送到高速磁盘上;或者相反。现在:利用多道程序其中的一道程序,来模拟脱机输入时的外围控制机功能,把低速I/O设备上的数据传送到高速磁盘上;再用另一道程序来模拟脱机输出时外围控制机的功能,把数据从磁盘传送到低速输出设备上。
可在主机的直接控制下,实现脱机输入、输出功能。这种在联机情况下实现的同时外围操作称为SPOOLing,或称为假脱机操作。
2.SPOOLing系统的组成
SPOOLing系统主要有以下三部分:
(1)输入井和输出井。磁盘输入井:暂存I/O设备输入的数据;输出井:暂存用户程序的输出数据。
(2)输入缓冲区和输出缓冲区。内存
输入缓冲区:暂存输入数据,以后再传送到输入井。
输出缓冲区:暂存输出数据,以后再传送给输出设备。
(3)输入进程SPi和输出进程SPo。利用两个进程来模拟脱机I/O时的外围控制机。
进程SPi模拟脱机输入时的外围控制机:将用户要求的数据从输入机通过输入缓冲区再送到输入井,当CPU需要输入数据时,从输入井读入内存;
进程SPo模拟脱机输出时的外围控制机:把用户要求输出的数据先从内存送到输出井,待输出设备空闲时,再将输出井中的数据经过输出缓冲区送到输出设备上。
3.SPOOLing系统的特点
SPOOLing系统具有如下主要特点:
(1)提高了I/O的速度。
(2)将独占设备改造为共享设备。
(3)实现了虚拟设备功能。
4.假脱机打印机系统打印机属于独占设备,利用SPOOLing技术可改为共享设备,从而提高设备的利用率,也方便了用户。
当用户进程请求打印输出时,SPOOLing系统并不真正立即把打印机分配给该用户进程,而是做两件事:
①
由输出进程在输出井中为之申请一个空闲磁盘块区,并将要打印的数据送入其中;
②
输出进程再为用户进程申请一张空白的用户请求打印表,并将用户的打印要求填入其中,再将该表挂到请求打印队列上。
如果还有进程要求打印输出,系统仍可接受该请求,也同样为该进程做上述两件事。
6.7缓
冲
管
理
6.7.1缓冲的引入
(1)缓和CPU与I/O设备间速度不匹配的矛盾。
事实上,凡在数据到达速率与其离去速率不同的地方,都可设置缓冲区,以缓和它们之间速率不匹配的矛盾。
众所周知,CPU的运算速率远远高于I/O设备的速率。
(2)减少对CPU中断频率,放宽对CPU中断响应时间的限制。
(3)提高CPU和I/O设备之间的并行性。缓冲的引入可显著地提高CPU和I/O设备间的并行操作程度,提高系统的吞吐量和设备的利用率。例如,在CPU和打印机之间设置了缓冲区后,便可使CPU与打印机并行工作。
6.7.2单缓冲和双缓冲
1.单缓冲(SingleBuffer)在单缓冲情况下,每当用户进程发出一I/O请求时,操作系统便在主存中为之分配一缓冲区,假定从磁盘把一块数据输入到缓冲区的时间为T,操作系统将该缓冲区中的数据传送到用户区的时间为M,而CPU对这一块数据处理(计算)的时间为C。系统对每一块数据的处理时间表示为Max(C,T)+M。
2.双缓冲(DoubleBuffer)
也称为缓冲对换(BufferSwapping)。在设备输入时,先将数据送入第一缓冲区,装满后便转向第二缓冲区。6.7.3循环缓冲
1.循环缓冲的组成
(1)多个缓冲区,每个缓冲区的大小相同。分为三种类型空缓冲区R:装输入数据;满缓冲区G;现行工作缓冲区C;
(2)多个指针。作为输入的缓冲区可设置三个指针:用于指示计算进程下一个可用缓冲区G的指针Nextg、指示输入进程下次可用的空缓冲区R的指针Nexti,以及用于指示计算进程正在使用的缓冲区C的指针Current。
2.循环缓冲区的使用
(1)Getbuf过程。(2)Releasebuf过程。当计算进程把C缓冲区中的数据提取完毕时,便调用Releasebuf过程,将缓冲区C释放。此时,把该缓冲区由当前(现行)工作缓冲区C改为空缓冲区R。类似地,当输入进程把缓冲区装满时,也应调用Releasebuf过程,将该缓冲区释放,并改为G缓冲区。
3.进程同步使用输入循环缓冲,可使输入进程和计算进程并行执行。相应地,指针Nexti和指针Nextg将不断地沿着顺时针方向移动,这样就可能出现下述两种情况:
(1)Nexti指针追赶上Nextg指针。
输入数据的速度大于计算进程处理数据的速度,称为系统受计算限制。
(2)Nextg指针追赶上Nexti指针。
输入数据的速度低于计算进程处理数据的速度称为系统受I/O限制。
6.7.4缓冲池
1.缓冲池的组成
①空(闲)缓冲区;②装满输入数据的缓冲区;③
装满输出数据的缓冲区。三个队列:
(1)空缓冲队列emq。由空缓冲区所链成的队列。
(2)输入队列inq。由装满输入数据的缓冲区所链成的队列(3)输出队列outq。由装满输出数据的缓冲区链成的队列四种工作缓冲区:
①
用于收容输入数据的工作缓冲区;②
用于提取输入数据的工作缓冲区;
③
用于收容输出数据的工作缓冲区;
④
用于提取输出数据的工作缓冲区。
2.Getbuf过程和Putbuf过程
(1)Addbuf(type,number)过程。该过程用于将由参数number所指示的缓冲区B挂在type队列上。
(2)Takebuf(type)过程。该过程用于从type所指示的队列的队首摘下一个缓冲区。为使诸进程能互斥地访问缓冲池队列,可为每一队列设置一个互斥信号量MS(type)。此外,为了保证诸进程同步地使用缓冲区,又为每个缓冲队列设置了一个资源信号量RS(type)。既可实现互斥又可保证同步的Getbuf过程和Putbuf过程
3.缓冲区的工作方式缓冲区可以工作在收容输入、提取输入、收容输出和提取输出四种工作方式下,如图5-15所示。
(1)收容输入。在输入进程需要输入数据时,便调用Getbuf(emq)过程,从空缓冲队列emq的队首摘下一空缓冲区,把它作为收容输入工作缓冲区hin。然后,把数据输入其中,装满后再调用Putbuf(inq,hin)过程,将该缓冲区挂在输入队列inq上。
(2)提取输入。当计算进程需要输入数据时,调用Getbuf(inq)过程,从输入队列inq的队首取得一个缓冲区,作为提取输入工作缓冲区(sin),计算进程从中提取数据。计算进程用完该数据后,再调用Putbuf(emq,sin)过程,将该缓冲区挂到空缓冲队列emq上。
(3)收容输出。当计算进程需要输出时,调用Getbuf(emq)过程从空缓冲队列emq的队首取得一个空缓冲区,作为收容输出工作缓冲区hout。当其中装满输出数据后,又调用Putbuf(outq,hout)过程,将该缓冲区挂在outq末尾。
(4)提取输出。由输出进程调用Getbuf(outq)过程,从输出队列的队首取得一装满输出数据的缓冲区,作为提取输出工作缓冲区sout。在数据提取完后,再调用Putbuf(emq,sout)过程,将该缓冲区挂在空缓冲队列末尾。
6.8磁盘存储器的管理
6.8.1磁盘性能简述
1.数据的组织和格式物理盘片、存储面(surface)、磁道(track)、扇区(sectors)又叫盘块(或数据块)一个10GB容量的磁盘,有8个双面可存储盘片,共16个存储面(盘面),每面有16383个磁道(也称柱面),63个扇区。
为了在磁盘上存储数据,必须先将磁盘低级格式化。每条磁道含有30个固定大小的扇区,每个扇区容量为600个字节,其中512个字节存放数据,其余的用于存放控制信息。每个扇区包括两个字段:
(1)标识符字段,其中一个字节的SYNCH具有特定的位图像,作为该字段的定界符,利用磁道号、磁头号及扇区号三者来标识一个扇区;CRC字段用于段校验。
(2)数据字段,其中可存放512个字节的数据。
2.磁盘的类型
硬盘和软盘、单片盘和多片盘、固定头磁盘和活动头(移动头)磁盘等。
1)固定头磁盘这种磁盘在每条磁道上都有一读/写磁头,所有的磁头都被装在一刚性磁臂中。
通过这些磁头可进行并行读/写,主要用于大容量磁盘上。
2)移动头磁盘
每一个盘面仅配有一个磁头,也被装入磁臂中。
磁头必须能移动以进行寻道,仅能以串行方式读/写,I/O速度较慢,广泛应用于中小型磁盘设备中。
在微型机上配置的温盘和软盘都采用移动磁头结构。
3.磁盘访问时间
1)寻道时间Ts指把磁臂(磁头)移动到指定磁道上所经历的时间。是启动磁臂的时间s与磁头移动n条磁道花费时间之和,即
Ts=m×n+s
其中,m是一常数,与磁盘驱动器的速度有关。对于一般磁盘,m=0.2;对于高速磁盘,m≤0.1。
2)旋转延迟时间Tr指定扇区移动到磁头下面所经历的时间。
不同的磁盘类型旋转速度至少相差一个数量级,如软盘为300r/min,硬盘一般为7200~15000r/min,甚至更高。
磁盘旋转延迟时间:如旋转速度为15000r/min,每转需时4ms,则平均旋转延迟时间Tr为2ms。
3)传输时间Tt
把数据从磁盘读出或向磁盘写入
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖南省长沙市师大附中教育集团第十2025-2026学年中考复习全程精练模拟卷(全国卷)数学试题含解析
- 脊椎骨折患者的职业康复与重返工作
- 山东南山集团东海外国语校2026年初三下学期第三次验收物理试题理试卷含解析
- 江苏省溧水区重点中学2026届初三期中考试数学试题试卷含解析
- 河北省石家庄高邑县联考2026年初三下学期第一次月考(数学试题-文)试卷含解析
- 河南省安阳市六十三中重点达标名校2026年初三下学期5月适应性考试物理试题含解析
- 福建省泉州2025-2026学年初三年级物理试题二模试题含解析
- 2026年浙江省绍兴市诸暨市浣江教育集团中考物理试题仿真卷:物理试题试卷(3)含解析
- 张家港市2025-2026学年初三考前适应性测试物理试题含解析
- 市场研究深度分析:2026年中国风电运维行业市场全景调查及投资前景预测报告
- 2026湖南张家界市桑植县招聘城市社区专职工作者20人考试参考试题及答案解析
- 2025年国家保安员资格证考试题库+答案
- (新教材)2026年春期人教版三年级下册数学教学计划+教学进度表
- (正式版)HGT 22820-2024 化工安全仪表系统工程设计规范
- 大学专业排名证明(模板)
- 2023版思想道德与法治专题4 继承优良传统 弘扬中国精神 第2讲 做新时代的忠诚爱国者
- 林义《社会保险基金管理》(第2版)笔记和课后习题详解
- 2023年安徽汽车职业技术学院单招职业适应性测试题库及答案解析
- 拉丁舞比赛服饰装饰元素的演变,服装设计论文
- YY/T 0698.2-2022最终灭菌医疗器械包装材料第2部分:灭菌包裹材料要求和试验方法
- 二次函数中几何图形的最值问题课件
评论
0/150
提交评论