版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第四章设备管理
(Devices
Management)
设备管理是指计算机系统对除CPU和内存以外的所有输入、输出设备的管理。设备管理不但要管理实际I/O操作的设备(如磁盘机、打印机),还要管理诸如设备控制器、DMA控制器、中断控制器、I/O处理机(通道)等支持设备。如何有效而又方便地管理好种类繁多的设备是设备管理的重要任务。
教学要求了解设备的分类,熟悉设备管理的目标和功能。熟悉程序I/O方式、中断方式、DMA方式和通道方式四种I/O的控制方式;掌握通道的概念,熟悉通道类型。熟悉缓冲的概念,熟悉单缓冲、双缓冲和多缓冲和缓冲池工作原理,了解UNIX系统的缓冲技术。熟悉I/O系统的目标---设备独立性的概念;熟悉I/O软件分层结构的概念;了解UNIX设备驱动程序结构;了解中断方式I/O处理过程;掌握SPOOLing技术概念和SPOOLing系统的组成。了解设备分配的策略;熟悉独享设备分配中数据结构。了解磁盘结构、数据组织和磁盘的访问时间等磁盘性能,熟悉磁盘调度算法;了解独立磁盘冗余阵列(RAID)技术。目录4.1设备管理的概述4.1.1设备的分类4.1.2设备控制器4.1.3I设备管理的目标和功能4.2I/O控制方式4.2.1程序I/O方式4.2.2中断控制方式4.2.3DMA控制方式4.2.4I/O通道控制方式4.3缓冲技术4.3.1缓冲的引入4.3.2缓冲的类型4.3.3UNIX系统的缓冲技术目录-14.4I/O系统软件4.4.1I/O系统的目标---设备独立性4.4.2I/O软件分层结构4.4.3UNIX设备驱动程序结构4.4.4中断方式I/O处理4.4.5用户空间的软件I/O――SPOOLing系统4.5设备的分配4.5.1设备分配的策略4.5.2独享设备的分配程序目录-24.6磁盘I/O4.6.1磁盘结构4.6.2数据的组织4.6.3磁盘的访问时间4.6.4磁盘(移臂)调度算法4.6.5独立磁盘冗余阵列(RAID)技术4.7Windows2000I/O系统4.7.1Windows2000I/O系统结构4.7.2Windows2000延迟过程调用(DPC)4.7.3Windows2000注册表4.7.4Windows2000I/O系统数据结构4.7.5Windows2000设备驱动程序目录-34.8实验和习题4.8.1注册表编辑器(REGEDT32.EXE/REGEDIT.EXE)的使用4.8.2U盘安装实例4.8.3磁盘I/OAPI函数应用4.8.4选择题4.8.5问答题4.1设备管理的概述
4.1.1设备的分类
I/O设备的种类繁多,从OS观点来看,其重要的性能指标有:数据传输速率、数据的传输单位、设备的共享属性等。1.按传输速率分类低速设备:指传输速率为每秒钟几个字节到数百个字节的设备。典型的设备有键盘、鼠标、语音的输入等;中速设备:指传输速率在每秒钟数千个字节至数十千个字节的设备。典型的设备有行式打印机、激光打印机等;高速设备:指传输速率在数百千个字节至数兆字节的设备。典型的设备有磁带机、磁盘机、光盘机等。2.按信息交换的单位分类块设备(BlockDevice):指以数据块为单位来组织和传送数据信息的设备。这类设备用于存储信息,有磁盘和磁带等。它属于有结构设备。典型的块设备是磁盘,每个盘块的大小为512B~4KB,磁盘设备的基本特征是:①传输速率较高,通常每秒钟为几兆位;②它是可寻址的,即可随机地读/写任意一块;③磁盘设备的I/O采用DMA方式。字符设备(CharacterDevice):指以单个字符为单位来传送数据信息的设备。这类设备一般用于数据的输入和输出,有交互式终端、打印机等。它属于无结构设备。字符设备的基本特征是:①传输速率较低;②不可寻址,即不能指定输入时的源地址或输出时的目标地址;③字符设备的I/O常采用中断驱动方式。3.按资源分配的角度分类独占设备:指在一段时间内只允许一个用户(进程)访问的设备,大多数低速的I/O设备,如用户终端、打印机等属于这类设备。因为独占设备属于临界资源,所以多个并发进程必须互斥地进行访问。共享设备:指在一段时间内允许多个进程同时访问的设备。显然,共享设备必须是可寻址的和可随机访问的设备。典型的共享设备是磁盘。共享设备不仅可以获得良好的设备利用率,而且是实现文件系统和数据库系统的物质基础。虚拟设备:指通过虚拟技术将一台独占设备变换为若干台供多个用户(进程)共享的逻辑设备。一般可以利用假脱机技术(SPOOLing技术)实现虚拟设备。4.1.2设备控制器设备的电子部分叫做设备控制器或适配器。设备控制器的主要职责是控制一个或多个I/O设备,以实现I/O设备和计算机之间的数据交换。在小型和微型机中,它常采用印刷电路卡插入计算机中,控制器卡上通常有一个插座,通过电缆与设备相连,控制器和设备之间的接口是一个标准接口,它符合ANSI、IEEE或ISO这样的国际标准。设备控制器是CPU与I/O设备之间的接口,它既要与CPU通信,又要与设备通信、还应具有按照CPU所发来的命令去控制设备工作的功能。
设备控制器-1因此,现有的大多数控制器都是由以下三部分组成的:设备控制器与处理器的接口、设控制器与设备的接口、I/O逻辑。设备控制器与处理机的接口用于实现CPU与设备控制器之间的通信。共有三类信号线:数据线、地址线和控制线。数据线通常与三类寄存器相连接,它们有不同的地址。第一类是数据寄存器(可能有多个),用于存放从设备送来的数据(输入)或从CPU送来的数据(输出);第二类是控制寄存器(也可能有多个),用于存放从CPU送来的控制信息信息;第三类是状态寄存器(可以简单到只有一位状态位),用于存放设备的状态信息。在I/O逻辑中还有中断控制逻辑,产生中断请求线INT输出,在控制状态寄存器上有相应的中断允许位。设备控制器的内部逻辑结构和CPU、设备联系图如图4-1所示。
P157图4-1设备控制器的内部逻辑结构和CPU、设备联系图
CPU设备数据状态控制数据寄存器控制/状态寄存器I/O逻辑中断控制器8259设备控制器控制器与设备接口i数据线地址线控制线4.1.3设备管理的目标和功能
1.设备管理的目标提高设备的利用率。为此,应尽量提高CPU与I/O设备之间的并行操作程度,主要利用的技术有:中断技术、DMA技术、通道技术、缓冲技术。为用户提供方便、统一的界面。所谓方便,是指用户能独立于具体设备的复杂物理特性之外而方便地使用设备。所谓统一,是指对不同的设备尽量使用统一的操作方式,例如各种字符设备用一种I/O操作方式。这就要求用户操作的是简便的逻辑设备,而具体的I/O物理设备由操作系统去实现,这种性能常常被称为设备的独立性。2.设备管理功能设备分配。指设备管理程序按照一定的算法把某一个I/O设备、及其相应的设备控制器和通道分配给某一用户(进程),对于未分配到的进程,则插入等待队列中。缓冲区管理。为了解决CPU与I/O之间速度不匹配的矛盾,在它们之间配置了缓冲区。这样设备管理程序又要负责管理缓冲区的建立、分配和释放。实现物理I/O设备的操作。对于具有通道的系统,设备管理程序根据用户提出的I/O请求,生成相应的通道程序并提交给通道,然后用专门的通道指令启动通道,对指定的设备进行I/O操作,并能响应通道的中断请求。对于未设置通道的系统,设备管理程序直接驱动设备进行I/O操作。4.2I/O控制方式
随着计算机技术的发展,I/O的控制方式也在不断地发展。一般可分为:程序I/O方式、中断方式、DMA方式和通道方式。I/O的控制方式发展的目标是尽量减少主机对I/O控制的干预。本书设备管理涉及到2种I/O系统,主机型I/O系统和微机型I/O系统。主机型系统以内存为中心,它的体系机构如图1-1所示,由通道方式控制I/O设备与内存的数据传送。微机型系统是总线结构,它的体系机构如图1-2所示,由中断或DMA控制I/O设备与内存的数据传送。P3图1-1主机I/O系统图
终端打印机多路通道
存储器CPU
选择通道P3图1-2微机I/O系统图
CPUDMA打印机终端存储器磁盘控制器打印机控制器终端控制器ATypicalPCBusStructureStructureofalargePentiumsystem
主机I/O系统图4.2.1程序I/O方式
在早期的计算机系统中,由于没有中断机构,处理机对I/O设备直接进行控制,采取程序I/O(ProgrammedI/O)方式、(Polling轮询)或称为忙-等待方式。即在CPU向设备控制器发出一条I/O指令启动I/O设备进行数据传输时,要同时把状态寄存器中的忙/闲标志busy置为1,然后便不断地循环测试busy。当busy=l时,表示该I/O设备尚未输入完一个字(符),CPU应继续对该标志进行测试,直至busy=0。程序I/O方式-1busy=0表示该I/O设备已将输入数据送入到I/O控制器的数据寄存器中,于是CPU将从数据寄存器中取出数据,送入内存的指定单元,接着,再启动去读下一个数据,并置busy=l。在程序I/O方式中,由于CPU的速度远远高于I/O设备,导致CPU的绝大部分时间都处于等待I/O设备完成而循环测试之中,造成了CPU的极大浪费。但是它管理简单,在要求不高的场合可以被采用。P158图4-2(a)程序I/O方式的流程
向I/O控制器发读命令读I/O控制器的状态检查状态?从I/O控制器中读入字向内存中写入字传送完毕?CPU→I/OI/O→CPU未就绪
出错处理就绪I/O→CPUCPU→RAM
未完完成执行下一条I/O指令4.2.2中断控制方式在现代计算机系统中,对I/O设备的控制,广泛地采用中断驱动(Interrupt-driven)方式,即当某进程要启动某个I/O设备时,便由CPU向相应的设备控制器发出一条I/O命令,然后立即返回继续执行原来的任务。设备控制器便按照该命令的要求去控制I/O设备。此时,CPU与I/O设备处于并行工作状态。例如,在输入时,当设备控制器收到CPU发来的读命令后,便准备接收从相应输入设备送来的数据。一旦数据进入数据寄存器,控制器便通过控制线向CPU发送一中断信号,由CPU检查输入过程中是否出错,若无错,便向控制器发取走数据的信号,然后便通过控制器将数据写入指定内存单元。P158图4-2(b)中断驱动方式的流程
向I/O控制器发读命令读I/O控制器的状态检查状态?从I/O控制器中读入字向内存中写入字传送完毕?CPU→I/OCPU做其它事中断I/O→CPU出错处理就绪I/O→CPUCPU→RAM未完完成执行下一条I/O指令InterruptsRevisitedHowinterruptshappens.Connectionsbetweendevicesandinterruptcontrolleractuallyuseinterruptlinesonthebusratherthandedicatedwires中断控制方式-1
所以,中断驱动方式在I/O设备输入数据的过程中,无需CPU干预,可以使CPU与I/O设备并行工作。仅当输完一个数据时,才需CPU花费极短的时间去进行中断处理。从而大大地提高了整个系统的资源利用率及吞吐量,特别是CPU的利用率。4.2.3DMA控制方式
中断驱动I/O方式虽然大大提高了主机的利用率,但是它以字(节)为单位进行数据传送,每完成一个字(节)的传送,控制器便要向CPU请求一次中断(做保存现场信息,恢复现场等工作),仍然占用了CPU的许多时间。这种方式对于高速的块设备的I/O控制显然是不适合。为了进一步减少CPU对I/O的干预,引入了直接存储器访问DMA(DirectMemoryAccess)控制方式。DMA控制方式-1
DMA方式是一种完全由硬件执行I/O数据交换的工作方式,它需要使用一个专门的DMA控制器(DMAC),DMAC中有控制状态寄存器、传送字节计数器、内存地址寄存器和数据缓冲寄存器。在这种方式中,DMAC采用盗窃总线控制权的方法从CPU接管对总线的控制,成批的数据交换不经过CPU而直接在内存和I/O设备之间进行。寄存器DMA控制方式-2
DMA控制方式-3DMA方式下的数据传送过程可分为三个阶段:(1)预处理阶段:当进程要求设备输入数据时,CPU把准备存放输入数据的内存起始地址以及要传送的字节数分别送入DMAC中的内存地址寄存器和传送字节计数器。另外,还把控制状态寄存器中的中断允许位和启动位置成1,从而启动设备,开始进行数据输入。
DMA控制方式-4(2)数据传送阶段:发出数据传输要求的进程进入等待状态,进程调度程序调度其他进程占据CPU。DMAC不断地窃取CPU工作周期,执行数据传送的操作:向内存发出地址和控制信号,进行地址修改,对传送字的个数计数,直到所要求的字节全部传送完毕。
(3)后处理阶段:DMAC在传送完所有字节时,通过中断请求线发出中断信号。CPU在接收到中断信号后,转入中断处理程序进行后续处理。中断处理结束后,CPU返回到被中断的进程中,或切换到新的进程上下文环境中,继续执行。DMA方式较之中断驱动方式,又是成百倍地减少了CPU对I/O控制的干预,进一步提高了CPU与I/O设备的并行操作程度。
DMA控制方式-5DMA控制方式-4OperationofaDMAtransfer4.2.4I/O通道控制方式
1.I/O通道控制方式的引入虽然DMA方式比中断驱动方式已显著地减少了CPU的干预,即由以字(节)为单位的干预减少到以数据块为单位的干预。但是CPU每发出一条I/O指令,也只能去读(或写)一个连续的数据块。而当我们需要一次去读多个离散的数据块且将它们分别传送到不同的内存区域,或者相反时,则需由CPU分别发出多条I/O指令及进行多次中断处理,才能完成。
I/O通道控制方式的引入-1由于DMA每次只能执行一条I/O指令,不能满足复杂的I/O操作要求。在大、中型计算机系统中,普遍采用由专用的I/O处理机--通道来接受CPU的委托,独立执行自己的通道程序来实现I/O设备与内存之间的信息交换,这就是通道技术。通道技术可以进一步减少CPU的干预,即把对一个数据块为单位的读(或写)的干预,减少到对一组数据块为单位的读(或写)的有关的控制和管理的干预。这样可实现CPU、通道和I/O设备三者之间的并行工作,从而更有效地提高了整个系统的资源利用率和运行速度。2.通道程序
通道是通过执行通道程序,并与设备控制器来共同实现对I/O设备的控制。通道程序是由一系列的通道指令(或称为通道命令)所构成。通道指令与一般的机器指令不同,在每条指令中包含的信息较多,有操作码、内存地址、计数(读或写数据的字节数)、通道程序结束位P和记录结束标志R。通道程序-1通道命令及格式:用于I/O操作的命令主要有两种:
I/O指令:启动通道程序通道命令:对I/O操作进行控制。读、反读、写、测试设备状态的数据传输命令、用于设备控制的命令(磁带反绕、换页)、实现通道程序内部控制的转移命令
命令格式一般包括:操作码、数据传输内存地址、特征位、计数器编制一个通道程序,从磁带机上读入200字节的信息,送入内存(1000)16开始的单元。通道命令码:“07”反绕“02”读
CCW1X“07”*X“40”1;
CCW2X“02”1000X“00”200;通道程序-23.通道类型由于外围设备的种类较多,且其传输速率相差很大,所以通道也具有多种类型。根据信息交换方式,可以把通道分成以下三种类型:字节多路通道(ByteMultiplexorChannel)在这种通道中,通常都含有较多个(8,16,32)非分配型子通道,每一个子通道连接一台I/O设备。这些子通道按时间片轮转方式共享主通道。一个子通道完成一个字节的传送后,立即让出字节多路通道(主通道),给另一个子通道使用。它适用于连接低速或中速设备,如打印机、终端等。字节多路通道图通道类型-1数组选择通道(BlockSelectorChannel)这种通道虽然可以连接多台I/O设备,但是它只有一个分配型子通道,在一段时间内只能执行一道通道程序、控制一台设备进行数据传送,其数据传送是按数组方式进行。即当某台设备一旦占用了该通道,就被它独占,直至该设备传送完毕释放该通道为止。可见,它适于连接高速设备(如磁盘机、磁带机),但是这种通道的利用率较低。通道类型-2数组多路通道(BlockMultiplexorChannel)数组选择通道虽然有很高的传输速率,但它每次只允许一个设备传输数据。数组多路通道是将数组选择通道的传输速率高和字节多路通道的分时并行操作的优点结合起来,形成的一种新的通道。它含有多个非分配型子通道,可以连接多台高、中速的外围设备,其数据传送却是按数组方式进行。所以这种通道既具有很高的数据传输速率,又能获得令人满意的通道利用率。
单通道联系图返回多通道联系图返回
通道运算控制部件:通道地址字CAW:记录通道程序在内存中的地址通道命令字CCW:保存正在执行的通道指令通道状态字CSW:存放通道执行后的返回结果通道数据字CDW:存放传输数据4.通道工作原理CPU在执行用户程序时遇到I/O请求,操作系统根据该请求生成通道程序放入内存,并将该通道程序的首地址放入通道地址字CAW中。之后执行“启动I/O”指令,启动通道工作。通道接收到“启动I/O”指令后,从CAW中取出通道程序的首地址,并根据首地址取出第一条指令放入通道命令字CCW中,同时向CPU发回答信号,使CPU可继续执行其他程序,而通道则开始执行通道程序,与CPU并行完成I/O设备数据传输工作。通道工作原理-1
通道程序完成实际I/O,启动I/O设备,执行完毕后,如果还有下一条指令,则继续执行。当通道传输完成最后一条指令时停止工作,向CPU发I/O中断。CPU接收中断信号,执行中断子程序,从通道状态字CSW中取得有关通道状态信息,决定下一步做什么。
通道工作原理-2
4.3缓冲(Buffering
)技术
目前为了解决CPU与I/O设备间速度不匹配的矛盾,提高的I/O速度和设备利用率,在所有的I/O设备与处理机(内存)之间,都使用了缓冲区来交换数据。所以OS必须组织和管理好这些缓冲区。4.3.1缓冲的引入
在操作系统中,引入缓冲的主要原因:1。改善CPU与I/O设备间速度不匹配的矛盾例如一个程序,它时而进行长时间的计算而没有输出,时而又阵发性把输出送到打印机。由于打印机的速度跟不上CPU,而使得CPU长时间的等待。如果设置了缓冲区,程序输出的数据先送到缓冲区暂存,然后由打印机慢慢地输出。这时,CPU不必等待,可以继续执行程序。实现了CPU与I/O设备之间的并行工作。事实上,凡在数据的到达速率与其离去速率不同的地方,都可设置缓冲,以缓和它们之间速度不匹配的矛盾。众所周知,通常的程序都是时而计算,时而输出的。缓冲的引入-12。可以减少对CPU的中断频率,放宽对中断响应时间的限制
如果I/O操作每传送一个字节就要产生一次中断,那么设置了n个字节的缓冲区后,则可以等到缓冲区满才产生中断,这样中断次数就减少到1/n,而且中断响应的时间也可以相应的放宽。3.提高CPU和I/O设备之间的并行性缓冲的引入可显著提高CPU和设备的并行操作程度,提高系统的吞吐量和设备的利用率。4.3.2缓冲的类型
缓冲有硬件缓冲和软件缓冲之分。硬件缓冲是指以专用的寄存器作为缓冲器。软件缓冲是指在操作系统的管理下,在内存中划出若干个单元作为缓冲区。软件缓冲的好处是易于改变缓冲区的大小和数量,但占用了一部分内存空间。根据缓冲区设置个数的多少,可分为单缓冲、双缓冲和多缓冲。根据缓冲区的从属关系,可以分为专用缓冲区和缓冲池。
1.单缓冲(SingleBuffer
)为了提高CPU和设备的并行操作程度,每当一个用户进程发出一个I/O请求时,操作系统便在主存的系统区中为之分配一个缓冲区(如图4-3所示)。例如,CPU从磁盘上读一块数据进行计算要分三步:先从磁盘把一块数据读入到缓冲区中,然后由操作系统将缓冲区的数据传送到用户区,最后由CPU对这一块数据进行计算,这样处理一个数据时间为(T+M+C)
。单缓冲-1当连续读入一组数据时,读入某数据的第一步(输入)和读入它前一个数据的最后一步(计算)是可以并行执行的,这样就提高了CPU和外设的利用率。由于对缓冲区中数据的输入和提取是串行工作的。连续处理一个数据时间=max(C,T)+M。为使两者能并行工作,必须引入双缓冲。单缓冲-2T4T1M1C1T2M2C2T3M3C3t缓冲区用户区用户进程C操作系统传送M输入TI/O设备2.双缓冲(DoubleBuffer
)双缓冲工作方式(也称为缓冲对换方式)基本方法是在设备输入时,先将数据输入到缓冲区A,装满后便转向缓冲区B。此时操作系统可以从缓冲区A中提取数据传送到用户区,最后由CPU对数据进行计算(如图4-4所示)。这样可以实现对缓冲区中读入某数据的第一步(输入)和读入它前一个数据的后二步(传送和计算)二者的并行工作,连续处理一个数据时间=max(T,(M+C)),特别是缓冲区中数据的输入和传送的速度基本相匹配时,可获得较好的效果。所以双缓冲进一步加快了I/O的速度,提高了设备的利用率。
双缓冲-1T2(缓冲B)M2C2T3(缓冲A)M3C3T1(缓冲A)M1C1T4(缓冲B)M4C4缓冲区A用户区缓冲区B用户进程C操作系统传送M输入TI/O设备3。循环缓冲(CircularBuffer
)由于数据I/O多数是间断的,可增加缓冲区的个数来改善CPU与I/O设备间速度不匹配的矛盾。我们可以将多个缓冲区组织成循环队列的形式,其中一些队列专门用于输入,另一些队列专门用于输出。如图4-5显示供给输入进程和计算进程使用的输入缓冲区循环队列,输入进程先不断向队列中空缓冲区R输入数据,计算进程再从队列中装满数据的缓冲区G中提取数据用于计算。
循环缓冲图RRGGGG用户区用户进程操作系统I/O设备输入传送计算4.缓冲池
当系统配置较多的设备时,使用专用缓冲区就要消耗大量的内存空间,且其利用率不高。为了提高缓冲区的利用率,目前广泛使用公用缓冲池,池中的缓冲区可供多个进程共享。对于同时用于输入/输出的公用缓冲池,至少含有三种类型的缓冲区:空缓冲区、装满输入数据的缓冲区和装满输出数据的缓冲区。为了管理上的方便,可将相同类型的缓冲区链成一个队列,于是就形成三个队列:空缓冲区队列emq、输入缓冲区队列inq和输出缓冲区队列outq。缓冲池-1另外还应具有四种工作缓冲区:⑴用于收容输入数据的工作缓冲区(hin);⑵用于提取输入数据的工作缓冲区(sin);⑶用于收容输出数据的工作缓冲区(hout);⑷用于提取输出数据的工作缓冲区(sout)。缓冲池有收容输入、提取输入、收容输出和提取输出四种工作方式(如下图所示)。缓冲池-2输入过程包括收容输入和提取输入,收容输入完成从输入设备输入数据到缓冲区并排入输入缓冲区队列,提取输入完成从输入缓冲区队列的缓冲区中取出输入数据到进程用户区。收容输入工作方式分三步:第一步从空缓冲区队列队首申请一个空缓冲区作为用于收容输入数据的工作缓冲区(hin),第二步从输入设备输入数据到工作缓冲区(hin),第三步将装满输入数据的缓冲区插入到输入缓冲区队列队尾,如下图中1、2、3带箭头的线。提取输入的三步如下图中4、5、6带箭头的线。P163图4-6缓冲池工作原理123hin
3L(out)151372F(out)sout5输入设备输出设备L(em)121063F(em)sin
4hout1
用
户
程
序。。O84F(in)L(in)4564.3.3UNIX系统的缓冲技术
UNIX系统采用缓冲池技术,来平滑和加快文件信息从内存到磁盘的传输,并充分利用以前从磁盘读入已传入用户区、但仍在缓冲区的数据。当从磁盘上读数据时,如果数据已经在缓冲区中,则核心就直接从缓冲区中读出,而不必从盘上读;当数据不在缓冲区时,核心先把数据从磁盘传送到缓冲区,再由缓冲区读出。目的在于尽可能减少磁盘I/O的次数,提高系统运行的速度。1。缓冲控制块
UNIXSystemⅤ有一个由200个缓冲区组成的缓冲池。每个缓冲区的长度可以是512字节或1024字节。每个缓冲区由两部分组成:存放数据的区域被称为缓冲数据区。用于控制的区域被称为缓冲控制块或缓冲首部。缓冲区和缓冲控制块一一对应。系统通过缓冲控制块来实现对缓冲区的管理,保证一个盘块一次只能映射一个缓冲区。缓冲控制块的数据结构如图4-7所示。其中,逻辑设备号和盘块号分别标志出文件系统和数据所在的盘块号,它们是缓冲区的唯一标志。状态项指明了该缓冲区当前的状态:忙∕闲、上锁∕开锁、是否延迟写、数据有效性等。还有两组指针(av和b)用于对缓冲池的分配管理。
缓冲控制块-1
2.缓冲池结构
缓冲池利用缓冲控制块的两组指针组成多个缓冲区队列:空闲缓冲区队列(空闲av队列)、设备缓冲区队列(设备b链、散列队列)和设备I/O请求队列(块设备av链)等。空闲av队列是系统所拥有的所有空闲缓冲区资源,系统只有一条,队列头部为bfreelist。在系统初始化时,所有的缓冲区按序号高低挂在空闲av队列上。当文件系统申请一个缓冲区时,从空闲av队列队首取下一个缓冲区,而一个缓冲区被释放时则挂入空闲av队列队尾。缓冲池结构-1
设备b链链接所有分配给各类设备使用的缓冲区,每类设备都有自己的设备b链,每类设备的设备b链按散列算法组成64个散列队列,每个队列头部都有自己的头标。当系统为一个设备b_dev中的逻辑块号b分配一个缓冲区之后,该缓冲区排入散列队列头标为:i=(b_dev+b)mod64。图4-8显示了缓冲池的链接结构,其中,实线表示空闲av队列链,由一个空闲av队列头指示。多条虚线各表示不同的散列队列,同一行是具有同一散列值的队列,由散列队列头标指示。每个物理块设备都有一个I/O请求队列,设备I/O请求队列是由正在请求该块设备进行读写操作的缓冲区所组成的队列,用av单向链,队列头部为设备控制表(DCT)。其中的缓冲区使用与前面所述的缓冲控制块不完全相同的I/O缓冲控制块,以指示物理设备是否正在使用以及有关寄存器的地址等。
P164图4-8缓冲池的链接结构块号mod64=0块号mod64=1块号mod64=2块号mod64=3………12819264165130661292313167空闲av队列头散列队列头标缓冲池结构-2a.空闲链表(空闲缓冲队列、空闲av链)
:buf用av双向链,且只有一条,队列头部为bfreelist
。b.散列队列(设备缓冲队列、设备b链):链接所有分配给各类设备使用的缓冲区。buf用b双向链,可以有64个队列,每个队列头部有头标。设备为b_dev上的逻辑块b在散列队列的头标为:i=(b_dev+b)mod64c.设备IO请求队列:buf用av单向链,d.空设备队列:buf用b双向链,队列头部为bfreelist缓冲池结构-3每个buf同时在av链和b链:a.开始:在空闲av链和空设备队列。b.开始IO请求:在设备IO请求队列和散列队列。c.IO完成:在空闲av链和散列队列。d.以后IO请求:在设备IO请求队列和散列队列,在散列队列改变队列。缓冲池的链接结构图例图中,红实线表示空闲av队列链,由一个空闲av队列头指示。多条虚线各表示不同的散列队列,同一行是具有同一散列值的队列,由散列队列头标指示。每个物理块设备都有一个I/O请求队列,设备I/O请求队列是由正在请求该块设备进行读写操作的缓冲区所组成的队列,用av单向链,队列头部为设备控制表(DCT)。其中的缓冲区使用与前面所述的缓冲控制块不完全相同的I/O缓冲控制块,以指示物理设备是否正在使用以及有关寄存器的地址等。
块号mod4=0块号mod4=1块号mod4=2块号mod4=3284641759850971033599自由链链头4.缓冲区的分配和释放当进程想从指定的盘块读取数据时(把数据写到指定的盘块类同),核心根据盘块号从散列队列中查找,如找到缓冲区,则将该缓冲区状态标记为“忙”,并从空闲av队列中取下,接着完成从缓冲区到内存用户区的数据传送。如在散列队列中未找到时,则从空闲av队列队首摘取一个缓冲区,插入设备I/O请求队列。并从原散列队列中取下,插入由读入信息盘块号确定的新的散列队列中。当数据从磁盘块读入到缓冲区后,缓冲区从设备I/O请求队列取下。当核心完成从缓冲区到内存用户区的数据传送后,要把缓冲区释放,链入空闲av队列队尾。缓冲区的分配和释放-1当数据从磁盘块读入到缓冲区,并传送到内存用户区后,该缓冲区一直保留在原散列队列中,即它的数据一直有效。如它又要被使用,则又要从空闲av队列链中取下,使用完后插入到空闲av队列队尾。如它一直未使用,则该缓冲区从空闲av队列队尾慢慢升到队首,最后被重新分配,旧的盘块数据才被置换。由此可知,核心对缓冲区的分配是采用接近LRU算法。
4.4I/O系统软件4.4.1I/O系统的目标---设备独立性为了提高操作系统的可适应性和可扩展性,目前几乎所有的操作系统都实现了设备的独立性(DeviceIndependence)(也称为设备无关性)。
用户程序的设备独立性是:用户程序不直接使用物理设备名(或设备的物理地址),而只能使用逻辑设备名;而系统在实际执行时,将逻辑设备名转换为某个具体的物理设备名,实施I/O操作。设备独立性-1
I/O软件的设备独立性是:除了直接与设备打交道的低层软件之外,其他部分的软件并不依赖于硬件。I/O软件独立于设备,就可以提高设备管理软件的设计效率。逻辑设备是实际物理设备属性的抽象,它并不限于某个具体设备。例如在MS-DOS中,最基本的输入、输出设备(键盘和显示器)用一个公共的逻辑设备名CON(控制台),并由同一个设备驱动程序来驱动和控制;并行打印机的逻辑设备名为PRN或LPTi等等。使用逻辑设备名是操作系统对用户程序的设备独立性的具体支持。在系统实现了设备独立性的功能后,可以带来以下两方面的好处:设备独立性-2(1)设备分配时的灵活性当进程以逻辑设备名请求某类设备时,如果一台设备已经分配给其它进程或正在检修,此时系统可以将其它几台相同的空闲设备中的任一台分配给该进程,只有当此类设备全部被分配完时,进程才会被阻塞。
(2)易于实现I/O重定向所谓I/O重定向,指用于I/O操作的设备是可以更换,应用程序的输入、输出是可以重定向,而不必修改应用程序。在Windows中,默认标准的输入设备是键盘,输出设备是显示器,如果想改变标准的输入、输出设备,可以用转向符。设备独立性-3例如:C:\>DIR>DIR.LST将DIR命令的输出结果送文件DIR.LST。C:\>DIR>PRN将DIR命令的输出结果送打印机。为了实现设备的独立性,必须在驱动程序之上设置一层软件,称为设备独立性软件,其主要功能有以下两个方面:⑴执行所有设备的公有操作;⑵向用户层(或文件层)软件提供统一的接口。设备独立性-3为了实现逻辑设备名到物理设备名的映射,系统必须设置一张逻辑设备表LUT(LogicalUnitTable),能够将应用程序中所使用的逻辑设备名映射为物理设备名,并提供该设备驱动程序的人口地址。逻辑设备表LUT如下所示:逻辑设备名物理设备名驱动程序的人口地址
/dev/tty31024/dev/printer520464.4.2I/O软件分层结构
I/O软件采用分层结构,它把软件组织成为一系列的层,低层参与隔离硬件特征,使其它部分软件不依赖硬件;而高层则参与向用户提供一个友好的、清晰而统一的接口。I/O软件一般共分四层:中断处理程序,设备驱动程序,与设备无关的操作系统软件,以及用户级软件(指用户空间的I/O软件),如图4-9所示。从功能上看,设备无关层是I/O管理的主要部分;从代码量上看,驱动层是I/0管理的主要部分。分层是相对灵活的,一些具体分层时细节上的处理是依赖于系统的。I/O软件分层结构图I/O软件分层结构
-1现代操作系统通过使用重构设备驱动程序技术,简化了驱动程序的安装。这种系统允许安装好新的输入输出设备后,只要增加相应的设备驱动程序到操作系统,而无需编译操作系统,只要通过一些操作来重新配置系统。这种可重构性,是通过允许在操作系统设计中,动态地将操作系统代码与驱动程序结合起来而实现的。LayersoftheI/OSoftwareSystemI/O软件分层结构-2大部分I/0软件都包含在操作系统中,用户程序的I/0软件是有关实现I/O系统调用的库函数和SPOOLing系统等。所有设备所需要的I/O功能在与设备独立的软件中实现,这类软件面向应用层并提供一个统一的应用编程接口(API),它提供了一组功能函数,应用程序员能够通过调用它们管理设备。这个接口是设备硬件的一个大大简化了的简单抽象的接口,提供的是对具有逻辑性质的逻辑设备上的逻辑操作。由文件系统和设备管理功能接受、翻译、转换为相应的物理设备、物理性质、物理操作。与设备无关的系统软件实现的功能有:设备驱动程序的统一接口,设备命名,设备保护,提供一个与设备无关的逻辑块,缓冲,存储设备的块分配,独占设备的分配和释放,错误处理等。I/O软件分层结构-3设备驱动程序的主要功能将来自上层软件的与设备无关的的抽象请求转为具体请求,向有关的输入输出设备的各种控制器的寄存器发出控制命令,并监督它们的正确执行,进行必要的错误处理。还要对各种可能的有关设备排队、挂起、唤醒等操作进行处理,执行确定的缓冲区策略等。一旦CPU响应中断,转人中断处理程序。中断处理程序首先检查响应中断的条件是否满足,如果响应中断,则关中断,保存被中断进程现场,分析中断原因,调用并执行中断处理子程序,最后退出中断,恢复现场,开中断。
4.4.3UNIX设备驱动程序结构
设备驱动程序的结构同输入输出设备的硬件特性有关,不同的操作系统中,对设备驱动程序的结构的要求是不同的。UNIX把设备分为块设备或字符设备二类,并规定了两个标准化的接口(设备驱动API):块设备接口或字符设备接口,两个接口都定义了一组固定的函数(close、ioctl、open、read、select、strategy、stop、write),它以统一的文件方式处理物理设备,以此来简化设备的应用编程模型。UNIX设备驱动程序结构
-1在UNIX系统中,每类设备都有一个驱动程序,用它来控制该类设备。任何一个驱动程序通常都包含了满足标准化的接口要求的用于执行不同操作的多个函数,如打开、关闭、启动设备、读和写等函数,它是标准化的接口函数的一个子集,从而可以对特殊设备进行操作。块设备没有read/write的入口点,而用strategy入口点定义了读写操作入口点。UNIX设备驱动程序结构-2这种方法允许调用内核的缓冲例程,系统为块设备的I/O数据在内存设立了缓冲。为使核心能方便地转向各函数,系统为每类块设备提供了一个块设备开关bdevsw,其中有该类设备的各函数的入口地址,它是核心与驱动程序的接口。如系统含有通用磁盘,通用磁带和控制台磁带时bdevsw的预置情况如下:
structbdevswbdevsw[]={
/*0*/gdopen,gdclose,gdstrategy,/*1*/gtopen,gtclose,gtstrategy,/*2*/cdtopen,cdtclose,cdtstrategy,};设备开关表及系统调用和驱动程序间的接口关系如图4-10所示。图4-10设备开关表、系统调用和驱动程序间的接口
opencloseopenclosereadwriteioctlmountumountreadwrite
字符设备开关表高速缓冲调用
块设备开关表openclosereadwriteioctl字符设备驱动程序字符设备中断处理程序openclosestrategy块设备驱动程序块设备中断处理程序
中断向量
中断向量返74.4.4中断方式I/O处理
在使用中断的微机系统中,执行输入请求的处理步骤如图4-11所示。(1)应用进程请求读操作。(2)设备启动程序(设备驱动程序的上半部分)查询设备控制器的状态寄存器,确定设备是否空闲;如果设备忙,则设备启动程序等待,直到它变为空闲为止。(3)设备启动程序把输入命令存人设备控制器的命令寄存器中,从而启动设备。中断方式I/O处理-1
(4)设备启动程序将相应信息写入到设备状态表的设备对应表项中,如最初调用的返回地址,以及I/O操作的一些特定参数等。然后CPU就可以分配给其他进程使用了,因此设备管理器调用进程管理器的调度程序执行,原进程的执行就被暂停了。(5)经过一段时间设备完成了I/O操作后,设备控制器发出中断请求,中断CPU上运行的进程,从而引起CPU运行中断处理程序。
中断方式处理I/O操作-2(6)中断处理程序确定是哪个设备引起的中断,然后转移到该设备对应的设备处理程序(设备驱动程序的下半部分)执行。(7)设备处理程序重新从设备状态表中,找到等待I/O操作的状态信息。(8)设备处理程序拷贝设备控制器的数据寄存器的内容到用户进程的内存区。(9)设备处理程序返回给应用进程控制权,从而继续运行。P168图4-11中断方式处理I/O操作步骤
中断方式处理I/O操作-2在以上处理I/O操作过程中,中断处理程序和设备处理程序二程序一起完成对中断请求的处理,但二者工作方式不同,前者必须关中断运行,或是以高优先权方式运行;而后者可以开中断运行,或以低优先权方式运行。这种把“长”中断服务程序分成二个程序的方法是为了减少系统对I/O处理的响应时间。要保证随时可能发生的中断信号不被丢失,要及时做一些信号的保存,读取甚至传递工作,这一阶段的工作要求快速处理,采用关中断方式运行,将其称为中断处理的低级阶段。中断方式处理I/O操作-3而那些与设备有关的数据结构的处理,它要花费中断处理的大部分时间,采用开中断运行,将其称为中断处理的高级阶段。对应在Linux中,把一次中断处理分割为两部分:快速的tophalf中断处理和慢速的bottomhalf中断处理。在Windows2000慢速的中断处理用延迟过程调用DPC。
4.4.5用户空间的软件I/O――
SPOOLing系统
早期批处理系统中使用的虚拟技术是以脱机方式工作的。为了缓和CPU和I/O设备之间的速度不比配的问题。利用专门的外围控制机将低速I/O设备上的数据传送到高速磁盘上,或者相反。当多道程序设计的分时系统出现后,SPOOLing技术就孕育而生,它将一台独占设备改造成可以共享的虚拟设备。1.什么是SPOOLing技术
当多道程序程序技术出现后,就可以利用一道程序,来模拟脱机输入时的外围控制机的功能,即把低速I/O设备上的数据传送到高速的磁盘上;再用另一道程序来模拟脱机输出时外围控制机的功能,即把数据从磁盘传送到低速I/O设备上。这样,便在主机的直接控制下,实现脱机输入、输出功能。所以,我们把这种在联机情况下实现的同时与外围设备联机操作的技术称为SPOOLing(SimultaneousPeripheralOperationOnLine),或称为假脱机技术。2.SPOOLing系统的组成
SPOOLing系统是对脱机输入、输出工作的模拟,它必须有高速随机外存(硬盘)的支持。SPOOLing系统主要有以下三部分(如下图所示):输入井和输出井:在磁盘上开辟的两个大的存储空间。输入井模拟脱机输入时的磁盘,用于收容I/O设备输入的数据。输出井模拟脱机输出时的磁盘,用于收容用户程序的输出数据。输入缓冲区和输出缓冲区:在内存中开辟两个缓冲区:输入缓冲区和输出缓冲区。输入缓冲区用于暂存由输入设备送来的数据,再传送到输入井。输出缓冲区用于暂存从输出井送来的数据,再传送给输出设备。SPOOLing系统的组成-1
输入进程SPi和输出进程SPo
进程SPi
模拟脱机输入时的外围控制机,将用户要求的数据从输入机通过输入缓冲区再送到输入井。当CPU需要输入数据时,直接从输入井读入内存。SPo
进程模拟脱机输出时的外围控制机,把用户要求输出的数据,先从内存送到输出井,待输出设备空闲时,再将输出井中的数据,经过输出缓冲区送到输出设备上。
输入进程SPi输出进程SPo输入缓冲区
输出缓冲区
输入井
输出井输入设备输出设备磁盘内存SPOOLing系统磁盘通道主机通道卡片机通道打印
机spooling系统作业#3.共享打印机打印机虽然是独享设备。但是通过SPOOLing技术,可以将它改造为一台可供多个用户共享的设备,共享打印机技术已被广泛地用于多用户系统和局域网络。为此,SPOOLing系统创建一个特殊进程,称为守护(daemon)进程,以及一个特殊目录,称为SPOOLing目录。当用户进程请求打印输出时,SPOOLing系统并不是真正把打印机分配给该用户进程,而由守护进程为它在磁盘中申请一个存储空间,并将要打印的数据以文件的形式存放于SPOOLing目录下。然后由守护进程依次完成该目录下文件的打印工作,该进程是唯一一个拥有使用打印机特殊文件权限的进程。总之,利用SPOOLing技术可以提高I/O的速度,将独占设备改造为共享设备,实现虚拟设备的功能。4.5设备的分配
在多道程序环境下,设备必须由系统分配。每当进程向系统提出I/O请求时,设备分配程序按照一定的策略,把其所需的设备及其有关资源(如缓冲区、控制器和通道)分配给该进程。在分配设备时还必须考虑系统的安全性,避免发生死锁现象。4.5.1设备分配的策略1.根据设备的固有属性而采取的策略独享方式:
独享方式是指将一个设备分配给某进程后,便一直由它独占,直至该进程完成或释放该设备为止,系统才能将该设备分配给其它进程使用。这种分配方式是对独占设备采用的分配策略。它不仅往往造成设备利用率低,而且还会引起系统死锁。共享方式:
共享方式是指将共享设备(磁盘)同时分配给多个进程使用。但是这些进程对设备的访问需进行合理的调度。虚拟方式:
虚拟方式是指通过高速的共享设备,把一台慢速的以独占方式工作的物理设备改造成若干台虚拟的同类逻辑设备,这就需要引入SPOOLing技术。虚拟设备属于逻辑设备。2.设备分配算法(与进程的调度算法相似)先来先服务:当多个进程同时向某一设备提出I/O请求时,该算法就根据对该设备提出请求的先后次序将这些进程排列成一个设备请求队列,设备分配程序把设备首先分配给队首进程。优先级高者优先:对优先权高的进程所提出的I/O请求赋予高优先权,在形成设备队列时,将优先级高的进程排在设备队列前面,先得到分配。而对于优先权相同的I/O请求,则按先来先服务原则排队分配。3.设备分配中的安全性安全分配方式
每当进程发出一个I/O请求后,便进入阻塞状态,直到其I/O操作完成时才被唤醒。当它运行时不保持任何设备资源,打破了产生死锁一个必要条件—“请求和保持”,所以这种分配方式是安全的。但是这种分配算法使得CPU与I/O设备串行工作,设备的利用率比较低。设备分配中的安全性-1不安全分配方式进程发出一个I/O请求后仍可以继续运行,需要时还可以发第二个I/O请求、第三个I/O请求。只有当进程所请求的设备已被另一个进程占用时,进程才进入阻塞状态。这种分配方式是不安全,因为它可能具备“请求和保持”条件,从而可能造成系统死锁。如第二章图所示进程P1发出第一个I/O请求,占有了资源1后,在继续向前推进时,又要申请资源2;此时,进程P2却占有了资源2,在继续向前推进时,又要申请资源1,从而造成系统死锁。所以,在设备分配程序中应该增加安全性检查的功能。4.5.2独享设备的分配程序
主机系统的独享设备分配程序是负责向对系统提出I/O请求的进程分配设备,及其相应的控制器和通道。
(见图)1.设备分配中数据结构数据结构有:系统设备表(SDT)、设备控制表(DCT)、控制器控制表(COCT)、通道控制表(CHCT)。每个表的具体内容如下图所示。在整个系统中,有一张系统设备表(SDT),用于记录系统中全部设备的信息。每个设备占一个表目,其中包括设备类型、设备标识符、设备控制表指针及设备驱动程序的入口地址等表项。独享设备分配程序-1系统为每一个设备都配置了一张设备控制表(DCT),用于记录该设备的情况。表中除了有用于指示设备类型的字段和设备标识符字段外,还应有下列字段:设备队列的队首指针:凡因请求本设备而未得到满足的进程,其PCB都应按照一定的策略排成一个队列,称为设备请求队列或简称为设备队列。其队首指针指向队首PCB,在有的系统中还设置了队尾指针。设备状态:当设备自身处于“忙”状态时,将设备的忙标志置“l”。若与该设备相连接的控制器或通道处于“忙”状态,而不能启动该设备,则将设备的等待标志置“l”。独享设备分配程序-2COCT表指针:该指针指向与该设备相连接的控制器的控制表。在具有多条通路的情况下,一个设备可与多个控制器相连接。此时,在DCT中应设置多个控制器表指针。重复执行次数:外部设备在传送数据时,若发生信息传送错误,系统并不立即认为传送失败,而是允许它重新传送。只要在规定的重复次数或时间内恢复正常传送,则仍认为传送成功,否则才认为传送失败。P172图4-13设备分配的数据结构
表目1……表目i……设备类型设备标识符进程标识符DCT表指针驱动程序入口地址表目1……表目i……设备类型设备标识符设备状态(等待/不等待,忙/闲)COCT表指针重复执行的次数或时间设备队列的队首指针设备队列的队尾指针表目1……表目i……控制器标识符控制器状态(忙/闲)CHCT表指针控制器队列的队首指针控制器队列的队尾指针表目1……表目i……通道标识符通道状态(忙/闲)COCT表指针通道队列的队首指针通道队列的队尾指针SDT集合SDTDCT集合DCTCOCT集合COCTCHCT集合CHCT设备分配程序-2
2.单通道的系统设备分配程序
对于具有单通道的系统,则当进程提出I/O请求后,系统依次查找图4-13的SDT和DCT、COCT、CHCT四个表,分别从中找出设备、相连的控制器、通道,根据相应表目状态字可知它是否正忙(DCT表目还要看状态字是否等待)。若忙,便将请求I/O进程的PCB挂在它的等待队列上;否则,便将它分配给进程。只有在设备、控制器和通道三者都分配成功时,这次的设备分配才算成功。然后,便可启动该I/O设备进行数据传送。
单通道系统的设备分配流程
进程P提出所需的I/O设备根据物理设备名,从SDT中找出该设备的DCT由DCT的设备状态字段,检查该设备是否忙?将该进程的PCB插入到该设备的等待队列中检查本次设备分配是否安全性?将此设备分配给该进程从其DCT中找出与该设备连接的控制器的COCT,检查该控制器是否忙?将该进程的PCB插入到该控制器的的等待队列中将该控制器分配给进程从COCT中找到与该控制器连接的通道的CHCT,检查该通道是否忙?将该进程的PCB插入到该通道的的等待队列中将该通道分配给进程至此,设备、控制器和通道三者都已分配成功启动I/O设备,进行具体的I/O操作不忙若忙不安全不忙忙
忙不忙设备分配程序-3
3。设备分配程序的改进为了获得设备的独立性,进程应用逻辑设备名请求I/O。这样,系统首先从SDT中找出第一个该类设备的DCT。如忙,则查找第二个该类设备的DCT,当所有该类设备都忙时,才把进程挂在该类设备的等待队列中。实际上,系统为了提高可靠性和灵活性,通常采用多通路的I/O系统结构(见图)。此时对多个控制器和通道的分配,必须查找所有的控制器和通道,才能决定是否将该进程挂起。为进程P分配所需的I/O设备从SDT表查该类设备的控制表DCT由DCT检查该设备忙否?不忙检查分配此设备的安全性?不安全分配此设备给进程P查此设备连接的COCT忙否?不忙不忙分配此控制器给进程P查此控制器连接的CHCT忙否?最后一个DCT?分配此通道给进程P启动I/O,进行具体的I/O操作忙进程P的PCB放入此设备的等待队列YN忙最后一个COCT?最后一个DCT?进程P的PCB放入此控制器的等待队列YNY忙最后一个CHCT?Y最后一个COCT?进程P的PCB放入此通道的等待队列NYNN多通路设备分配流程示意图4.6磁盘I/O(DiskI/O)在现代的计算机系统中,都把磁盘作为文件存储器,因为磁盘存储器不仅容量大(硬盘单个容量可达28GB),存取速度快(内部传输率达257MB/sec),而且是可以随机存取的共享设备,是实现虚拟存储器所必需的硬件。提高磁盘I/O速度,系统应选择性能好的磁盘,采用好的磁盘调度算法和设置磁盘高速缓冲区。4.6.1磁盘结构
磁盘存储器由磁盘驱动器、磁盘控制器和磁盘(片)三个部分组成。在硬盘存储器中,将若干个盘片组合在一起,形成一个盘片组。当驱动器旋转时,所有盘片都沿轴平面转动,目前硬盘转速已达每分钟7200转。紧靠着盘片的是传动臂,臂的末端是读写头。按磁头的工作方式,可以分为活动头磁盘和固定头磁盘。
柱面扇区磁臂磁头磁盘结构-1活动头磁盘:
活动头磁盘一个盘面上仅配有一个磁头,所有磁头都安装在一个传动臂上,在访问盘面上的磁道时,传动臂在步进电机的控制下,可在整个盘面上从外向内,或从内向外移动,这称为寻道。活动头磁盘只能进行串行读/写,导致I/O速度较馒,但是由于结构简单,仍广泛用于中、小型磁盘设备中。微机上配置的温盘和软盘,都采用活动磁头结构。固定头磁盘:
固定头磁盘在每条磁道上都有一个读/写磁头,所有的磁头都被装在一刚性磁臂中,通过这些磁头可访问所有的磁道,可以进行并行读/写操作,有效地提高了磁盘的I/O速度。这种结构的磁盘主要用于大容量磁盘上。4.6.2数据的组织
1.磁盘的容量磁盘设备中,一般包含一个或多个盘片,每片分两面,每面又可分成若干条磁道(即n个同心圆)。最外边的磁道标为0道,最里面的磁道为n-1道。磁道的个数取决于盘的大小和存储的密度。每个磁道又被划分为若干个扇区,一般被划分成10~100个扇区。每一个扇区是磁盘存储信息和传送信息的基本单位(512字节),又称为存储块,或简称为块。我们常用的3.5英寸的软盘怎样来计算的容量呢?磁盘的容量-1软盘的容量=每扇区的字节数(512字节)×(扇区数/道)×(磁道数/面)×(面数),所以3.5英寸软盘的总量=512×18×80×2=1.44MB。一个容量较大的硬盘含有若干个盘片,每一个盘片有上下两个盘面。如果硬盘中有4个盘片,则共有8个磁面。磁盘中处于相同磁道(同心园)位置上,但在不同盘面上的磁道的集合,称为柱面。柱面的序号与磁道的序号相同。
磁盘的容量-2显然,存取同一柱面上各磁道中的信息不必移动磁头。而磁盘存取信息的大部分时间是化费在移动磁头到相应磁道上,所以,把相关信息存储在同一柱面上,可以使存取速度更快,更有效。那么,我们又怎样来计算硬盘的容量呢?硬盘的容量=每扇区的字节数(512字节)×(扇区数/道)×(柱面数)×(磁头数)例如一个硬盘有15个磁头,8894个柱面,每道63个扇区,则它的容量=512×63×8894×15=4.3GB。DisksparametersDiskparametersfortheoriginalIBMPCfloppydiskandaWesternDigitalWD18300harddisk2.物理扇区号和逻辑扇区号
扇区是磁盘存储和传送信息的基本单位。要在磁盘上访问一个扇区,必须给出其磁道号(或柱面号)、盘面号(磁头号)和扇区号,这样才能准确地定位要访问的扇区,这称为扇区的物理地址,即物理扇区号。由物理扇区号表示的扇区称为绝对扇区。为了方便,操作系统通常将其转变为逻辑扇区号加以管理。编址方式为:在磁道上按扇区号增加,在柱面上按磁道号增加,对整个磁盘从柱面0到最后一个柱面增加。例如,每磁道扇区数为S,每个柱面的磁道数为T,那么可将柱面号i,盘面号为j,扇区号为k的物理扇号转换为逻辑扇区号为:b=k+S*(T*i+j)。操作系统中,都以逻辑扇号为文件分配扇区,也以逻辑扇号来调用块设备驱动程序,进行磁盘的读/写操作。
4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年广东江门中医药职业学院单招综合素质考试题库带答案详解(综合题)
- 2026年广东茂名农林科技职业学院单招职业倾向性测试题库附答案详解(a卷)
- 2026年常州工程职业技术学院单招职业倾向性测试题库附参考答案详解(夺分金卷)
- 2026年广东碧桂园职业学院单招职业适应性测试题库及答案详解(全优)
- 2026福建龙岩上杭县通贤中心小学招聘数学代课教师3人笔试备考题库及答案解析
- 2026年广东省潮州市单招职业倾向性考试题库带答案详解(培优b卷)
- 施工材料管理方案
- 2026年广西体育高等专科学校单招综合素质考试题库附参考答案详解(培优)
- 2026年广州卫生职业技术学院单招职业技能考试题库含答案详解(新)
- 2026年广东农工商职业技术学院单招职业技能考试题库含答案详解
- 煤矿瓦斯抽采工程设计标准
- 2025年初中语文名著阅读《林海雪原》知识点总结及练习
- 桥梁单位工程验收自评报告模板
- 《护理教学查房》课件
- 光伏发电EPC工程总承包施工组织设计
- 《银行碳中和网点建设指南》
- 膈下脓肿护理查房
- DB31-T 1438.2-2024 用水定额 第2部分:工业
- 数字营销效果评估模型-洞察分析
- 《形象塑造》课件
- 无人机植保项目投标方案(技术标)
评论
0/150
提交评论