操作系统设备管理.ppt

上传人:夺命阿水 文档编号:250596 上传时间:2023-03-27 格式:PPT 页数:126 大小:3.84MB
返回 下载 相关 举报
操作系统设备管理.ppt_第1页
第1页 / 共126页
操作系统设备管理.ppt_第2页
第2页 / 共126页
操作系统设备管理.ppt_第3页
第3页 / 共126页
操作系统设备管理.ppt_第4页
第4页 / 共126页
操作系统设备管理.ppt_第5页
第5页 / 共126页
点击查看更多>>
资源描述

《操作系统设备管理.ppt》由会员分享,可在线阅读,更多相关《操作系统设备管理.ppt(126页珍藏版)》请在课桌文档上搜索。

1、1,2,计算机系统的一个重要组成部分是I/O系统。I/O系统包括:输入设备 输出设备 设备控制器 I/O通道或I/O处理机设备管理的对象主要是:I/O设备 设备控制器 I/O通道,3,设备管理的基本任务是:完成用户提出的I/O请求,提高I/O速率,提高I/O设备的利用率。设备管理的主要功能有:缓冲区管理 设备分配 设备处理 虚拟设备 实现设备独立性设备管理是OS中最繁杂且与硬件最紧密相关的部分。,4,本章总览,OS在 I/O方面的功能是管理和控制 I/O操作 和I/O设备。I/O技术表现出两大相冲突的发展趋势:硬件接口的标准化程度的提高设备类型的更多样化的高速发展 基本的I/O硬件像接口,总线

2、,设备控制器 技术的发展顺应了I/O设备的广泛变化。操作系统内核用各种设备驱动模块来组织 I/O子系统结构。问题:性能和复杂。,5,设备管理的目的和功能,外设管理目的提高效率:提高I/O访问效率,匹配CPU和多种不同处理速度的外设。方便使用:方便用户使用,对不同类型的设备统一使用方法,协调对设备的并发使用。方便控制:方便OS内部对设备的控制:增加和删除设备,适应新的设备类型。,6,设备管理的目的和功能,外设管理功能设备分配和释放:使用设备前,需要分配设备和相应的通道、控制器。设备的访问和控制:包括并发访问和差错处理。I/O缓冲和调度:目标是提高I/O访问效率(主要是磁盘)。,7,8,9,10,

3、11,12,5.1 I/O系统,I/O系统的结构,13,A typical PC bus structure,14,15,5.1.1 I/O设备,I/O设备的类型繁多,从OS观点看,其重要的性 能指标有:数据传输速率、数据的传输单位、设备共享属性等。按传输速率分类 低速设备 典型设备有:键盘、鼠标器、语音输入和输出等。中速设备 典型设备有:行式打印机、激光打印机等。高速设备 典型设备有:磁带机、磁盘机、光盘机等。,1.I/O设备的类型,16,按信息交换的单位分类 块设备:这类设备用于存储信息。属于有结构设备。典型的块设备是磁盘,每个盘块的大小 为 512 B4 KB。传输速率较高,可寻址即对它

4、可随机地读/写任一块;磁盘设备的 I/O 常采用 DMA 方式。字符设备:用于数据的输入和输出。其基本单位是字符,故称为字符设备。按设备的共享属性分类 独占设备 共享设备 虚拟设备,17,设备与控制器之间的接口数据信号控制信号状态信号,2.设备与控制器之间的接口,通常,设备并不直接与CPU进行通信,而是与设备控制器通信。因此,在I/O设备中应含有与设备控制器间的接口。在该接口中有三种类型的信号各对应一条信号线。,18,图5-1 设备与控制器间的接口,控制信号线:作为设备控制器向I/O设备发送控制信号时的通路。该信号规定了设备将要执行的操作:读操作(指由设备向控制器传送数据)写操作(从控制器接收

5、数据),数据信号线:用于在设备和设备控制器之间传送数据信号。输入设备:外界输入的信号经转换器转换后形成的数据,通常先送入缓冲器中,当数据量达到一定的比特数后,再从缓冲器通过一组数据信号线传送给设备控制器。输出设备:将从设备控制器经过数据信号线传送来的一批数据先暂存于缓冲器中,经转换器作适当转换后,再逐个字符地输出。,状态信号线:用于传送指示设备当前状态的信号。设备的当前状态有:正在读(写)设备已读(写)完成,并准备好新的数据传送。,19,5.1.2 设备控制器,设备控制器是计算机中的一个实体,其主要职责是控制一个或多个I/O设备,以实现I/O设备和计算机之间的数据交换。它是CPU与I/O设备间

6、的接口,它接收从CPU发来的命令,并去控制I/O设备工作,使处理机从繁杂的设备控制事务中解脱出来。它是一个可编址的设备,当它仅控制一个设备时,它只有一个唯一的设备地址;若控制多个设备时,则应含有多个设备地址,并使每一个设备地址对应一个设备。,20,5.1.2 设备控制器,它可分为两类:控制字符设备的控制器 控制块设备的控制器 设备控制器的基本功能 书P162接收和识别命令 数据交换设备状态的了解和报告地址识别数据缓冲差错控制,21,设备控制器的组成 由于设备控制器位于CPU与设备之间,它既要与CPU通信,又要与设备通信,还应具有按照CPU所发来的命令区控制设备工作的功能。因此有以下三部分组成:

7、控制器与处理机接口 该接口用于实现CPU与设备控制器之间的通信。控制器与设备接口 可以连接一个或多个设备。在每个接口中都存在数据、控制和状态三种类型的信号。控制器中的I/O逻辑根据处理机发来的地址信号去选择一个设备接口。,22,图5-2 设备控制器的组成,I/O逻辑I/O逻辑用于实现对设备的控制:它通过一组控制线与处理机交互,处理机利用该逻辑向控制器发送I/O命令;I/O逻辑对收到的命令进行译码。每当 CPU要启动一个设备时,一方面将启动命令发送给控制器;另一方面有通过地址线把地址发送给控制器,由控制器的I/O逻辑对收到的地址进行译码,再根据所译出的命令对所选设备进行控制。,23,5.1.3

8、I/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指令。通道收到该指令后,便从内存中取出本次要执行的通道程序,然后执行该通道程序;仅当通道完成了规定的

9、I/O任务后,才向CPU发中断信号。,24,I/O通道是一种特殊的处理机,具有执行I/O指令的能力。通过执行通道(I/O)程序来控制I/O操作。其指令类型单一主要局限于与I/O操作有关的指令通道没有自己的内存,通道所执行的通道程序是放在主机的内存中的。,25,通道类型,字节多路通道 一种按字节交叉方式工作的通道。它通常含有许多非分配型子通道,其数量从几十到几百个,每一个子通道连接一台I/O设备,并控制该设备的I/O操作。这些子通道按时间片轮转方式共享主通道:当第一个子通道控制其I/O设备完成一个字节的交换后,便立即腾出主通道,让给第二个子通道使用;当所有子通道轮转一周后,重又返回由第一个子通道

10、去使用主通道。这样,只要字节多路通道扫描每个子通道的速率足够快,而连接到子通道上的设备的速率不是太高时,便不致丢失信息。,26,数组选择通道字节多路通道不适合连接高速设备数组选择通道可以连接多台高速设备该通道只含有一个分配型子通道这种通道的利用率很低数组多路通道上面两种通道技术的结合有多个非分配型子通道该通道能被广泛地用于连接多台高、中速的外围设备具有很高的数据传输速率,又能获得令人满意的通道利用率,27,瓶颈问题,通道价格昂贵,通道数量势必减少。这往往又使它成了I/O的瓶颈,从而造成整个系统吞吐量的下降。假设设备1至设备4是四个磁盘,为了启动磁盘4,必须用通道1和控制2;但若这两者已被其他设

11、备占用,必然无法启动磁盘4。,28,瓶颈问题的解决,解决方法:增加设备到主机间的通路而不增加通道。就是把一个设备连接到多个控制器上,而一个控制器又连接到多个通道上。图中的设备1、2、3、4都有四条通往存储器的通路。多通路方式不仅解决了瓶颈问题,而且提高了系统的可靠性。,29,5.1.4 总线系统,总线是许多信号线的集合,它是微型计算机芯片间、各部件间和外部设备间相互进行信息或数据交换的通路。由于计算机内部定向的信息流和数据流在总线中的流动,就形成了计算机的各种操作。常见的系统总线标准有ISA、EISA、PCI等总线,30,总线的主要技术指标,总线数据传输速率单位时间内总线上传送的数据量,即每钞

12、钟传送Mb的最大稳态数据传输率。总线数据传输速率总线的工作频率*总线的位宽/8。总线的带宽 总线的带宽指的是总线能同时传送的二进制数据的位数,或数据总线的位数,即32位、64位等总线宽度的概念。总线的工作频率 总线的工作时钟频率以MHZ为单位,工作频率越高,总线工作速度越快,总线传输速率越高。,31,ISA和EISA总线,80286微机的总线。带宽为8bit,最高传输速率为2Mb/s,可以连接12台外部设备。扩展ISA即EISA总线:带宽16位。传输速率高达32Mb/s,可以连接12台外部设备。,32,局部总线,局部总线是指将多媒体卡,高速LAN网卡,高性能图形板等从ISA总线上卸下来,再通过

13、局部总线控制器直接连接到CPU总线上,使之与高速CPU总线相匹配。局部总线中较有影响的是VESA和PCI总线。VESA:带宽32位。最高传输速率132Mb/s,仅能连接24台设备。PCI:PCI在CPU和外设之间插入一复杂的管理层,用于协调数据传输和提供一致的接口。PCI能支持10种外设,最大传输速率可达132Mb/s。是当前广为流行的总线。,33,5.2 I/O控制方式,I/O控制方式是随着计算机技术的发展而不断发展的。在I/O控制方式的整个发展过程中,始终贯穿的宗旨是:尽量减少主机对I/O控制的干预,把主机从反之的I/O控制事物中解脱出来,以便更多地去完成数据处理任务。早期采用程序控制I/

14、O方式;当在系统中引入中断机制后,便发展为中断驱动方式;随着DMA控制器的出现,又使I/O方式在传输单位上发生了变:即从以字节为单位的传输扩大到以数据块为单位进行传输。从而改善了块设备的I/O性能;通道的引入,又使对I/O操作的组织和数据的传送都能独立进行而无需CPU干预。,34,I/O控制方式,程序控制I/O(programmed I/O)中断驱动方式(interruptdriven I/O)直接存储访问方式(DMA,Direct Memory Access)I/O通道控制方式(channel(channel control),35,程序控制(忙等待或轮询方式),系统中没有中断机构,I/O操

15、作由程序发起,并等待操作完成。数据的每次读写均通过CPU。例如:当主机要通过端口来写出数据时,主机与控制器之间的握手协议如下:缺点:在外设进行数据处理时,CPU只能等待,致使CPU利用率很低。,36,六个步骤,1 主机不断地读取忙位,直到该位被清除;2 主机设置命令寄存器中的写位并向数据输出寄存器中写入一个字(节);3 主机设置命令就绪位;4 当控制器注意到命令就绪位已被设置,则设置忙位;5 控制器读取命令寄存器,并看到写入命令,它从数据输出寄存器中读取一个字(节),并向设备执行I/O操作。6 控制器清除命令就绪位,清除状态寄存器的故障位,以表示设备成功,清除忙位以表示完成。完成一个字节的传输

16、后继续重复上述步骤取更多的数据。,37,中断驱动方式,I/O操作由程序发起,在操作完成时(如数据可读或已经写入)由外设向CPU发出中断,通知该程序。数据的每次读写通过CPU具体过程如右图所示:,38,优点:在外设进行数据处理时,CPU不必等待,可以继续执行该程序或其他程序。缺点:CPU每次处理的数据量仍是以字(字节)为单位,只适于数据传输率较低的设备。,39,直接存储访问方式(DMA),计算机为了避免用PIO而增加CPU的负担,将一部分任务下放给一个专用的处理器-DMA控制器;DMA控制器的组成,如下图所示:,图5-8DMA控制器的组成,40,DMA工作过程-以磁盘读入数据为例,由程序设置DM

17、A控制器中的若干寄存器值(如内存始址,传送字节数),然后发起I/O操作;而DMA控制器完成内存与外设的成批数据交换;在操作完成时由DMA控制器向CPU发出中断。,图5-9 DMA方式的工作流程,41,DMA方式的优缺点,优点:显著地减少了CPU的干预,由原来的一个字(节)减少到了一块;CPU只需干预该块数据I/O操作的开始和结束,而块内的一批数据读写无需CPU控制,适于高速设备。缺点:在DMA方式下,CPU发出一个I/O命令后,读写完一个连续的数据块时需要相应一次中断。,42,三种I/O控制方式的比较,43,I/O通道控制方式,I/O通道是一种特殊的处理机。它具有执行I/O指令的能力。可以执行

18、由通道指令组成的通道程序,因此可以进行较为复杂的I/O控制。通道程序通常由操作系统所构造,放在内存里。通道程序操作码。内存地址。计数。通道程序结束位P。记录结束标志R。,44,六条指令的简单通道程序,45,通道方式的优点,优点:通道方式是DMA方式的发展,它可进一步减少CPU的干预。可以实现CPU、通道和I/O设备三者的并行操作,更有效地提高整个系统的资源利用率。,46,5.3 缓冲管理,为了缓和CPU与I/O设备速度不匹配的矛盾,提高CPU和I/O设备的并行性,在现代OS中,几乎所有的I/O设备在与处理机交换数据时都用了缓冲区。缓冲管理的主要职责是组织好这些缓冲区,并提高获得和释放缓冲区的手

19、段。,47,缓冲技术缓冲技术可提高外设利用率。原因匹配CPU与外设的不同处理速度减少对CPU的中断次数。提高CPU和I/O设备之间的并行性。,48,缓冲区设置,硬缓冲:在设备中设置缓冲区,由硬件实现软缓冲:在内存中开辟一个空间,用作缓冲区,49,单缓冲(single buffer),一个缓冲区,CPU和外设轮流使用,一方处理完之后接着等待对方处理。,单缓冲工作示意图,50,双缓冲(double buffer),两个缓冲区,CPU和外设都可以连续处理而无需等待对方。要求CPU和外设的速度相近。,双缓冲工作示意图,51,循环缓冲(circular buffer),多个缓冲区,CPU和外设的处理速度

20、可以相差较大。可参见“生产者消费者问题”,关键是资源量的增减(空或满的缓冲区数目)而不是生产者和消费者的指针移动。,52,循环缓冲的组成:多个缓冲区,多个指针循环缓冲区的使用:getbuf和releasebuf过程进程同步:nexti指针追赶上nextg指针 nextg指针追赶上nexti指针,53,缓冲池(buffer pool),缓冲区整体利用率高。缓冲区队列空闲缓冲区,输入缓冲区,输出缓冲区,54,过 程,55,Getbuf过程和putbuf过程既可以实现互斥又可保证同步的getbuf过程和putbuf过程Getbuf(type)putbuf(type,number)Wait(RS(ty

21、pe);wait(MS(type);Wait(MS(type);addbuf(type,number);B(number):=takebuf(type);signal(MS(type);Signal(MS(type);signal(RS(type);,56,工作方式,收容输入提取输入收容输出提取输出,57,5.4 I/O软件,I/O软件的总体设计目标是高效率和通用性。通常将I/O软件组成一种层次结构,低层软件用于实现与硬件相关的操作,高层软件主要向用户提供一个接口。每一层具有一个要执行的定义明确的功能和一个与相邻层次定义明确的接口。,58,I/O软件应达到的目标,与具体设备无关统一命名对错误的

22、处理缓冲技术设备的分配和释放I/O控制方式,59,IO软件的基本思想是按分层的思想构成,较低层软件要使较高层软件独立于硬件的特性,较高层软件则要向用户提供一个友好的、清晰的、简单的、功能更强的接口。,I/O软件的组成,60,61,(1)用户进程层执行输入输出系统调用,对IO数据进行格式化,为假脱机输入输出作准备(2)独立于设备的软件实现设备的命名、设备的保护、成块处理、缓冲技术和设备分配(3)设备驱动程序设置设备寄存器、检查设备的执行状态(4)中断处理程序负责IO完成时,唤醒设备驱动程序进程,进行中断处理(5)硬件层实现物理IO的操作,62,每个进程在启动一个IO操作后阻塞 直到IO操作完成并

23、产生一个中断由操作系统接管CPU后唤醒该进程为止,5.4.2 中断处理程序,63,中断处理程序处理过程,唤醒被阻塞的驱动程序进程保存现场转入设备中断处理程序进行中断处理恢复被中断进程的现场,64,中断现场保护示意图,65,中断处理流程,66,与设备密切相关的代码放在设备驱动程序中,每个设备驱动程序处理一种设备类型每一个控制器都设有一个或多个设备寄存器,用来存放向设备发送的命令和参数。设备驱动程序负责释放这些命令,并监督它们正确执行一般,设备驱动程序的任务是接收来自与设备无关的上层软件的抽象请求,并执行这个请求,5.4.3 设备驱动程序,67,在设备驱动程序的进程释放一条或多条命令后,系统有两种

24、处理方式,多数情况下,执行设备驱动程序的进程必须等待命令完成,这样,在命令开始执行后,它阻塞自已,直到中断处理时将它解除阻塞为止。而在其它情况下,命令执行不必延迟就很快完成。,设备驱动程序(续),68,设备驱动程序的功能,将抽象要求转换为具体要求检查I/O请求的合法性发出I/O命令响应中断请求构成通道程序,69,处理方式,为每类设备设置一个进程整个系统一个I/O进程不设专门进程,70,I/O进程,(1)I/O请求的进入用户程序:调用send将I/O请求发送给I/O进程;调用block将自己阻塞,直到I/O任务完成后被唤醒系统:利用wakeup唤醒I/O进程,完成用户所要求的I/O处理(2)I/

25、O中断的进入当I/O中断发生时,内核中的中断处理程序发一条消息给I/O进程,由I/O进程负责判断并处理中断,71,(3)I/O进程是系统进程,一般赋予最高优先级。一旦被唤醒,它可以很快抢占处理机投入运行IO进程开始运行后,首先关闭中断,然后用receive去接收消息。两种情形:没有消息,则开中断,将自己阻塞;有消息,则判断消息(IO请求或IO中断);IO请求准备通道程序,发出启动IO指令,继续判断有无消息IO中断,进一步判断正常或异常结束正常:唤醒要求进行IO操作的进程异常:转入相应的错误处理程序,72,特点,驱动程序主要是指在请求I/O的进程与设备控制器之间的一个通信和转换程序。驱动程序与设

26、备控制器和I/O设备的硬件特性紧密相关,因而对不同类型的设备应配置不同的驱动程序。驱动程序与I/O设备所采用的I/O控制方式紧密相关。由于驱动程序与硬件紧密相关,因而其中的一部分必须用汇编语言书写。驱动程序应允许可重入。驱动程序不允许系统调用。,73,处理过程,将抽象要求转换为具体要求检查I/O请求的合法性读出和检查设备状态传送必要参数方式设置启动I/O设备,74,虽然IO软件中一部分是设备专用的,但大部分软件是与设备无关的。设备驱动程序与设备独立软件之间的确切界限是依赖于具体系统的。,5.4.4 设备独立性软件,75,设备独立性的概念,应用程序独立于具体使用的物理设备。在应用程序中使用逻辑设

27、备名来请求使用某类设备。在实际执行时还必须使用物理设备名称。实现设备独立性可以带来:设备分配时的灵活性;易于实现I/O重定向;,76,77,1)独立于设备的软件的基本任务是实现所有设备都需要的功能,并且向用户级软件提供一个统一的接口 2)如何给文件和设备这样的对象命名是操作系统中的一个主要课题。独立于设备的软件负责把设备的符号名映射到正确的设备驱动上 3)设备保护 系统如何防止无权存取设备的用户存取设备呢?,78,4)不同的磁盘可以采用不同的扇区尺寸。向较高层软件掩盖这一事实并提供大小统一的块尺寸,这正是设备独立软件的一个任务。它可将若干扇区合成一个逻辑块。这样,较高层的软件只与抽象设备打交道

28、,独立于物理扇区的尺寸而使用等长的逻辑块 5)缓冲技术 6)设备分配 7)出错处理,79,逻辑设备名到物理设备名映射的实现,逻辑设备表LUT的设置系统LUT用户LUT,80,尽管大部分IO软件都包含在操作系统中,但仍有一小部分是由与用户程序连接在一起的库过程,甚至完全由运行于核外的程序构成。系统调用,包括IO系统调用,通常由库过程实现这些过程所做的工作只是将系统调用时所用的参数放在合适的位置,由其它的IO过程实际实现真正的操作,5.4.5 用户层的IO软件,81,5.5 设备分配,由于外设资源的有限,需解决进程间的外设共享问题,以提高外设资源的利用率。设备分配是对进程使用外设过程的管理。在有的

29、系统中还应分配相应的控制器和通道。系统必须设置相应的数据结构。,82,5.5.1数据结构,设备控制表(DCT,Device Control Table):每个设备一张,描述设备特性和状态。反映设备的特性、设备和控制器的连接情况。,83,控制器控制表(COCT,COntroller Control Table):每个设备控制器一张,描述I/O控制器的配置和状态。如DMA控制器所占用的中断号、DMA数据通道的分配。通道控制表(CHCT,CHannel Control Table):每个通道一张,描述通道工作状态。,84,系统设备表(SDT,System Device Table):系统内一张,反映

30、系统中设备资源的状态,记录所有设备的状态及其设备控制表的入口。SDT表项的主要组成:DCT指针:指向相应设备的DCT;设备使用进程标识:正在使用该设备的进程标识;DCT信息:为引用方便而保存的DCT信息,如:设备标识、设备类型等;,85,86,5.5.2设备分配时应考虑的因素,设备固有属性设备分配算法设备分配中的安全性,87,设备固有属性,独占共享独享设备共享设备虚拟设备,88,设备分配算法,先来先服务优先级高者优先,89,设备分配中的安全性,安全分配方式不安全分配方式,90,5.5.3 独占设备分配程序,基本设备分配程序分配设备分配设备控制器分配通道改进增加设备独立性考虑多通路问题,91,5

31、.5.4 假脱机技术,利用假脱机技术(SPOOLing,Simultaneous Peripheral Operation On Line,也称为虚拟设备技术)可把独享设备转变成具有共享特征的虚拟设备,从而提高设备利用率。引入在多道程序系统中,专门利用一道程序(SPOOLing程序)来完成对设备的I/O操作。无需使用外围I/O处理机。,92,SPOOLing程序和外设进行数据交换,可以称为“实际I/O”。一方面,SPOOLing程序预先从外设输入数据并加以缓冲,在以后需要的时候输入到应用程序;另一方面,SPOOLing程序接受应用程序的输出数据并加以缓冲,在以后适当的时候输出到外设。应用程序进

32、行I/O操作时,只是和SPOOLing程序交换数据,可以称为“虚拟I/O”。这时候的虚拟I/O实际上是从SPOOLing程序的缓冲池中读出数据或把数据送入缓冲池,而不是跟实际的外设进行I/O操作。,93,SPOOLing系统组成,94,特点,高速虚拟I/O操作:应用程序的虚拟I/O比实际I/O速度提高,缩短应用程序的执行时间(尽快完成计算,并释放占用的计算机资源)。另一方面,程序的虚拟I/O操作时间和实际I/O操作时间分离开来。实现对独享设备的共享:由SPOOLing程序提供虚拟设备,可以对独享设备依次共享使用。,95,举例,打印机设备和可由打印机管理器管理的打印作业队列。如:Windows

33、NT中,应用程序直接向针式打印机输出需要15分钟,而向打印作业队列输出只需要1分钟,此后用户可以关闭应用程序而转入其他工作,在以后适当的时候由打印机管理器完成15分钟的打印输出而无需用户干预。,96,5.6 磁盘存储器管理,分配空间组织文件的存取方式提高磁盘存储空间的利用率提高IO速度保证文件系统的可靠性,97,提高IO速度的主要途径,选择性能好的磁盘并行化采用适当的调度算法设置磁盘高速缓冲区,98,99,磁盘的组织,现代磁盘驱动器可以看作一个一维的逻辑块的数组,逻辑块是最小的传输单位。一维逻辑块数组按顺序映射到磁盘的扇区。扇区0是最外面柱面的第一个磁道第一个扇区。该映射是先按磁道内扇区顺序,

34、再按柱面内磁道顺序,再按从外到内的柱面顺序来排序的。,100,磁盘的类型,固定头磁盘移动头磁盘,101,磁盘访问时间,寻道时间旋转延迟时间传输时间,102,寻道时间,这是把磁臂(磁头)从当前位置移动到指定磁道上所经历的时间。该时间是启动磁盘的时间s与磁头移动n条磁道所花费的时间之和。Ts=m*n+s,103,旋转延迟时间,对于硬盘,典型的转转速度为3600r/min,每转需时16.7ms,平均旋转延迟时间Tr为8.3ms。对于软盘,其旋转速度为300或600r/min,这样,平均Tr为50100ms。,104,传输时间,Tr是指把数据从磁盘读出,或向磁盘写入数据所经历的时间,Tt的大小与每次所

35、读/写的字节数b及旋转速度有关Tt=b/(rN),105,总时间,Ts+1/(2r)+b/(rN)例如,我们假定寻道时间和旋转延迟时间平均为30ms,而磁道的传输速率为1MB/s,如果传输1K字节,此时总的访问时间为31ms,传输时间所占比例是相当的小。当传输10K字节的数据时,其访问时间也只是40ms,即当传输的数据量增加10倍时,访问时间只增加了约30%。,106,磁盘调度算法,先来先服务最短寻道时间优先扫面算法循环扫面算法N-Step-SCANFSCANS,107,先来先服务(FCFS),640cylinders,108,最短寻道时间优先(SSTF),236cylinders,109,进

36、程“饥饿”现象,SSTF算法可能导致某个进程出现“饥饿”现象。只要不断有新进程的请求到达,且其所要访问的磁道与磁头当前所在磁道的距离较近,这种新进程的I/O请求必须优先满足。老进程将出现“饥饿”现象为解决该问题,对SSTF略微进行改进,形成SCAN扫面算法。,110,扫面算法(SCAN),208,111,循环扫面算法,112,问题-“磁臂粘着”,在SSTF、SCAN及CSCAN几种调度算法中,都可能出现磁臂停留在某处不动的情况,例如,有一个或几个进程对某一磁道有较高的访问频率,即这个(些)进程反复请求对某一磁道的I/O操作,从而垄断了整个磁盘设备。我们把这一现象称为“磁臂粘着”(Armstic

37、kiness)。,113,N-Step-SCAN,N步SCAN算法是将磁盘请求队列分成若干个长度为N的子队列,磁盘调度将按FCFS算法依次处理这些子队列。而每处理一个队列时又是按SCAN算法,对一个队列处理完后,再处理其他队列。当正在处理某子队列时,如果又出现新的磁盘I/O请求,便将新请求进程放入其他队列,这样就可避免出现粘着现象。当N值取得很大时,会使N步扫描法的性能接近于SCAN算法的性能;当N=1时,N步SCAN算法便蜕化为FCFS算法。,114,FSCAN算法,FSCAN算法实质上是N步SCAN算法的简化,即SCAN只将磁盘请求队列分成两个子队列。一个是由当前所有请求磁盘I/O的进程形

38、成的队列,由磁盘调度按SCAN算法进行处理。在扫描期间,将新出现的所有请求磁盘I/O的进程,放入另一个等待处理的请求队列。这样,所有的新请求都将被推迟到下一次扫描时处理。,115,磁盘高速缓存(Disk Cache),磁盘高速缓存的形式是指利用内存中的存储空间,来暂存从磁盘中读出的一系列盘块中的信息。因此,这里的高速缓存是一组在逻辑上属于磁盘,而物理上是驻留在内存中的盘块。高速缓存在内存中可分成两种形式。第一种是在内存中开辟一个单独的存储空间来作为磁盘高速缓存,其大小是固定的,不会受应用程序多少的影响;第二种是把所有未利用的内存空间变为一个缓冲池,供请求分页系统和磁盘I/O时(作为磁盘高速缓存

39、)共享。此时高速缓存的大小,显然不再是固定的。当磁盘I/O的频繁程度较高时,该缓冲池可能包含更多的内存空间;而在应用程序运行得较多时,该缓冲池可能只剩下较少的内存空间。,116,数据交付方式,系统可以采取两种方式,将数据交付给请求进程:(1)数据交付。这是直接将高速缓存中的数据,传送到请求者进程的内存工作区中。(2)指针交付。只将指向高速缓存中某区域的指针,交付给请求者进程。后一种方式由于所传送的数据量少,因而节省了数据从磁盘高速缓存存储空间到进程的内存工作区的时间,117,置换算法,由于请求调页中的联想存储器与高速缓存(磁盘I/O中)的工作情况不同,因而使得在置换算法中所应考虑的问题也有所差

40、异。因此,现在不少系统在设计其高速缓存的置换算法时,除了考虑到最近最久未使用这一原则外,还考虑了以下几点:(1)访问频率。(2)可预见性。(3)数据的一致性。,118,周期性地写回磁盘,在UNIX系统中专门增设了一个修改(update)程序,使之在后台运行,该程序周期性地调用一个系统调用SYNC。该调用的主要功能是强制性地将所有在高速缓存中已修改的盘块数据写回磁盘。一般是把两次调用SYNC的时间间隔定为30 s。这样,因系统故障所造成的工作损失不会超过30 s的劳动量。而在MS-DOS中所采用的方法是:只要高速缓存中的某盘块数据被修改,便立即将它写回磁盘,并将这种高速缓存称为“写穿透、高速缓存

41、”(write-through cache)。MS-DOS所采用的写回方式,几乎不会造成数据的丢失,但须频繁地启动磁盘。,119,提前读(Read-Ahead)延迟写 优化物理块的分布 虚拟盘,提高磁盘I/O速度的其它方法,120,虚拟盘(RAM盘),RAM盘是通过使用软件将RAM模拟当做硬盘来使用的一种技术。相对于传统的硬盘文件访问来说,这种技术可以极大的提高在其上进行的文件访问的速度。但是RAM的易失性也意味着当关闭电源后的数据将会丢失。,121,RAID(廉价/独立磁盘冗余阵列),Redundant Array of Inexpensive/Independent Disk把相同的数据存

42、储在多个硬盘的不同的地方(因此,冗余地)的方法。通过把数据放在多个硬盘上,输入输出操作能以平衡的方式交叠,改良性能.并行交叉存取RAID分级,122,RAID1,它具有磁盘镜像功能。两组以上的N个磁盘相互作镜像,除非拥有相同数据的主软盘与镜像同时损坏,否则只要一个磁盘正常即可维持运作,可靠性最高。磁盘利用率最低。,123,RAID3,采用Bitinterleaving(数据交错存储)技术,它需要通过编码再将数据比特分区后分别存在硬盘中,而将同比特检查后单独存在一个硬盘中,但由于数据内的比特分散在不同的硬盘上,因此就算要读取一小段数据资料都可能需要所有的硬盘进行工作,所以这种规格比较适于读取大量

43、数据时使用。,124,RAID5,RAID Level 5 是一种储存性能、数据安全和存储成本兼顾的存储解决方案。RAID 5不是对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID5的一个磁盘数据发生损坏后,可以利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。RAID 5可以理解为是RAID 0和RAID 1的折衷方案。RAID 5可以为系统提供数据安全保障,但保障程度要比镜像低而磁盘空间利用率要比镜像高。,125,RAID6,与RAID 5相比,RAID 6增加了第二个独立的奇偶校验信

44、息块。两个独立的奇偶系统使用不同的算法,数据的可靠性非常高,即使两块磁盘同时失效也不会影响数据的使用。但RAID 6需要分配给奇偶校验信息更大的磁盘空间,相对于RAID 5有更大的“写损失”,因此“写性能”非常差。较差的性能和复杂的实作方式使得RAID 6很少得到实际应用。,126,RAID的优点,可靠性高磁盘IO速度高性能价格比高应用,RAID最初用于高端服务器市场,不过随着计算机应用的快速发展,RAID技术已经渗透到很多领域。如今,在家用电脑主板中,RAID控制芯片也随处可见。就目前而言,PATA、SATA以及SCSI接口的硬盘都可以通过相应的RAID控制芯片来组建RAID系统。在家用电脑上,我们一般只用到RAID 0、RAID 1这两种磁盘阵列方式。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号