1、1I/O SYSTEMS2n计算机系统的一个重要组成部分是I/O系统。nI/O系统包括:输入设备 输出设备 设备控制器 I/O通道或I/O处理机n设备管理的对象主要是:I/O设备 设备控制器 I/O通道 3n设备管理的基本任务是:完成用户提出的I/O请求,提高I/O速率,提高I/O设备的利用率。n设备管理的主要功能有:缓冲区管理 设备分配 设备处理 虚拟设备 实现设备独立性n设备管理是OS中最繁杂且与硬件最紧密相关的部分。 4本章总览n OS在 I/O方面的功能是管理和控制 I/O操作 和I/O设备。n I/O技术表现出两大相冲突的发展趋势:l硬件接口的标准化程度的提高l设备类型的更多样化的高
2、速发展 n 基本的I/O硬件像接口,总线,设备控制器 技术的发展顺应了I/O设备的广泛变化。 n 操作系统内核用各种设备驱动模块来组织 I/O子系统结构 。n问题:性能和复杂。5设备管理的目的和功能 n外设管理目的l提高效率:提高I/O访问效率,匹配CPU和多种不同处理速度的外设。l方便使用:方便用户使用,对不同类型的设备统一使用方法,协调对设备的并发使用。l方便控制:方便OS内部对设备的控制:增加和删除设备,适应新的设备类型。6设备管理的目的和功能 n外设管理功能l设备分配和释放:使用设备前,需要分配设备和相应的通道、控制器。l设备的访问和控制:包括并发访问和差错处理。lI/O缓冲和调度:目
3、标是提高I/O访问效率(主要是磁盘)。7891011125.1 I/O系统 I/O系统的结构13A typical PC bus structure14155.1.1 I/O设备n I/O设备的类型繁多,从OS观点看,其重要的性 能指标有:数据传输速率、数据的传输单位、设备共享属性等。n 按传输速率分类 低速设备 典型设备有:键盘、 鼠标器、语音输入和输出等。 中速设备 典型设备有:行式打印机、激光打印机等。 高速设备 典型设备有:磁带机、磁盘机、光盘机等。1.I/O设备的类型16n 按信息交换的单位分类 块设备: 这类设备用于存储信息。 属于有结构设备。 典型的块设备是磁盘, 每个盘块的大小
4、 为 512 B4 KB 。传输速率较高,可寻址即对它可随机地读 / 写任一块;磁盘设备的 I/O 常采用 DMA 方式。 字符设备: 用于数据的输入和输出。 其基本单位是字符, 故称为字符设备。 n按设备的共享属性分类按设备的共享属性分类 独占设备 共享设备 虚拟设备17n设备与控制器之间的接口l数据信号l控制信号l状态信号2.设备与控制器之间的接口通常,设备并不直接与CPU进行通信, 而是与设备控制器通信。因此, 在I/O设备中应含有与设备控制器间的接口。在该接口中有三种类型的信号各对应一条信号线。18缓冲转换器控制逻辑信号数据数据信号线状态信号线控制信号线至设备控制器I/O 设备图5-1
5、 设备与控制器间的接口控制信号线:作为设备控制器向I/O设备发送控制信号时的通路。 该信号规定了设备将要执行的操作: 读操作(指由设备向控制器传送数据) 写操作(从控制器接收数据)数据信号线:用于在设备和设备控制器之间传送数据信号。输入设备:外界输入的信号经转换器转换后形成的数据,通常先送入缓冲器中,当数据量达到一定的比特数后,再从缓冲器通过一组数据信号线传送给设备控制器。输出设备:将从设备控制器经过数据信号线传送来的一批数据先暂存于缓冲器中,经转换器作适当转换后,再逐个字符地输出。状态信号线:用于传送指示设备当前状态的信号。 设备的当前状态有: 正在读(写) 设备已读(写)完成,并准备好新的
6、数据传送。195.1.2 设备控制器n设备控制器是计算机中的一个实体,其主要职责是控制一个或多个I/O设备,以实现I/O设备和计算机之间的数据交换。n它是CPU与I/O设备间的接口,它接收从CPU发来的命令,并去控制I/O设备工作,使处理机从繁杂的设备控制事务中解脱出来。n它是一个可编址的设备,当它仅控制一个设备时,它只有一个唯一的设备地址;若控制多个设备时,则应含有多个设备地址,并使每一个设备地址对应一个设备。205.1.2 设备控制器n它可分为两类:控制字符设备的控制器 控制块设备的控制器n 设备控制器的基本功能 书P162l接收和识别命令 l数据交换l设备状态的了解和报告l地址识别l数据
7、缓冲l差错控制21n设备控制器的组成 由于设备控制器位于CPU与设备之间,它既要与CPU通信,又要与设备通信,还应具有按照CPU所发来的命令区控制设备工作的功能。因此有以下三部分组成:l控制器与处理机接口 该接口用于实现CPU与设备控制器之间的通信。l控制器与设备接口 可以连接一个或多个设备。在每个接口中都存在数据、控制和状态三种类型的信号。控制器中的I/O逻辑根据处理机发来的地址信号去选择一个设备接口。22数据寄存器控制/状态寄存器数据线I/O逻辑控制器与设备接口1控制器与设备接口i数据状态控制数据状态控制地址线控制线CPU与控制器接口控 制 器 与 设 备 接 口图5-2 设备控制器的组成
8、 l I/O逻辑I/O逻辑用于实现对设备的控制:它通过一组控制线与处理机交互, 处理机利用该逻辑向控制器发送I/O命令; I /O逻辑对收到的命令进行译码。每当 CPU要启动一个设备时,一方面将启动命令发送给控制器; 另一方面有通过地址线把地址发送给控制器,由控制器的I/O逻辑对收到的地址进行译码,再根据所译出的命令对所选设备进行控制。235.1.3 I/O通道n在CPU与I/O设备之间增加了设备控制器后,已能大大减少CPU对I/O的干预,但当主机所配置的外设很多时,CPU的负担仍然很重。为此,在CPU和设备控制器之间又增设了I/O通道。n其主要目的是为了建立独立的I/O操作,不仅使数据的传送
9、能独立于CPU,而且I/O操作的组织、管理及结束处理尽量独立,以保证CPU有更多的时间进行数据处理。n即设置I/O通道的目的是使一些原来由CPU处理的I/O任务转由通承担,从而把CPU从繁杂的I/O任务中解脱出来。n设置了通道后,CPU只需向通道发送一条I/O指令。通道收到该指令后,便从内存中取出本次要执行的通道程序,然后执行该通道程序;仅当通道完成了规定的I/O任务后,才向CPU发中断信号。24nI/O通道是一种特殊的处理机,具有执行I/O指令的能力。n通过执行通道(I/O)程序来控制I/O操作。n其指令类型单一主要局限于与I/O操作有关的指令n通道没有自己的内存,通道所执行的通道程序是放在
10、主机的内存中的。25通道类型n字节多路通道 一种按字节交叉方式工作的通道。它通常含有许多非分配型子通道, 其数量从几十到几百个,每一个子通道连接一台I/O设备,并控制该设备的I/O操作。这些子通道按时间片轮转方式共享主通道:当第一个子通道控制其I/O设备完成一个字节的交换后,便立即腾出主通道,让给第二个子通道使用;当所有子通道轮转一周后,重又返回由第一个子通道去使用主通道。这样,只要字节多路通道扫描每个子通道的速率足够快,而连接到子通道上的设备的速率不是太高时,便不致丢失信息。控制器A控制器B控制器C控制器D控制器NA1A2A3子通道AB1B2B3子通道BC1C2C3子通道CN1N2N3子通道
11、NA1B1C1 A2B2C2设 备26n数组选择通道l字节多路通道不适合连接高速设备l数组选择通道可以连接多台高速设备l该通道只含有一个分配型子通道l这种通道的利用率很低n数组多路通道l上面两种通道技术的结合l有多个非分配型子通道l该通道能被广泛地用于连接多台高、中速的外围设备l具有很高的数据传输速率,又能获得令人满意的通道利用率27瓶颈问题设备1设备2设备3设备4设备5设备6设备7控制器1控制器2控制器3控制器4通道1通道2存储器通道价格昂贵,通道数量势必减少。这往往又使它成了I/O的瓶颈,从而造成整个系统吞吐量的下降。假设设备1至设备4是四个磁盘,为了启动磁盘4,必须用通道1和控制2;但若
12、这两者已被其他设备占用,必然无法启动磁盘4。28瓶颈问题的解决I/O 设备控制器1控制器2通道 1通道 2存储器I/O 设备I/O 设备I/O 设备解决方法:增加设备到主机间的通路而不增加通道。就是把一个设备连接到多个控制器上,而一个控制器又连接到多个通道上。图中的设备1、2、3、4都有四条通往存储器的通路。多通路方式不仅解决了瓶颈问题,而且提高了系统的可靠性。295.1.4 总线系统n总线是许多信号线的集合,它是微型计算机芯片间、各部件间和外部设备间相互进行信息或数据交换的通路。由于计算机内部定向的信息流和数据流在总线中的流动,就形成了计算机的各种操作。n常见的系统总线标准总线标准有ISA、
13、EISA、PCI等总线 30总线的主要技术指标n总线数据传输速率 单位时间内总线上传送的数据量,即每钞钟传送Mb的最大稳态数据传输率。 总线数据传输速率总线的工作频率*总线的位宽/8 。n总线的带宽总线的带宽 总线的带宽指的是总线能同时传送的二进制数据的位数,或数据总线的位数,即32位、64位等总线宽度的概念。n总线的工作频率总线的工作频率 总线的工作时钟频率以MHZ为单位,工作频率越高,总线工作速度越快,总线传输速率越高。31ISA和EISA总线n80286微机的总线。带宽为8bit,最高传输速率为2Mb/s,可以连接12台外部设备。n扩展ISA即EISA总线:带宽16位。传输速率高达32M
14、b/s,可以连接12台外部设备。32局部总线n局部总线是指将多媒体卡,高速LAN网卡,高性能图形板等从ISA总线上卸下来,再通过局部总线控制器直接连接到CPU总线上,使之与高速CPU总线相匹配。局部总线中较有影响的是VESA和PCI总线。nVESA:带宽32位。最高传输速率132Mb/s,仅能连接24台设备。nPCI:PCI在CPU和外设之间插入一复杂的管理层,用于协调数据传输和提供一致的接口。PCI能支持10种外设,最大传输速率可达132Mb/s。是当前广为流行的总线。335.2 I/O控制方式nI/O控制方式是随着计算机技术的发展而不断发展的。在I/O控制方式的整个发展过程中,始终贯穿的宗
15、旨是:尽量减少主机对I/O控制的干预,把主机从反之的I/O控制事物中解脱出来,以便更多地去完成数据处理任务。n早期采用程序控制I/O方式;n当在系统中引入中断机制后,便发展为中断驱动方式;n随着DMA控制器的出现,又使I/O方式在传输单位上发生了变:即从以字节为单位的传输扩大到以数据块为单位进行传输。从而改善了块设备的I/O性能;n通道的引入,又使对I/O操作的组织和数据的传送都能独立进行而无需CPU干预。34I/O控制方式n程序控制I/O(programmed I/O)n中断驱动方式(interruptdriven I/O)n直接存储访问方式(DMA,Direct Memory Access
16、)nI/O通道控制方式 (channel (channel control) 35程序控制(忙等待或轮询方式)n系统中没有中断机构,I/O操作由程序发起,并等待操作完成。数据的每次读写均通过CPU。 例如:当主机要通过端口来写出数据时,主机与控制器之间的握手协议如下:n缺点:在外设进行数据处理时,CPU只能等待,致使CPU利用率很低。36六个步骤1 主机不断地读取忙位,直到该位被清除;2 主机设置命令寄存器中的写位并向数据输出寄存器中写入一个字(节)字(节);3 主机设置命令就绪位;4 当控制器注意到命令就绪位已被设置,则设置忙位;5 控制器读取命令寄存器,并看到写入命令,它从数据输出寄存器中
17、读取一个字(节)字(节),并向设备执行I/O操作。6 控制器清除命令就绪位,清除状态寄存器的故障位,以表示设备成功,清除忙位以表示完成。完成一个字节的传输后继续重复上述步骤取更多的数据。37中断驱动方式 nI/O操作由程序发起,在操作完成时(如数据可读或已经写入)由外设向CPU发出中断发出中断,通知该程序。数据的数据的每次读写通过每次读写通过CPUn具体过程如右图所示:38n优点:在外设进行数据处理时,CPU不必等待,可以继续执行该程序或其他程序。n缺点:CPU每次处理的数据量仍是以字(字节)为单位,只适于数据传输率较低的设备。39直接存储访问方式(DMA)n计算机为了避免用PIO而增加CPU
18、的负担,将一部分任务下放给一个专用的处理器-DMA控制器;nDMA控制器的组成,如下图所示:DRMARDCCRI/O控制逻辑主机控制器接口控制器与块设备接口count内存CPU命令系统总线DMA控制器图5-8DMA控制器的组成40DMA工作过程-以磁盘读入数据为例设置AR和DC初值启动DMA传送命令挪用存储器周期传送数据字存储器地址增1字计数寄存器减1DC0?请求中断在继续执行用户程序的同时,准备又一次传送否是由程序程序设置DMA控制器中的若干寄存器值(如内存始址,传送字节数),然后发起I/O操作;而DMA控制器完成内存与外设的成批数据交换;在操作完成时由DMA控制器向CPU发出中断。图5-9
19、 DMA方式的工作流程41DMA方式的优缺点n优点:显著地减少了CPU的干预,由原来的一个字(节)减少到了一块; CPU只需干预该块数据I/O操作的开始和结束,而块内的一批数据读写无需CPU控制,适于高速设备。n缺点:在DMA方式下,CPU发出一个I/O命令后,读写完一个连续的数据块时需要相应一次中断。42三种I/O控制方式的比较向I/O控制器发读命令读I/O控制器的状态检查状态?从I/O控制器中读入字向存储器中写字传送完成?未就绪就绪出错CPUI/OI/OCPUI/OCPUCPU 内存下条指令完成未完向I/O控制器发读命令读I/O控制器的状态检查状态?从I/O控制器中读字向内存中写字传送完成
20、?就绪出错CPUI/OI/OCPUI/OCPUCPU 内存下条指令完成未完中断CPU做其它事向I/O控制器发布读块命令CPUDMACPU做其它事读DMA控制器的状态中断DMACPU下条指令(a) 程序I/O方式(b) 中断驱动方式(c) DMA方式43I/O通道控制方式 nI/O通道是一种特殊的处理机。它具有执行I/O指令的能力。n可以执行由通道指令组成的通道程序,因此可以进行较为复杂的I/O控制。通道程序通常由操作系统所构造,放在内存里。n通道程序l操作码。 l内存地址。 l计数。 l通道程序结束位P。 l记录结束标志R。44六条指令的简单通道程序操作 PR计数内存地址WRITE 00808
21、13WRITE001401034WRITE01605830WRITE013002000WRITE002501850WRITE1125072045通道方式的优点n优点:l通道方式是DMA方式的发展,它可进一步减少CPU的干预。l可以实现CPU、通道和I/O设备三者的并行操作,更有效地提高整个系统的资源利用率。465.3 缓冲管理 为了缓和CPU与I/O设备速度不匹配的矛盾,提高CPU和I/O设备的并行性,在现代OS中,几乎所有的I/O设备在与处理机交换数据时都用了缓冲区。 缓冲管理的主要职责是组织好这些缓冲区,并提高获得和释放缓冲区的手段。47 缓冲技术 缓冲技术可提高外设利用率。 原因 匹配C
22、PU与外设的不同处理速度 减少对CPU的中断次数。 提高CPU和I/O设备之间的并行性。48缓冲区设置 硬缓冲: 在设备中设置缓冲区,由硬件实现 软缓冲: 在内存中开辟一个空间,用作缓冲区49单缓冲(single buffer) 一个缓冲区,CPU和外设轮流使用,一方处理完之后接着等待对方处理。工作区处理 (C)缓冲区传送 (M)输入 (T)I/O 设备(a)T1M1C1T2M2C2T3M3C3T4t(b)用户进程单缓冲工作示意图单缓冲工作示意图50双缓冲(double buffer) 两个缓冲区,CPU和外设都可以连续处理而无需等待对方。要求CPU和外设的速度相近。工作区用户进程缓冲区1缓冲
23、区2I/O 设备T1(缓冲1)M1C1M2C2M3C3T2(缓冲2)T3(缓冲3)M4C4T4(缓冲4)(a)(b)双缓冲工作示意图双缓冲工作示意图51循环缓冲(circular buffer) 多个缓冲区,CPU和外设的处理速度可以相差较大。可参见“生产者消费者问题”,关键是资源量的增减(空或满的缓冲区数目)而不是生产者和消费者的指针移动。RGGGRG165423NextiNextgRGGGRC165423NextiNextgcurrent52 循环缓冲的组成:多个缓冲区,多个指针 循环缓冲区的使用:getbuf和releasebuf过程 进程同步:nexti指针追赶上nextg指针 nex
24、tg指针追赶上nexti指针53缓冲池(buffer pool) 缓冲区整体利用率高。 缓冲区队列 空闲缓冲区, 输入缓冲区, 输出缓冲区54过 程55 Getbuf过程和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);56
25、工作方式 收容输入 提取输入 收容输出 提取输出hinsoutsinhout收 容 输 入提 取 输 出用 户程 序提 取 输 入收 容 输 出缓 冲 池575.4 I/O软件 I/O软件的总体设计目标是高效率和通用性。 通常将I/O软件组成一种层次结构,低层软件用于实现与硬件相关的操作,高层软件主要向用户提供一个接口。 每一层具有一个要执行的定义明确的功能和一个与相邻层次定义明确的接口。58I/O软件应达到的目标 与具体设备无关 统一命名 对错误的处理 缓冲技术 设备的分配和释放 I/O控制方式59 IO软件的基本思想是按分层的思想构成,较低层软件要使较高层软件独立于硬件的特性,较高层软件则
26、要向用户提供一个友好的、清晰的、简单的、功能更强的接口。 I/O软件的组成6061(1)用户进程层执行输入输出系统调用,对IO数据进行格式化,为假脱机输入输出作准备(2)独立于设备的软件实现设备的命名、设备的保护、成块处理、缓冲技术和设备分配(3)设备驱动程序设置设备寄存器、检查设备的执行状态(4)中断处理程序负责IO完成时,唤醒设备驱动程序进程,进行中断处理(5)硬件层实现物理IO的操作62每个进程在启动一个IO操作后阻塞 直到IO操作完成并产生一个中断由操作系统接管CPU后唤醒该进程为止 5.4.2 中断处理程序63中断处理程序处理过程 唤醒被阻塞的驱动程序进程 保存现场 转入设备中断处理
27、程序 进行中断处理 恢复被中断进程的现场64PSW程序状态字PC(N 1)程序计数器R0Rn寄存器开始返回用户程序中断服务子例程PSWPC(N 1)中断栈TT M线指针YNN 1R0Rn中断现场保护示意图65中断处理流程唤醒被阻塞的驱动程序进程对被中断进程的CPU环境进行保护分析中断原因,转入相应的中断处理程序终端中断处理程序打印机中断处理程序磁盘中断处理程序恢复被中断进程的CPU现场返回被中断的进程,继续执行中断请求信号66 与设备密切相关的代码放在设备驱动程序中,每个设备驱动程序处理一种设备类型 每一个控制器都设有一个或多个设备寄存器,用来存放向设备发送的命令和参数。设备驱动程序负责释放这
28、些命令,并监督它们正确执行 一般,设备驱动程序的任务是接收来自与设备无关的上层软件的抽象请求,并执行这个请求 5.4.3 设备驱动程序67 在设备驱动程序的进程释放一条或多条命令后,系统有两种处理方式,多数情况下,执行设备驱动程序的进程必须等待命令完成,这样,在命令开始执行后,它阻塞自已,直到中断处理时将它解除阻塞为止。而在其它情况下,命令执行不必延迟就很快完成。 设备驱动程序(续)68设备驱动程序的功能 将抽象要求转换为具体要求检查I/O请求的合法性发出I/O命令响应中断请求构成通道程序69处理方式 为每类设备设置一个进程 整个系统一个I/O进程 不设专门进程70I/O进程 (1)I/O请求
29、的进入用户程序:调用send将I/O请求发送给I/O进程;调用block将自己阻塞,直到I/O任务完成后被唤醒系统:利用wakeup唤醒I/O进程,完成用户所要求的I/O处理 (2)I/O中断的进入当I/O中断发生时,内核中的中断处理程序发一条消息给I/O进程,由I/O进程负责判断并处理中断71 (3)I/O进程 是系统进程,一般赋予最高优先级。一旦被唤醒,它可以很快抢占处理机投入运行 IO进程开始运行后,首先关闭中断,然后用receive去接收消息。两种情形: 没有消息,则开中断,将自己阻塞; 有消息,则判断消息(IO请求或IO中断); IO请求 准备通道程序,发出启动IO指令,继续判断有无
30、消息 IO中断,进一步判断正常或异常结束 正常:唤醒要求进行IO操作的进程 异常:转入相应的错误处理程序72特点 驱动程序主要是指在请求I/O的进程与设备控制器之间的一个通信和转换程序。 驱动程序与设备控制器和I/O设备的硬件特性紧密相关, 因而对不同类型的设备应配置不同的驱动程序。 驱动程序与I/O设备所采用的I/O控制方式紧密相关 。 由于驱动程序与硬件紧密相关, 因而其中的一部分必须用汇编语言书写。 驱动程序应允许可重入。 驱动程序不允许系统调用。73处理过程 将抽象要求转换为具体要求 检查I/O请求的合法性 读出和检查设备状态 传送必要参数 方式设置 启动I/O设备74 虽然IO软件中
31、一部分是设备专用的,但大部分软件是与设备无关的。设备驱动程序与设备独立软件之间的确切界限是依赖于具体系统的。 5.4.4 设备独立性软件75设备独立性的概念 应用程序独立于具体使用的物理设备。 在应用程序中使用逻辑设备名来请求使用某类设备。 在实际执行时还必须使用物理设备名称。 实现设备独立性可以带来: 设备分配时的灵活性; 易于实现I/O重定向;7677 1)独立于设备的软件的基本任务是实现所有设备都需要的功能,并且向用户级软件提供一个统一的接口 2)如何给文件和设备这样的对象命名是操作系统中的一个主要课题。独立于设备的软件负责把设备的符号名映射到正确的设备驱动上 3)设备保护 系统如何防止
32、无权存取设备的用户存取设备呢?78 4)不同的磁盘可以采用不同的扇区尺寸。向较高层软件掩盖这一事实并提供大小统一的块尺寸,这正是设备独立软件的一个任务。它可将若干扇区合成一个逻辑块。这样,较高层的软件只与抽象设备打交道,独立于物理扇区的尺寸而使用等长的逻辑块 5)缓冲技术 6)设备分配 7)出错处理 79 逻辑设备名到物理设备名映射的实现 逻辑设备表 LUT的设置的设置 系统LUT 用户LUT逻辑设备名 物理设备名驱动程序入口地址/dev/tty/dev/printer3510242046逻辑设备名/dev/tty/dev/printer系统设备表指针35(a)(b)80尽管大部分IO软件都包
33、含在操作系统中,但仍有一小部分是由与用户程序连接在一起的库过程,甚至完全由运行于核外的程序构成。系统调用,包括IO系统调用,通常由库过程实现这些过程所做的工作只是将系统调用时所用的参数放在合适的位置,由其它的IO过程实际实现真正的操作5.4.5 用户层的IO软件815.5 设备分配 由于外设资源的有限,需解决进程间的外设共享问题,以提高外设资源的利用率。设备分配是对进程使用外设过程的管理。 在有的系统中还应分配相应的控制器和通道。 系统必须设置相应的数据结构。825.5.1数据结构 设备控制表(DCT, Device Control Table):每个设备一张,描述设备特性和状态。反映设备的特
34、性、设备和控制器的连接情况。设备类型 type设备标识符:deviceid设备状态:等待/不等待 忙/闲指向控制器表的指针重复执行次数或时间设备队列的队首指针DCT 1DCT 2DCT n设备控制表集合83 控制器控制表(COCT, COntroller Control Table):每个设备控制器一张,描述I/O控制器的配置和状态。如DMA控制器所占用的中断号、DMA数据通道的分配。 通道控制表(CHCT, CHannel Control Table):每个通道一张,描述通道工作状态。84 系统设备表(SDT, System Device Table):系统内一张,反映系统中设备资源的状态,
35、记录所有设备的状态及其设备控制表的入口。SDT表项的主要组成: DCT指针:指向相应设备的DCT; 设备使用进程标识:正在使用该设备的进程标识; DCT信息:为引用方便而保存的DCT信息,如:设备标识、设备类型等;85(c) 系统设备表SDT控制器标识符:controllerid控制器状态:忙/闲与控制器连接的通道表指针控制器队列的队首指针控制器队列的队尾指针通道标识符:channelid通道状态:忙/闲与通道连接的控制器表首址通道队列的队首指针通道队列的队尾指针(a) 控制器表COCT(b) 通道表CHCT表目1表目i设备类设备标识符DCT驱动程序入口865.5.2设备分配时应考虑的因素 设
36、备固有属性 设备分配算法 设备分配中的安全性87设备固有属性 独占 共享 独享设备 共享设备 虚拟设备88设备分配算法 先来先服务 优先级高者优先89设备分配中的安全性 安全分配方式 不安全分配方式905.5.3 独占设备分配程序 基本设备分配程序 分配设备 分配设备控制器 分配通道 改进 增加设备独立性 考虑多通路问题915.5.4 假脱机技术 利用假脱机技术(SPOOLing, Simultaneous Peripheral Operation On Line, 也称为虚拟设备技术)可把独享设备转变成具有共享特征的虚拟设备,从而提高设备利用率。 引入 在多道程序系统中,专门利用一道程序(S
37、POOLing程序)来完成对设备的I/O操作。无需使用外围I/O处理机。92 SPOOLing程序和外设进行数据交换,可以称为“实际I/O”。一方面,SPOOLing程序预先从外设输入数据并加以缓冲,在以后需要的时候输入到应用程序;另一方面,SPOOLing程序接受应用程序的输出数据并加以缓冲,在以后适当的时候输出到外设。 应用程序进行I/O操作时,只是和SPOOLing程序交换数据,可以称为“虚拟I/O”。这时候的虚拟I/O实际上是从SPOOLing程序的缓冲池中读出数据或把数据送入缓冲池,而不是跟实际的外设进行I/O操作。93SPOOLing系统组成输入进程 SPi输入进程 SPo输入缓冲
38、区 Bi输出缓冲区 Bo输入井输出井磁盘输入设备输出设备94特点 高速虚拟I/O操作:应用程序的虚拟I/O比实际I/O速度提高,缩短应用程序的执行时间(尽快完成计算,并释放占用的计算机资源)。另一方面,程序的虚拟I/O操作时间和实际I/O操作时间分离开来。 实现对独享设备的共享:由SPOOLing程序提供虚拟设备,可以对独享设备依次共享使用。95举例 打印机设备和可由打印机管理器管理的打印作业队列。如:Windows NT中,应用程序直接向针式打印机输出需要15分钟,而向打印作业队列输出只需要1分钟,此后用户可以关闭应用程序而转入其他工作,在以后适当的时候由打印机管理器完成15分钟的打印输出而
39、无需用户干预。965.6 磁盘存储器管理 分配空间 组织文件的存取方式 提高磁盘存储空间的利用率 提高IO速度 保证文件系统的可靠性97提高IO速度的主要途径 选择性能好的磁盘 并行化 采用适当的调度算法 设置磁盘高速缓冲区9899磁盘的组织 现代磁盘驱动器可以看作一个一维的逻辑块的数组,逻辑块是最小的传输单位。 一维逻辑块数组按顺序映射到磁盘的扇区。扇区0是最外面柱面的第一个磁道第一个扇区。该映射是先按磁道内扇区顺序,再按柱面内磁道顺序,再按从外到内的柱面顺序来排序的。100磁盘的类型 固定头磁盘 移动头磁盘101磁盘访问时间 寻道时间 旋转延迟时间 传输时间102寻道时间 这是把磁臂(磁头
40、)从当前位置移动到指定磁道上所经历的时间。该时间是启动磁盘的时间s与磁头移动n条磁道所花费的时间之和。 Ts=m*n+s103旋转延迟时间 对于硬盘,典型的转转速度为3600r/min,每转需时16.7ms,平均旋转延迟时间Tr为8.3ms。对于软盘,其旋转速度为300或600r/min,这样,平均Tr为50100ms。104传输时间 Tr是指把数据从磁盘读出,或向磁盘写入数据所经历的时间,Tt的大小与每次所读/写的字节数b及旋转速度有关 Tt=b/(rN)105总时间 Ts+1/(2r)+b/(rN) 例如,我们假定寻道时间和旋转延迟时间平均为30ms,而磁道的传输速率为1MB/s,如果传输
41、1K字节,此时总的访问时间为31ms,传输时间所占比例是相当的小。当传输10K字节的数据时,其访问时间也只是40ms,即当传输的数据量增加10倍时,访问时间只增加了约30%。106磁盘调度算法 先来先服务 最短寻道时间优先 扫面算法 循环扫面算法 N-Step-SCAN FSCANS107先来先服务(FCFS) 640cylinders108最短寻道时间优先(SSTF) 236cylinders109进程“饥饿”现象 SSTF算法可能导致某个进程出现“饥饿”现象。只要不断有新进程的请求到达,且其所要访问的磁道与磁头当前所在磁道的距离较近,这种新进程的I/O请求必须优先满足。老进程将出现“饥饿”
42、现象 为解决该问题,对SSTF略微进行改进,形成SCAN扫面算法。110扫面算法(SCAN) 208111循环扫面算法112问题- “磁臂粘着”在SSTF、SCAN及CSCAN几种调度算法中,都可能出现磁臂停留在某处不动的情况,例如,有一个或几个进程对某一磁道有较高的访问频率,即这个(些)进程反复请求对某一磁道的I/O操作,从而垄断了整个磁盘设备。我们把这一现象称为“磁臂粘着”(Armstickiness)。113N-Step-SCAN N步SCAN算法是将磁盘请求队列分成若干个长度为N的子队列,磁盘调度将按FCFS算法依次处理这些子队列。而每处理一个队列时又是按SCAN算法,对一个队列处理完
43、后,再处理其他队列。当正在处理某子队列时,如果又出现新的磁盘I/O请求,便将新请求进程放入其他队列,这样就可避免出现粘着现象。 当N值取得很大时,会使N步扫描法的性能接近于SCAN算法的性能; 当N=1时, N步SCAN算法便蜕化为FCFS算法。114FSCAN算法 FSCAN算法实质上是N步SCAN算法的简化, 即SCAN只将磁盘请求队列分成两个子队列。一个是由当前所有请求磁盘I/O的进程形成的队列,由磁盘调度按SCAN算法进行处理。在扫描期间,将新出现的所有请求磁盘I/O的进程, 放入另一个等待处理的请求队列。这样,所有的新请求都将被推迟到下一次扫描时处理。115磁盘高速缓存(Disk C
44、ache) 磁盘高速缓存的形式是指利用内存中的存储空间,来暂存从磁盘中读出的一系列盘块中的信息。因此,这里的高速缓存是一组在逻辑上属于磁盘,而物理上是驻留在内存中的盘块。高速缓存在内存中可分成两种形式。 第一种是在内存中开辟一个单独的存储空间来作为磁盘高速缓存,其大小是固定的,不会受应用程序多少的影响; 第二种是把所有未利用的内存空间变为一个缓冲池,供请求分页系统和磁盘I/O时(作为磁盘高速缓存)共享。此时高速缓存的大小,显然不再是固定的。当磁盘I/O的频繁程度较高时,该缓冲池可能包含更多的内存空间;而在应用程序运行得较多时,该缓冲池可能只剩下较少的内存空间。116数据交付方式系统可以采取两种
45、方式,将数据交付给请求进程: (1) 数据交付。这是直接将高速缓存中的数据,传送到请求者进程的内存工作区中。 (2) 指针交付。只将指向高速缓存中某区域的指针, 交付给请求者进程。 后一种方式由于所传送的数据量少,因而节省了数据从磁盘高速缓存存储空间到进程的内存工作区的时间 117置换算法 由于请求调页中的联想存储器与高速缓存(磁盘I/O中)的工作情况不同,因而使得在置换算法中所应考虑的问题也有所差异。因此,现在不少系统在设计其高速缓存的置换算法时,除了考虑到最近最久未使用这一原则外,还考虑了以下几点: (1) 访问频率。 (2) 可预见性。 (3) 数据的一致性。118周期性地写回磁盘 在U
46、NIX系统中专门增设了一个修改(update)程序, 使之在后台运行,该程序周期性地调用一个系统调用SYNC。该调用的主要功能是强制性地将所有在高速缓存中已修改的盘块数据写回磁盘。一般是把两次调用SYNC的时间间隔定为30 s。这样,因系统故障所造成的工作损失不会超过30 s的劳动量。而在MS-DOS中所采用的方法是:只要高速缓存中的某盘块数据被修改,便立即将它写回磁盘,并将这种高速缓存称为“写穿透、高速缓存”(write-through cache)。MS-DOS所采用的写回方式,几乎不会造成数据的丢失, 但须频繁地启动磁盘。119提前读(Read-Ahead) 延迟写 优化物理块的分布 虚
47、拟盘 提高磁盘I/O速度的其它方法120虚拟盘(RAM盘) RAM盘是通过使用软件将RAM模拟当做硬盘来使用的一种技术。相对于传统的硬盘文件访问来说,这种技术可以极大的提高在其上进行的文件访问的速度。但是RAM的易失性也意味着当关闭电源后的数据将会丢失。121RAID(廉价廉价/独立独立磁盘冗余阵列) Redundant Array of Inexpensive/ Independent Disk 把相同的数据存储在多个硬盘的不同的地方(因此,冗余地)的方法。通过把数据放在多个硬盘上,输入输出操作能以平衡的方式交叠,改良性能. 并行交叉存取 RAID分级122RAID1它具有磁盘镜像功能。两组
48、以上的N个磁盘相互作镜像,除非拥有相同数据的主软盘与镜像同时损坏,否则只要一个磁盘正常即可维持运作,可靠性最高。磁盘利用率最低。123RAID3 采用Bitinterleaving(数据交错存储)技术,它需要通过编码再将数据比特分区后分别存在硬盘中,而将同比特检查后单独存在一个硬盘中,但由于数据内的比特分散在不同的硬盘上,因此就算要读取一小段数据资料都可能需要所有的硬盘进行工作,所以这种规格比较适于读取大量数据时使用。124RAID5 RAID Level 5 是一种储存性能、数据安全和存储成本兼顾的存储解决方案。 RAID 5不是对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组
49、成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID5的一个磁盘数据发生损坏后,可以利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。 RAID 5可以理解为是RAID 0和RAID 1的折衷方案。RAID 5可以为系统提供数据安全保障,但保障程度要比镜像低而磁盘空间利用率要比镜像高。125RAID6 与RAID 5相比,RAID 6增加了第二个独立的奇偶校验信息块。两个独立的奇偶系统使用不同的算法,数据的可靠性非常高,即使两块磁盘同时失效也不会影响数据的使用。但RAID 6需要分配给奇偶校验信息更大的磁盘空间,相对于RAID 5有更大的“写损失”,因此“写性能”非常差。较差的性能和复杂的实作方式使得RAID 6很少得到实际应用。126RAID的优点 可靠性高 磁盘IO速度高 性能价格比高 应用RAID最初用于高端服务器市场,不过随着计算机应用的快速发展,RAID技术已经渗透到很多领域。如今,在家用电脑主板中,RAID控制芯片也随处可见。就目前而言,PATA、SATA以及SCSI接口的硬盘都可以通过相应的RAID控制芯片来组建RAID系统。在家用电脑上,我们一般只用到RAID 0、RAID 1这两种磁盘阵列方式。
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。