设备管理课件_第1页
设备管理课件_第2页
设备管理课件_第3页
设备管理课件_第4页
设备管理课件_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

12三月2024设备管理课件本章目录7.1设备管理概述7.1.1I/O系统的组织结构7.1.2计算机设备的分类7.1.3设备管理的目标与功能7.1.4设备管理的数据结构7.2I/O的四种实现方式7.2.1程序轮询控制I/O7.2.2中断驱动I/O7.2.3直接内存访问I/O7.2.4通道管理I/O7.3缓冲、虚拟设备与SPOOLing技术7.3.1I/O缓冲7.3.2虚拟设备与SPOOLing技术7.4磁盘及磁盘的移臂调度策略7.4.1磁盘的格式化7.4.2磁盘的性能参数7.4.3磁盘的移臂调度策略7.4.4独立磁盘冗余阵列:RAID7.5Linux的I/O管理7.5.1Linux设备管理综述7.5.2Linux对字符设备的管理7.5.3Linux对块设备的管理7.5.4Linux的磁盘调度计算机除主机之外全部属外设27.1设备管理概述7.1.1I/O系统的组织结构控制器

1.整个I/O结构分成三个层次:底层是具体的设备和硬件接口,中间是系统软件(与设备相关软件、与设备无关软件),最上面是用户程序。.打印机摄像机硬盘设备打印机控制器摄像机控制器磁盘控制器打印机驱动程序摄像机驱动程序磁盘驱动程序I/O接口程序硬件接口与设备相关软件与设备无关软件用户程序进程A进程B进程C进程N用户空间内核空间I/O设备一般由机械和电子两个部分组成。为了使设计更加模块化、更具通用性,也为了降低设计制作的成本,如今常把它们分开来处理:电子部分称作是“设备控制器”或“适配器”;机械部分仍被称作是“设备”。.3.设备控制器的一端与计算机连接,另一端与设备本身连接,如图所示。设备控制器上通常有连接器,由设备引出的电缆可以插入到该连接器中,完成与设备控制器的连接。很多设备控制器可同时连接2个、4个甚至8个相同的设备,它们将共享设备控制器里的I/O逻辑部件。数据寄存器控制/状态寄存器I/O逻辑部件设备控制器与I/O设备的接口i设备控制器与I/O设备的接口1设备控制器与I/O设备的接口2数据线地址线控制线数据状态控制数据状态控制数据状态控制CPU与设备控制器接口设备控制器与I/O设备接口CPU

设备控制器除要将设备与计算机连接外,还有更为重要的任务是随时监视设备所处状态,实现对设备的控制与操作。..为能使CPU与设备控制器中的各寄存器进行通信,常采用两种方法(1)单独的I/O空间:设备控制器里每个寄存器都有一个I/O端口号,它们单独组成地址空间。计算机系统除了内存空间外,还有I/O端口地址空间。CPU将用不同的指令,完成对这两个空间的访问。(2)内存映射I/O:这时设备控制器里的每个寄存器没有特定的设备地址,而是与一个内存地址关联,这些地址不分配作他用。这种系统称为“内存映射I/O”。CPU将通过相同的指令,实现对整个内存空间的访问。4设备驱动程序

2.操作系统中与设备相关的设备管理软件是设备驱动程序,用于实现对具体设备的管理和操作;与设备无关部分的设备管理软件是一些系统调用,用来把用户的I/O请求导向到具体的设备驱动程序。..要让设备工作,必须访问设备控制器中的各种寄存器,这是通过编写的特定程序代码来实现的。这样的代码程序就是“设备驱动程序”。.在中断驱动I/O的情形下,设备驱动程序被分成两个部分,一部分用来完成对设备操作的初始化,另一部分是中断处理程序,用来处理设备操作的完成。.设备驱动程序通过访问设备控制器里的寄存器了解设备的各种工作状态,发出操作命令。设备驱动程序必须设计成是可重入的。

I/O接口程序

3.I/O接口程序是设备管理中与设备无关部分的软件,它接收用户对设备提出的I/O请求,然后负责把I/O请求转变成所需要的I/O命令,调用具体的设备驱动程序去执行,完成这个I/O请求。..I/O接口程序要为用户提供统一的设备命名方式。通常,系统是用主设备号和次设备号组成的逻辑设备名来为设备命名,主设备号指定设备的类型(于是确定了所要使用的设备驱动程序),次设备号作为参数传递给设备驱动程序,用来确定真正完成读写操作的设备。用户编程时不用实际的设备名而使用逻辑设备名,有利于I/O设备的故障处理,为I/O设备的分配增添了灵活性。称这种方法是设备管理中的“I/O设备无关性”。.返回目录57.1.2计算机设备的分类

基于设备的从属关系

1.系统设备:操作系统生成时就纳入系统管理范围的设备是系统设备,也称为“标准设备”。比如键盘、显示器、打印机和磁盘驱动器等。..用户设备:在完成任务过程中,用户特殊需要的设备为用户设备。由于这些是操作系统生成时未经登记的非标准设备,用户就要向系统提供使用该设备的有关程序(如设备驱动程序等);系统就要提供接纳这些设备的手段,以便将它们纳入系统来管理。基于设备的分配特性

2..独享设备:这种设备的特点是一旦分配给某个用户进程使用,就必须等它们使用完后,才能重新分配给另一个用户进程使用,否则不能保证所传送信息的连续性,也可能会出现获得的结果混乱不清、无法辨认的局面。独享设备的使用具有排它性。.共享设备:这种设备的特点是可由几个用户进程“交替地”对它做信息的读/写操作。从宏观上看,它们都在同时使用该设备;从微观上看,每一时刻只有一个进程使用。共享设备必须是可寻址和可随机访问的。.虚拟设备:以大容量辅助存储器的支持,利用SPOOLing技术,把独享设备“改造”成为能被多个进程共享的I/O设备,以提高独享设备的利用率。实际上这种“共享”设备并不存在,是一种逻辑上、概念上的I/O设备,因此称它们为“虚拟设备”。6磁带是一种严格按照信息存放的物理顺序进行定位与存取的存储设备。它是一种适于顺序存取的存储设备。磁带上每个记录间有所谓的“记录间隙(IRG)”。块设备:是指以独立寻址的数据块(比如一个扇区)为单位与内存进行信息交换的那些设备,也称为是“面向块”的设备。磁带、磁盘是块设备的典型代表。字符设备:是指以字符为单位与内存进行信息交换的那些设备,也称为是“面向字符”的设备。键盘、打印机是字符设备的典型代表。3.基于设备的传输特性..4.基于设备的工作特性

.输入/输出设备:输入设备是计算机“感知”或“接触”外部世界的设备,用户通过输入设备把信息送到计算机系统内部;输出设备是计算机“通知”或“控制”外部世界的设备,计算机系统通过输出设备把处理结果告知用户。通常把它们称为“字符设备”。.存储设备:是指计算机永久保存信息的设备,可分为顺序访问存储设备和随机访问存储设备两种,它们都是面向块的。(1)记录1IRG记录2IRG记录3IRG记录4IRG记录5IRG(a)一个记录一个IRG记录1IRG记录2记录3记录4记录5IRG记录6记录7记录8记录9IRG记录10记录11记录12一块一块一块(b)一块(4个记录)一个IRG0(2)磁盘返回目录77.1.3设备管理的目标与功能

1.设备管理的目标

操作系统设备管理的目标之一是提高外部设备的利用率(合理利用、提高并行)..操作系统设备管理的目标之二是为用户提供便利、统一的使用界面。2.设备管理的功能

.提供一组I/O命令(实质就是系统调用命令),以便用户进程能够在程序一级发出所需要的I/O请求,这就是用户使用外部设备的“界面”。.进行设备的分配与回收。在多道程序设计环境下,多个用户进程可能会同时对某一类设备提出使用请求。设备管理软件应根据一定的算法,决定把设备具体分给哪个进程使用;对那些已提出设备请求、但由于某种原因暂时未能分到的进程,应进行管理(如组成设备请求队列),按一定的次序等待;当某设备使用完毕后,设备管理软件应及时将其回收,如有用户进程正在等待使用,那么立即进行再分配。.对缓冲区管理。CPU的执行速度、访问内存的速度都较高,外部设备的数据传输速度则大都较低,产生了高速CPU与慢速I/O设备间速度不相匹配的矛盾。为此,系统往往在内存开辟一些区域称为“缓冲区”,CPU和I/O设备都通过这种缓冲区传递数据,以使设备与设备之间、设备与CPU之间的工作得到协调。.实现真正的I/O操作。程序中使用系统提供的I/O命令后,设备管理要按用户的具体请求,启动设备,通过设备驱动程序进行实际的I/O操作。完成后将结果通知用户进程。返回目录87.1.4设备管理的数据结构

DCBiDCB1DCBnDCB表DCBi设备请求队列指针PCB1PCB2PCBn设备标识设备类型设备状态设备驱动程序起址其他设备请求队列为管理系统中的外部设备,操作系统为每台设备开辟一个存储区,随时记录系统中每台设备的基本信息和使用情况,这个存储区被称为“设备控制块(DCB)”。1..如图所示,左侧的“DCB表”表示系统中所有外部设备的DCB的集合;中间是对其中的第i个设备的DCB的放大,给出了DCB中可能有的一些表项。不难理解,随着系统的不同,DCB中所含的内容也不尽相同。若一个独享设备已分配给一个进程使用,那么继续对它发出I/O请求的其他进程就不可能立即得到它的服务。由于这些进程都是因为暂时得不到这个设备的服务而被阻塞的,所以应该排在与该设备有关的阻塞队列上,这个阻塞队列在操作系统的设备管理中被称为“设备请求队列”。..为管理设备,整个系统还有一张“系统设备表(SDT)”。系统初启时,每个标准的以及用户提供的外部设备,在该表中都有一个表项。在I/O处理过程中,系统从SDT得到设备的设备控制块DCB,然后从DCB得到有关该设备的信息。返回目录92.控制器控制表、通道控制表和系统设备表(c)系统SDT控制器标识符:controllerid控制器状态:忙/闲与控制器连接的通道表指针控制器队列的队首指针控制器队列的队尾指针通道标识符:channelid通道状态:忙/闲与通道连接的控制器表首址通道队列的队首指针通道队列的队尾指针(a)控制器表COCT(b)通道表CHCT表目1…表目i…设备类设备标识符DCT驱动程序入口103.设备分配时应考虑的因素设备的固有属性独享设备:进程使用独占设备的过程:申请---》使用---》释放。进程申请设备系统分配设备进程发送使用命令系统将转到设备驱动模块完成一次I/O传输进程释放设备系统回收设备当进程的一次设备申请成功,直到发出释放命令期间,一直独占设备。

11(2)共享设备进程使用共享型设备不需要申请,当然也就不存在占用型或释放设备的问题,但是,I/O期间只能有一个进程使用设备,因此,进程使用共享设备之前,有一个隐含的申请命令,使用完毕以后,有一个隐含的释放命令,以实现一次基本的I/O传输期间的排他性,保证操作的正常进行。使用共享型设备的过程中,进程完全有可能进入阻塞等待状态。

(3)虚拟设备:一台可虚拟设备是可共享的设备。12设备分配算法先来先服务根据某进程对某设备提出请求的先后次序,将这些进程排成一个设备请求队列,设备分配程序总是把设备分配给队首的进程(2)优先级高者优先根据进程优先级的高低,将优先级高的进程排在设备等待队列的前面,对与优先级相同的进程,则按照先来先服务的原则进行排队,设备分配程序总是把设备分配给排在队首的进程。13设备分配中的安全性安全分配方式进程发出I/O请求后,即阻塞等待I/O操作完成。摒弃了“请求和保持”条件(死锁条件),设备分配安全。缺点:进程缓慢,cpu和I/O设备串行。2)不安全分配方式进程发出一个I/O请求后,还可再发出,直到请求设备已被另一个设备占用,进程才阻塞。可能具备“请求和保持”条件,可能死锁,不安全。可加入安全性计算(例:银行家算法)。优点:推进迅速。147.2.1程序循环控制I/O

采用这种方式实现I/O,是基于设备只有设置状态寄存器中“忙”位的能力:“1”时表示该设备在工作,暂时不能接受新的I/O请求;“0”时表示设备空闲,可接受新的I/O请求。只有CPU不断地去测试“忙”位,才能判断该设备是工作或空闲。7.2I/O的四种实现方式

.read(device,…)数据区“读”系统调用命令“写”系统调用命令①命令寄存器状态寄存器数据寄存器设备控制器④③②⑤硬件接口系统接口用户程序.如图所示给出了程序循环控制I/O的“读”操作执行情形,具体步骤如下:(1)用户进程程序对某个设备提出读请求。(2)CPU执行设备驱动程序,测试设备状态寄存器中的忙位。如果设备忙,就不断进行循环测试,直等到设备空闲。(3)驱动程序重新设置忙位,把输入命令存入设备控制器的命令寄存器,启动设备开始工作。(4)这时,设备去做I/O,驱动程序仍不断测试忙位,等待I/O操作的完成。(5)驱动程序将数据寄存器中的数据内容读到用户指定的位置,完成读操作。返回目录I/O控制方式发展宗旨:减少主机对I/O的控制,以便让cpu更多的去完成数据处理任务。15在程序I/O方式中,由于CPU的高速性和I/O设备的低速性,致使CPU的绝大部分时间都处于等待I/O设备完成数据I/O的循环测试中,造成对CPU的极大浪费。在该方式中,CPU之所以要不断地测试I/O设备的状态,就是因为在CPU中无中断机构,使I/O设备无法向CPU报告它已完成了一个字符的输入操作。167.2.2中断驱动I/O

中断机制下,硬件有条中断请求线(IRL)。CPU执行完指令后,就去检查IRL。检测到有设备控制器通过中断请求线发出了信号,CPU就去执行中断处理程序,判定中断原因,进行必要的处理,再让CPU返回中断以前的执行状态。..read(device,…)数据区①命令寄存器状态寄存器数据寄存器设备控制器⑥③②⑤硬件接口系统接口设备状态表设备驱动程序④设备处理程序中断处理程序⑦⑧⑨⑩在利用中断的情况下,设备驱动程序由进行I/O操作初始化、启动设备工作的设备驱动程序和I/O完成后做善后处理的设备处理程序组成。系统维护一张“设备状态表”,表项里记录一个设备发生中断时的有关信息。这时I/O的“读”操作执行情形如图所示。.返回目录17在I/O设备输入每个数据的过程中,由于无须CPU干预,因而可使CPU与I/O设备并行工作。仅当输完一个数据时,才需CPU花费极短的时间去做些中断处理。可见,这样可使CPU和I/O设备都处于忙碌状态,从而提高了整个系统的资源利用率及吞吐量。例如,从终端输入一个字符的时间约为100ms,而将字符送入终端缓冲区的时间小于0.1ms。若采用程序I/O方式,CPU约有99.9ms的时间处于忙—等待中。采用中断驱动方式后,CPU可利用这99.9ms的时间去做其它事情,而仅用0.1ms的时间来处理由控制器发来的中断请求。可见,中断驱动方式可以成百倍地提高CPU的利用率。18为减少中断对CPU造成的负担,对系统中的一些高速I/O设备以及成组交换数据的情形,可采用直接内存访问I/O的方式,把I/O的主要任务交给一个专用的、名为DMA的控制器去完成。7.2.3直接内存访问I/O

.1.直接内存访问I/O的含义

地址寄存器字节计数寄存器控制寄存器CPUDMA控制器1.CPU对DMA控制器进行编程完成时中断缓冲区磁盘控制器磁盘驱动器4.应答2.DMA请求传输到内存3.数据传输内存总线.DMA是“直接内存访问”的意思。DMA独立于CPU工作,在它控制下的设备,可直接和内存进行信息传送,其间无需CPU做任何干预。.DMA用于磁盘访问时,其传输过程如图所示.。具体步骤如下。(1)CPU把含传输数据的源地址、目标地址、传输字节数等信息的命令信息块写入内存,并把该块的起址写入DMA控制器的有关寄存器中,启动DMA控制器工作。这样,CPU就把这次I/O所要完成的任务交给了DMA去完成,自己就可脱出身去做其他与该I/O无关的事情了。19DMA控制器自动调整地址寄存器,减少字节计数寄存器的值。若该值仍大于0,表示所要求的I/O还没有最后完成,于是重复上述步骤。DMA通过总线向磁盘控制器发送读盘请求,要它取得总线使用权,并把数据传输到指定的内存区域中。(2)(3)磁盘控制器按照I/O要求,把内部缓冲区里的数据传输到内存。(4)数据传输完毕,磁盘控制器通过总线向DMA控制器发出应答信号,表示这一次传输已经结束。(5)(6)在字节计数寄存器为0时,整个I/O完成,DMA向CPU发出中断信号,请求进行I/O的结束处理。2.DMA控制器的工作模式

.DMA通过总线向磁盘控制器发送的I/O请求,可以有如下的两种模式:(1)(2)每次一个字模式:DMA控制器每次都是请求传输一个字,且得到这个字。若在传输该字时,CPU也想使用总线,那么由于I/O占用总线的优先级高于CPU,因此CPU只能暂时等待。这表示数据从设备缓冲区传输到内存期间,设备控制器偷偷地挪用了一个CPU的总线周期,让CPU遭受到轻微地延迟。这被称为“周期窃取”。每次一块模式:DMA控制器通知设备获得总线,进行成组传输后,释放总线。称为“突发模式”。相比周期窃取,突发模式窃取了更多的总线时间,传输了更多的字节。长时间的突发传输,有可能使CPU和其他设备阻塞很长的时间。203.DMA控制器的特点

(1)(2)DMA控制器是在获得总线控制权的情况下,直接让设备与内存进行数据交换,CPU不介入数据传输的任何事宜;DMA方式下,设备与内存间由字节计数寄存器管理数据的传输量;(3)DMA方式下传输数据时,或采用周期窃取模式,或采用突发模式,因此CPU暂时不能使用总线,设备和CPU不能并行工作;(4)采用DMA控制设备传输数据时,启动和结束I/O的工作,要由CPU完成。例7-2:磁盘有4个盘面,扇区尺寸512B,每个磁道80个扇区。若磁盘的旋转速度为360转/分。采用中断驱动I/O从磁盘读取一个扇区时,每个字节产生一个中断。如果处理一次中断需2.5s,试问CPU花费在处理I/O上的时间占整个I/O时间的百分比是多少?若采用DMA的I/O方式,假定读取一个扇区产生一次中断,其他一切都不变,试问CPU花费在处理I/O上的时间占整个I/O时间的百分比是多少(都忽略寻道时间)?解:返回目录磁盘旋转一周的时间是:60/360=1/6s。查找一个扇区平均需要花费旋转1/2周的时间,即1/12s。因此,访问一个扇区需要的时间是:1/(6×80)=1/480s。对于中断驱动I/O、每读一个字节产生一次中断时,CPU花费在处理I/O上的时间占总时间的百分比是:(512×2.5)/((1/12+1/480)+(512×2.5))≈99.9%。对于DMA方式,由于是读一个扇区才产生一次中断,处理中断的时间不变,因此CPU花费在处理I/O上的时间占总时间的百分比是: 2.5/((1/12+1/480)+2.5)≈97.5%21进程提出I/O请求后,CPU发出启动命令,指明I/O操作、设备号和对应的通道。把数据传输的任务交给通道。7.2.4通道管理I/O

1.通道的含义

通道是一个独立于CPU的、专门用来管理输入/输出操作的处理机,由它控制设备与内存进行数据交换。..通道有自己的指令系统,通道的指令被称为“通道命令字”。通道命令字的条数并不多,主要涉及控制、转移、读、写及查询等功能。如图所示,给出了IBM通道命令字的格式。命令码数据内存地址标志码传输字节个数0783132394063.若干通道命令字构成一个“通道程序”,它规定了设备应该执行的各种操作和顺序。在CPU启动通道后,由通道执行通道程序,完成CPU所交给的I/O任务。.通道程序存放在通道自己的存储部件里。若通道中没有存储部件时,就存放在内存。这时,为了使通道能取到通道程序去执行,必须把存放通道程序的内存起址告诉通道。存放这个起始地址的内存固定单元,被称为“通道地址字”。当采用通道来进行数据传输时,计算机系统的I/O结构应该是通道与主机相连,设备控制器与通道相连,设备与设备控制器相连。另外,一个设备控制器上可能连接多个设备,一个通道上可能连接多个设备控制器。..使用通道方式进行数据传输的步骤如下:(1)22CPU响应通道提出的中断请求,对这次I/O进行善后处理,把阻塞进程的状态变为就绪,重新参与对CPU的竞争。(2)发出I/O请求的进程被阻塞,进程调度程序把CPU分配给另一个进程。(3)(4)通道接收CPU的启动命令,执行通道程序,设备与CPU并行工作。(5)通道逐条执行通道程序中的通道命令字,指示设备完成规定的操作,与内存进行数据交换。数据传输完毕,通道向CPU发出中断请求。(6)2.通道的类型

字节多路通道选择通道成组多路通道内存CPU打印机1打印机2显示器1显示器2磁带磁盘磁盘1磁盘2磁盘3字节多路通道:适用于连接慢速字符设备。“多路”,是指在时间片分时的基础上,为所连接的多个低速、中速I/O设备提供简单的共享服务。通道上连接的每个设备,都有自己的通道程序。通道分时地执行各个通道程序,以字节为单位,完成和内存间的数据交换。..选择通道:连接高速I/O设备,每个设备有自己的通道程序,在某时间内,通道只能选择一个I/O设备工作。它以“块”为单位进行数据传输,传输效率高。.成组多路通道:适用于连接高速I/O设备,“成组”表示传输是以块为单位;“多路”表示可按分时的手法为多个设备服务。返回目录237.3缓冲、虚拟设备与SPOOLing技术

7.3.1I/O缓冲

1.缓冲技术的意义

在I/O系统中,所谓“缓冲”,是指临时保存数据信息的存储区。在需要信息之前,输入缓冲区里就存放着从设备读入的输入信息;在输出设备可用时,输出缓冲区里就存放着等候输出的信息。..101102103104105106107108键盘鼠标针式打印机软盘激光打印机光盘磁盘如图所示,是若干设备的数据传输率,单位是bit/s。现代操作系统中,几乎所有的I/O设备在与内存交换数据时,都使用缓冲区来缓解CPU与低速I/O设备传输速度不匹配的矛盾,提高I/O速度以及I/O设备的利用率。.缓冲区不仅适用于CPU与I/O设备之间,凡数据到达率与数据离去率不一致的地方,都可通过缓冲区来解决它们间的不匹配矛盾。比如,在网络通信中,可利用缓冲技术解决发送方与接收方之间速度不匹配的问题。242.单缓冲

.所谓“单缓冲”,即是以传输数据的单位为准,在内存分配一个相同大小的区域作为缓冲区。这是最简单类型的缓冲区。操作系统用户进程用户数据区操作系统进入进入单缓冲用户进程用户数据区移到(a)没有缓冲的I/O(b)设置单缓冲的I/O图(a)是没有缓冲区时,数据从I/O设备读到内存用户区的情形;图(b)是设置单缓冲区时,数据从I/O设备读到内存用户区的情形。.3.双缓冲、循环缓冲、缓冲池

(1)双缓冲操作系统用户进程用户数据区进入双缓冲移到12在双缓冲的情形下,磁盘控制器先读进一块数据到缓冲0。在CPU从缓冲0取出数据移到用户数据区里时,设备就可以往缓冲1里传输数据;只要缓冲0被腾空,设备又可以往缓冲0里存放数据。若系统设置两个缓冲区,对于平滑设备和CPU之间的处理速度会更加有效。这种使用两个缓冲区来完成缓冲的技术,称之为“双缓冲”。..25.循环缓冲(2)操作系统进入用户进程用户数据区移到12n循环缓冲是一种缓冲数目多于两个的缓冲技术,缓冲按照索引值(0~n-1)排序,形成一个循环列表得到循环使用。如图所示。(3)缓冲池.专用缓冲区的优点是管理简单。但它不仅耗费很多的内存空间,有时还会出现问题:如果设备缓冲区的数目不够多,那么就可能会使进程因等待缓冲区而阻塞,影响系统并行处理能力的发挥;如果对设备的I/O请求很少,那么分配用于作为缓冲区的内存空间就不能得到充分的利用。.系统开辟一个内存空间作为I/O的共享缓冲区,当进程请求I/O时,根据需要从缓冲池里申请缓冲区;I/O处理完毕,系统就收回缓冲区归还给缓冲池。不将缓冲区与具体设备固定在一起,而是集中管理,供I/O设备共享使用的技术,称为“缓冲池”。缓冲池中的每个缓冲区,既可以用于输入,也可以用于输出。因此,缓冲池中有三种类型的缓冲区:空闲的,当前用于输入的,以及当前用于输出的。系统可以根据它们的状态,组成三个缓冲队列。..缓冲池的出现,提高了这部分内存空间的使用效率。但系统却要为此付出复杂管理的代价:要管理三种类型的缓冲区队列,要提供实施申请和释放缓冲区的系统调用命令等。返回目录26当系统中只有一台输入或输出设备,却有好几个用户都要使用时,那么一个用户必须等待其他用户使用完才能去用,这不利于多道程序并行工作,也影响到系统效率的发挥。.7.3.2虚拟设备与SPOOLing技术

1.虚拟设备的概念

.可利用大容量的共享设备——磁盘作为后援,用软件技术模拟独享设备的工作,使每个用户都认为自己独占使用了输入或输出设备,它们的传输速度与磁盘一样快。.这种用一类物理设备模拟出的另一类物理设备,被称为“虚拟设备”。在提供虚拟设备的系统中,用户进行I/O时,不直接面对物理的独享设备,而是面对虚拟的独享设备。2.SPOOLing技术

.为实现虚拟设备,在磁盘上划出两块专用的存储空间,一块预先存放I/O设备的输入数据信息,被称为“输入井”;另一块暂时存放每个运行作业进程的输出数据信息,被称为“输出井”,如图所示。作业1信息作业n信息作业1结果作业n结果预输入程序缓输出程序井管理读程序井管理写程序作业执行作业1数据作业n数据输入井作业1结果作业n结果输出井输入机打印机作业运行时,不启动输入机读信息,而是从磁盘的输入井得到。作业产生输出时,把输出信息先存在输出井中,不直接启动输出设备输出。输入井和输出井,是把独享设备变为共享的物质基础。.27共享打印机共享打印机技术已被广泛地用于多用户系统和局域网络中。当用户进程请求打印输出时,SPOOLing系统同意为它打印输出,但并不真正立即把打印机分配给该用户进程,而只为它做两件事:①由输出进程在输出井中为之申请一个空闲磁盘块区,并将要打印的数据送入其中;②输出进程再为用户进程申请一张空白的用户请求打印表,并将用户的打印要求填入其中,再将该表挂到请求打印队列上。28SPOOLing系统的特点提高了I/O的速度。由对低速I/O设备的I/O操作,演变为对磁盘输入井,输出井的操作。(2)将独占设备改造为共享设备。例:共享打印机(3)实现了虚拟设备功能。将独占设备变换为若干台对应逻辑设备的功能。29前导码:位于每个扇区头部,记录着该扇区的有关信息,比如扇区号。磁盘控制器可根据这些信息识别一个扇区的开始,以及是哪一个扇区。7.4磁盘及磁盘的移臂调度策略

7.4.1磁盘的格式化

1.磁盘的低级格式化

.磁盘盘面上有着薄薄的一层用于记忆的可磁化金属氧化物。刚生产出的磁盘上,没有任何信息存在。在它可被使用前,每个盘片必须通过软件对其进行低级格式化,也称“物理格式化”。.所谓“低级格式化”,指将磁盘的每个盘面划分成可供磁盘控制器进行读/写的扇区的过程。格式化后,盘面上就有了一系列同心的磁道,每个磁道包含若干数目的扇区。划分出的扇区格式如图所示。前导码数据区ECC.扇区各部分的含义(1)(2)ECC是纠错码的意思。在磁盘控制器往扇区写数据时,会根据所写数据计算出一个值对ECC进行更新。在对磁盘扇区读时,会根据所读数据重新计算ECC值,并与原存储的值进行比较。如果这两值不同,就表示该扇区的数据区已损坏,或该扇区变坏。数据区:是扇区中存放数据的地方,其尺寸由进行低级格式化的程序决定,通常有几种选择:256字节、512字节或1024字节,大多数磁盘都选用512字节的扇区。(3)30这种对磁盘的分区和创建文件系统的工作,被称为“高级格式化”。它需要用操作系统提供的系统调用命令(比如format)来完成。所谓“分区”,即是以柱面为单位对磁盘进行划分,每个部分所含的柱面数目可以不等。对于这些分区,操作系统将以独立的磁盘来对它们进行管理和使用。为使磁盘能存储文件,操作系统还需在磁盘上记录自己的数据结构,它由两部分组成:分区和创建文件系统。2.磁盘的高级格式化

...扇区是磁盘空间分配和进行I/O传输的数据单位。确定一个扇区需三个参数:柱面(磁道)号、盘面(磁头)号、扇区号。也就是说,扇区的物理地址是三维的。..所谓“创建文件系统”,即是在分区里完成文件系统的初始化,比如建立分区目录结构、记录该分区扇区使用情况的数据(总扇区数、已分配扇区数、空闲扇区数)等。3.磁盘的编址方式

一般应用时,是把磁盘上的所有扇区统一进行编号:0、1、2、……称为扇区的“逻辑块号”。扇区的物理地址是三维的,逻辑块号是一维的,因此有一个在这两种地址之间进行转换的问题。..数据信息是按柱面来存放的,同一柱面上的各磁道放满信息后,再存到下一个柱面上。所以,磁盘上磁盘块(即扇区)的编号是按柱面的顺序进行(从0开始),每个柱面按柱面的磁头顺序进行(从0开始),每个磁道按扇区顺序进行(从0开始)。31第3680记录就放在第3680块中。由题知,每个柱面有D

=

8*8

=

64个扇区,N

=

3680%D

=

32。根据公式该块的位置为: 柱面号

=

3680/D

=

57(柱面); 磁头号

=

32/8

=

4(磁道) 扇区号

=

32%8

=

0(扇区)根据给出的磁盘块号为求第p个磁盘块在磁盘上的位置,令D=s*c(每个柱面上拥有的磁盘块数),设M

=

p/D,N

=

p%D(“/”和“%”表示整除和求余)。于是,求第p块在磁盘上位置的公式为: 柱面号

=

M;磁头号

=

N

/s;扇区号

=

N

%s

.假定用c表示每个柱面上的磁道数,用s表示每个磁道上的扇区数,则第i个柱面、j磁头、k扇区所对应的磁盘块号b可以用如下的公式计算:

b

=

k

+

s

×

(j

+

i

×

c).例7-4:一个磁盘组有100个柱面,每个柱面有8个磁道,每个盘面划分成8个扇区。现有含6400个记录的文件,记录大小与扇区尺寸同,编号从0开始。该文件从0柱面、0磁道、0扇区顺序存放。试问:(1)该文件第3680个记录存放在磁盘哪个位置?(2)第78柱面第6磁道第6扇区中应存放该文件的第几个记录?解:第78柱面第6磁道第6扇区位置处存放的是: 磁盘块号

=

6

+

8

×

(6

+

78

×

8)=

5046(块)即存放的是文件中编号为第5046个的记录(实际上应该是第5047个记录,因为记录号是从0开始算起的)。(1)(2)返回目录32对于磁盘,有三种时间需关注:把磁头定位到磁道所需时间,称“寻道时间”;磁头到达扇区开始位置的时间,称“旋转延迟”;一旦磁头被定位,磁头就对旋转通过它下面的扇区执行读操作或写操作,完成数据信息的传输,传输所花费的时间称“传送时间”。磁盘驱动器工作时,以恒定的速度进行旋转。只有当磁头位于指定的磁道和该磁道中指定的扇区开始处时,才能够进行读或写操作。7.4.2磁盘的性能参数..寻道时间磁旋转延迟盘旋转方向传送时间磁臂例7-5:某磁盘磁道分成5个扇区(0~4),每个扇区存放一个逻辑记录。一个用户文件有5个记录:A、B、C、D、E,被顺序存放在一个磁道上。假定磁盘旋转一周的时间是20ms,每个记录读出后需6ms的时间处理。试问:(1)顺序读出5个记录并进行处理,共需多少时间?(2)给出一种在磁盘上安排记录的策略,使整个时间尽可能少。解:(1)顺序读取和处理5个记录,共需时间:(4+6+14)×4+(4+6)=106ms。(2)为使时间减少,应减少旋转延迟,即把下一个要读取的记录放在处理完前一个记录后距磁头最近之处。时读取和处理5个记录共需时间:(4+6+2)×4+(4+6)=58ms返回目录33当有多个进程都请求访问磁盘时,他们所访问的位置(这里主要关心磁道)是不同的。磁头需要来回频繁移动进行寻道操作。磁头的移动属于机械运动,需要的时间较长,而且频繁的磁头移动会缩短磁头的寿命,因此,必须采取合适的磁盘调度算法,在尽可能公平的前提下,缩短平均寻道时间,并使磁头移动距离最小。7.4.3磁盘的移臂调度策略

34假设磁盘有200个磁道,磁盘请求队列中排列着一些随机请求。目前移动臂位于磁道53,接着被请求的磁道按顺序是:98、183、37、122、14、124、65、67。下面将以此为基础,讨论在I/O队列里挑选I/O请求的各种调度策略。.1.先来先服务调度策略

0143753656798122124183磁道号①②③④⑤⑥⑦⑧“先来先服务(FCFS)”调度策略,是以I/O请求到达队列的时间顺序,作为选择为其提供服务的顺序。如图所示给出移动臂移动的路线,该策略去考虑I/O请求所涉及的访问位置在磁盘何处。磁头总共滑过了640个磁道的距离。.2.最短寻道优先调度策略

0143753656798122124183磁道号①②③④⑤⑥⑦⑧.“最短寻道优先(SSTF)”调度策略,是把距离磁头当前位置最近的那个I/O请求作为下一次调度的对象。这时移动臂移动的路线如图所示。磁头总共滑过了236个磁道的距离,效果好于FCFS调度策略。35如图表示移动臂在由里往外移动,从53磁道出发,下一个调度对象应是37,然后到14。由于14磁道往外已无I/O请求,故改变扫描方向。如此等等。据此调度顺序,磁头共滑过了208个磁道的距离。SCAN调度策略是移动臂从磁盘的一端向另一端移动,遇到有I/O请求的磁道时就进行处理,直到它到达这个方向上的最后一个磁道,或者在这个方向上已没有其他I/O请求为止(后者有时单独称为LOOK策略)。随后移动臂反转服务方向,同样按顺序做扫描完成所有I/O请求。SCAN调度也称“电梯”调度。3.SCAN(扫描)调度策略

..SCAN调度策略与移动臂的移动方向有关。在没有规定方向的情况下,移动臂移动的结果路线应该有两个答案。0143753656798122124183磁道号初始移动方向0143753656798122124183磁道号初始移动方向..如图表示移动臂由外往里移动,从53磁道出发,调度顺序为65、67、98、122、124,最后到183。改变扫描方向。磁头共滑过了299个磁道的距离。①①②②③③④④⑤⑤⑥⑥⑦⑦⑧⑧36C-SCAN调度策略称“循环扫描”策略,它把扫描限定在一个方向上,总是从0号柱面开始往里移动移动臂,遇到有I/O请求就进行处理,直到到达最后一个请求柱面。然后磁头不做任何服务地返回到0号磁道,开始下一次扫描。4.C-SCAN调度策略

.0143753656798122124183磁道号返回到0号磁道移动臂移动路线如图示。开始与电梯调度算法从外往里的情形相同,到183号磁道并完成其I/O请求的处理后,由于没有I/O请求了,故移动臂不做任何工作返回到0号磁道,开始对14号及17号磁道的I/O请求进行处理。这样,磁头共滑过了350个磁道的距离。.①②③④⑤⑥⑦⑧.为使服务更趋合理,还有如N-step-SCAN和FSCAN等磁盘调度策略。所谓“N-step-SCAN”策略,是把磁盘请求队列分成长度为N的子队列,采用SCAN处理子队列。新到达的请求被添加到其他队列中。对于比较大的N值,N-step-SCAN的性能接近SCAN;当N=1时,它就是FCFS。所谓“FSCAN”策略,是只使用两个队列的调度策略。开始扫描时,只对已到达的所有请求进行处理,新到达的请求排在另一个队列。只有等到老请求全部处理完后,才去处理新请求的I/O。(1)(2)返回目录377.4.4独立磁盘冗余阵列:RAID

1.独立磁盘冗余阵列的概念

..在现代计算机系统中,磁盘的作用越来越突显,各种虚拟技术(如虚拟存储器、虚拟设备等)相继得到了实现。但磁盘性能的改善,远远跟不上处理器和内存储器性能的飞速发展。这种不匹配的现实,使磁盘已经成为提高整个计算机系统性能的主要瓶颈所在。通过多个磁盘,多个独立的I/O请求可并行得到处理,只要它们所需要的数据分布在不同的磁盘中;即使是同一个I/O请求,若其要访问的数据分布在多个磁盘上,则该请求也可以并行地得到执行。这就是在磁盘上组织数据的问题。

利用多磁盘的并行访问能力,可改善磁盘的传输率。最简单的办法是将数据分散存放。分散存放有两种方法,第一种是在多个磁盘上分散每个字节的各个位,称为“位级分散”;第二种方法是所谓的“块级分散”,即是将文件数据进行分块,以块为单位分散存放在多个磁盘上。..

利用多磁盘的大容量能力,也可改善磁盘存储的可靠性。这是因为在多磁盘组成的磁盘阵列里,可存储有关数据的额外信息,额外的冗余信息,正常情况下没有什么用,但在系统出错或磁盘损坏时,却可用来进行对数据的纠错,或修复。.综上述,利用多磁盘阵列,可改善磁盘的传输率,也可增强磁盘的可靠性。现在,将同时具有这两种性能的磁盘阵列称为“独立磁盘冗余阵列(RAID)”。382.各种RAID级别简介

.冗余向系统提供高可靠性,但价格昂贵;分散向系统提供高传输率,但不能改善可靠性。将这两者结合起来,给出不同的组合方案,才能在低代价下提供冗余,保证系统的高传输率。.组合方案已成工业标准,称RAID级别。分为6级:RAID0~RAID5。这6级仅是构造不同RAID时的性能体现,而不是隶属关系,不同级别之间没有继承关系,高级并不依赖于低级,不同级别只是对应于不同的数据存放方式。RAID0级(1).RAID0级不是RAID的正式成员,因它没有用冗余数据来提高系统的可靠性。若计算机系统认为降低成本比提高可靠性更为重要,那么可采用这种级别的多磁盘阵列。.

磁盘阵列顺序分成很多的条带(strip),条带可是物理块、扇区或别的某种存储单位。系统和用户的数据成条状分布在磁盘阵列中。如图所示,是有4个磁盘阵列的情形。所有系统和用户的数据都成条状分布在磁盘阵列中。在一个有n个磁盘的阵列中,最初的n个数据条带被保存在n个磁盘中每个磁盘的第一个条带中,形成该磁盘阵列的第1个条带;接下来的n个数据条带被保存在每个磁盘的第二个条带中,依此类推。.RAID0级提供并行交叉存取,相对于单个磁盘的传送,提高了磁盘的I/O速度,磁盘空间利用率为100%。RAID0级对大数据量的请求,工作性能最好。.39RAID1级中的磁盘和镜像盘保存相同数据,因此可靠性极高。读请求时,可由包含被请求数据的任何一个磁盘提供服务;写请求时,需对两个相应的条带都做出更新,且可并行完成。当一个磁盘有问题时,从相应盘可立即得到所有的数据。RAID1级(2).RAID1级原磁盘阵列为主磁盘,外增完全相同的磁盘阵列为备份盘。每次数据写入主磁盘,同时也写入备份盘。即磁盘阵列中的每个磁盘都有一个包含相同数据的“镜像”磁盘。RAID1级把数据复制到镜像盘来实现对数据的冗余。..RAID1级通过将所有数据复制到镜像磁盘的方法来实现对数据的冗余。如图所示,由于主磁盘阵列有4个磁盘组成,因此就有4个镜像磁盘与之对应。RAID1级的主要缺点是成本很高,它需要有比原来磁盘空间两倍那么大的磁盘提供支持。或者说,它的磁盘空间利用率只有50%。RAID2级(3)RAID2级实行位级分散:每个字节的第1位放在磁盘1上,第2位放在磁盘2上,如此进行。它采用海明码纠错技术,对每个磁盘中的相应位都计算错误校正码,以便能纠正一位错误并检测双位错误。为此,需要增加不至一个的校验盘来存放差错纠正码。.40RAID4级(5).RAID4采用与RAID0一样的块级分散,为每个数据磁盘中相应的条带计算一个逐位奇偶校验位,奇偶校验位存放在奇偶校验盘的相应条带中,如图所示。.这种数据的组织方式,对多个读操作可以并行处理,,因此有很高的传输速度。大量数据写操作的传输率也会很高,因为即使是奇偶值也可以并行写。RAID5级(6)RAID3级(4)RAID3级的组织形式类似于RAID2,但无论磁盘阵列有多大,它只需 增加一个冗余磁盘。这因为RAID3只为所有数据盘中同一位置的位的集合 计算简单的奇偶校验位,而不是错误校正码。如果发生磁盘故障,则访问奇偶校验磁盘,通过其余的磁盘可以重新构造数据。由于采用了n路分散,RAID3可以达到非常高的数据传输率。..RAID5级的组织类似于RAID4,不同是RAID5把奇偶校验条带分布在所有的磁盘中,而不是设置独立的奇偶校验盘。如图所示。.RAID5级中的奇偶校验条带的信息以螺旋方式散布在磁盘阵列的所有磁盘上。返回目录417.5Linux的I/O管理

7.5.1Linux设备管理综述

1.Linux设备与文件系统的关系

.Linux把所有设备都划归为是文件系统中的“特殊文件”,或称为“设备文件”,并且为每一种I/O设备指定路径名,归属在/dev目录下。.设备文件在文件系统里有自己的索引节点。对这些特殊文件的访问形式,与其他文件的访问形式完全相同,不需要增设特殊的命令或系统调用。.Linux把系统中的设备分成三大类:块设备、字符设备、网络设备。发送进程接收进程套接字连接网络用户空间内核空间网络设备是一种经网络接口与主机交换数据的设备。在内核网络子系统的驱动下,网络接口完成对数据包的发送和接收。由于数据传输的特殊性,无法把网络设备纳入到文件系统统一管理。即Linux的文件系统里,没有与网络设备相对应的索引节点。..用户不能直接把数据交换到网络设备上,而需通过内核网络子系统建立起的连接实现间接通信。即通过内核网络子系统创建“套接字”,建立起发送进程和接收进程两者间的连接,实现它们的通信。如图示出了套接字的位置。创建套接字,返回文件描述符,以建立连接、读取数据、写入数据和释放连接。422.Linux设备驱动的分层结构

进程••••••••file结构file结构file结构一般文件特殊文件从普通文件的逻辑空间映射到设备的逻辑空间应用层文件系统层设备驱动层物理设备层从设备逻辑空间映射到设备物理空间从设备逻辑空间映射到设备物理空间设备1设备n.Linux中的I/O是通过设备驱动程序实现的,大多数Linux设备驱动程序都可在需要时装入内核,不需要时从内核卸载下来。每类设备一种驱动程序,它把硬件设备的特性与系统的其他部分隔离开来。.设备驱动程序是系统内核的一部分,它们必须为系统内核或它们的子系统提供一个标准的接口。.如图给出Linux设备驱动的分层结构。位于应用层的用户进程,通过打开文件的文件描述符fd,与其file结构相联系。这些file结构有的与一般文件对应,有的与特殊文件对应。在文件系统层,按照文件系统的规则对它们进行分别处理。.一般文件先从普通文件的逻辑空间映射到相应设备逻辑空间,然后进入设备驱动层,完成从设备逻辑空间到设备物理空间的映射,驱动底层物理设备执行I/O工作;特殊文件直接进入设备驱动层,完成从设备逻辑空间到设备物理空间的映射,驱动底层物理设备去执行I/O工作。433.Linux设备驱动程序的配置过程

Linux的设备驱动程序是可以动态配置的。设备主设备号标识一个驱动程序能够管理的设备种类。次设备号是一个8位的数字,用来表示一个特定种类(主设备号)的特定设备。因此,同一个机器上的两个软盘有相同的主设备号,但次设备号不同。.NULL*read*write*close*openstructfile_operationsread处理程序write处理程序open处理程序.为使内核知道某个设备的存在,在引导Linux内核时,会通过发命令:mknod/dev/<dev_name><type><major_number> <minor_number>为系统中的每个设备在/dev目录下创建一个特殊文件,用它来标识该设备的设备驱动程序。.类似文件系统的做法,Linux为各设备驱动程序定义与设备相关的操作函数,即通过structfile_operations类型的结构说明对设备做哪些操作,并指出实现那些操作功能函数的入口点,其间的关系如图所示。.在与某设备相关的structfile_operations类型结构的说明里,如果一个表项对应的是NULL,那么表示对于该设备没有定义这样的相应操作;否则表项里存放的是实现该操作的函数的指针,指向具体操作函数所在的位置。返回目录447.5.2Linux对字符设备的管理

1.device_struct结构

.每个初始化的设备有一个device_struct结构。该结构由两项内容:

name:登记该设备的设备驱动程序名;

*fops:指向该特殊文件的文件操作表(file_operations)结构。由此结构,就可知该字符设备使用的是哪个设备驱动程序,能做哪些操作。2.chrdevs结

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论