计算机除主机之外全部属外设备介绍_第1页
计算机除主机之外全部属外设备介绍_第2页
计算机除主机之外全部属外设备介绍_第3页
计算机除主机之外全部属外设备介绍_第4页
计算机除主机之外全部属外设备介绍_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

1、重点难点:重点难点:1、I/O控制方式控制方式2、缓冲管理、缓冲管理3、设备独立性、设备独立性4、虚拟设备和、虚拟设备和spooling技术技术5、设备处理、设备处理6、磁盘调度、磁盘调度7、磁盘高速缓存和廉价磁盘冗余阵列、磁盘高速缓存和廉价磁盘冗余阵列RAID输入输出管理这一章是非重点。需要注意的地方是四种输入输出管理这一章是非重点。需要注意的地方是四种I/O控制方式和控制方式和它们之间的对比,它们之间的对比,SPOOLING技术以及缓冲策略。可能的选择题点包技术以及缓冲策略。可能的选择题点包括括I/O设备的分类,设备的分类,I/O管理的目标与功能,应用结构,控制方式,管理的目标与功能,应用

2、结构,控制方式,I/O调度的相关概念,设备独立性相关的概念和原理,容错技术等。调度的相关概念,设备独立性相关的概念和原理,容错技术等。 第7章 设备管理本章目录本章目录7.1 设备管理概述7.1.1 I/O系统的组织结构7.1.2 计算机设备的分类7.1.3 设备管理的目标与功能7.1.4 设备管理的数据结构7.2 I/O的四种实现方式7.2.1 程序轮询控制I/O7.2.2 中断驱动I/O7.2.3 直接内存访问I/O7.2.4 通道管理I/O7.3 缓冲、虚拟设备与SPOOLing技术7.3.1 I/O缓冲7.3.2 虚拟设备与SPOOLing技术7.4 磁盘及磁盘的移臂调度策略7.4.1

3、 磁盘的格式化7.4.2 磁盘的性能参数7.4.3 磁盘的移臂调度策略7.4.4 独立磁盘冗余阵列:RAID7.5 Linux的I/O管理7.5.1 Linux设备管理综述7.5.2 Linux对字符设备的管理7.5.3 Linux对块设备的管理7.5.4 Linux的磁盘调度计算机除主机之外全部属外设7.1 设备管理概述设备管理概述o7.1.1 I/O系统的组织结构系统的组织结构控制器控制器 1. 整个I/O结构分成三个层次:底层是具体的设备和硬件接口,中间是系统软件(与设备相关软件、与设备无关软件),最上面是用户程序。 .打印机摄像机硬盘设备打印机控制器摄像机控制器磁盘控制器打印机驱动程序

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

5、逻辑部件设备控制器与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:这时设备

6、控制器里的每个寄存器没有特定的设备地址,而是与一个内存地址关联,这些地址不分配作他用。这种系统称为“内存映射I/O”。CPU将通过相同的指令,实现对整个内存空间的访问。 设备驱动程序设备驱动程序 2. 操作系统中与设备相关的设备管理软件是设备驱动程序,用于实现对具体设备的管理和操作;与设备无关部分的设备管理软件是一些系统调用,用来把用户的I/O请求导向到具体的设备驱动程序。. 要让设备工作,要让设备工作,必须访问设备控制器中的各种寄存器,这是通过编写的特定程序代必须访问设备控制器中的各种寄存器,这是通过编写的特定程序代码来实现的。这样的代码程序就是码来实现的。这样的代码程序就是“设备驱动程序设

7、备驱动程序”。 . 在中断驱动I/O的情形下,设备驱动程序被分成两个部分,一部分用来完成对设备操作的初始化,另一部分是中断处理程序,用来处理设备操作的完成。 . 设备驱动程序通过访问设备控制器里的寄存器了解设备的各种工作状态,发出操作命令。设备驱动程序必须设计成是可重入的。 I/O接口程序接口程序 3. I/O接口程序是设备管理中与设备无关部分的软件,它接收用户对设备提出的它接收用户对设备提出的I/O请请求,然后负责把求,然后负责把I/O请求转变成所需要的请求转变成所需要的I/O命令,调用具体的设备驱动程序去执行,完命令,调用具体的设备驱动程序去执行,完成这个成这个I/O请求。请求。 . I/

8、O接口程序要为用户提供统一的设备命名方式。通常,系统是用主设备号和次设备号组成的逻辑设备名来为设备命名,主设备号指定设备的类型(于是确定了所要使用的设备驱动程序),次设备号作为参数传递给设备驱动程序,用来确定真正完成读写操作的设备。 用户编程时不用实际的设备名而使用逻辑设备名,有利于用户编程时不用实际的设备名而使用逻辑设备名,有利于I/O设备的故障处理,为设备的故障处理,为I/O设备的分配增添了灵活性。称这种方法是设备管理中的设备的分配增添了灵活性。称这种方法是设备管理中的“I/O设备无关性设备无关性”。.返回目录o7.1.2 计算机设备的分类计算机设备的分类 基于设备的从属关系基于设备的从属

9、关系 1. 系统设备:操作系统生成时就纳入系统管理范围的设备是系统设备,也称为“标准设备”。比如键盘、显示器、打印机和磁盘驱动器等。. 用户设备:在完成任务过程中,用户特殊需要的设备为用户设备。由于这些是操作系统生成时未经登记的非标准设备,用户就要向系统提供使用该设备的有关程序(如设备驱动程序等);系统就要提供接纳这些设备的手段,以便将它们纳入系统来管理。 基于设备的分配特性基于设备的分配特性 2. 独享设备:这种设备的特点是一旦分配给某个用户进程使用,就必须等它们使用完后,才能重新分配给另一个用户进程使用,否则不能保证所传送信息的连续性,也可能会出现获得的结果混乱不清、无法辨认的局面。独享设

10、备的使用具有排它性。. 共享设备:这种设备的特点是可由几个用户进程“交替地”对它做信息的读/写操作。从宏观上看,它们都在同时使用该设备;从微观上看,每一时刻只有一个进程使用。共享设备必须是可寻址和可随机访问的。. 虚拟设备:以大容量辅助存储器的支持,利用以大容量辅助存储器的支持,利用SPOOLing技术,把独享设备技术,把独享设备“改造改造”成为能被多个进程共享的成为能被多个进程共享的I/O设备,以提高独享设备的利用率。实际上这种设备,以提高独享设备的利用率。实际上这种“共享共享”设备并设备并不存在,是一种逻辑上、概念上的不存在,是一种逻辑上、概念上的I/O设备,因此称它们为设备,因此称它们为

11、“虚拟设备虚拟设备”。 磁带是一种严格按照信息存放的物理顺序进行定位与存取的存储设备。它是一种适于顺序存取的存储设备。磁带上每个记录间有所谓的“记录间隙(IRG)”。 块设备:是指以独立寻址的数据块(比如一个扇区)为单位与内存进行信息交换的那些设备,也称为是“面向块”的设备。磁带、磁盘是块设备的典型代表。 字符设备:是指以字符为单位与内存进行信息交换的那些设备,也称为是“面向字符”的设备。键盘、打印机是字符设备的典型代表。3. 基于设备的传输特性基于设备的传输特性.4. 基于设备的工作特性基于设备的工作特性 . 输入/输出设备:输入设备是计算机“感知”或“接触”外部世界的设备,用户通过输入设备

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

13、 操作系统设备管理的目标之一是提高外部设备的利用率操作系统设备管理的目标之一是提高外部设备的利用率(合理利用、提高并行合理利用、提高并行).操作系统设备管理的目标之二是为用户提供便利、统一的使用界面。操作系统设备管理的目标之二是为用户提供便利、统一的使用界面。 2. 设备管理的功能设备管理的功能 . 提供一组I/O命令(实质就是系统调用命令),以便用户进程能够在程序一级发出所需要的I/O请求,这就是用户使用外部设备的“界面”。 . 进行设备的分配与回收。在多道程序设计环境下,多个用户进程可能会同时对某一类设备提出使用请求。设备管理软件应根据一定的算法,决定把设备具体分给哪个进程使用;对那些已提

14、出设备请求、但由于某种原因暂时未能分到的进程,应进行管理(如组成设备请求队列),按一定的次序等待;当某设备使用完毕后,设备管理软件应及时将其回收,如有用户进程正在等待使用,那么立即进行再分配。 . 对缓冲区管理。CPU的执行速度、访问内存的速度都较高,外部设备的数据传输速度则大都较低,产生了高速CPU与慢速I/O设备间速度不相匹配的矛盾。为此,系统往往在内存开辟一些区域称为“缓冲区”,CPU和I/O设备都通过这种缓冲区传递数据,以使设备与设备之间、设备与CPU之间的工作得到协调。. 实现真正的I/O操作。程序中使用系统提供的I/O命令后,设备管理要按用户的具体请求,启动设备,通过设备驱动程序进

15、行实际的I/O操作。完成后将结果通知用户进程。 返回目录o7.1.4 设备管理的数据结构设备管理的数据结构 DCBiDCB1DCBnDCB表DCBi设备请求队列指针PCB1PCB2PCBn设备标识设备类型设备状态设备驱动程序起址其他设备请求队列 为管理系统中的外部设备,操作系统为每台设备开辟一个存储区,随时记录系统中每台设备的基本信息和使用情况,这个存储区被称为“设备控制块( DCB)”。 1. 如图所示,左侧的“DCB表”表示系统中所有外部设备的DCB的集合;中间是对其中的第i个设备的DCB的放大,给出了DCB中可能有的一些表项。不难理解,随着系统的不同,DCB中所含的内容也不尽相同。 若一

16、个独享设备已分配给一个进程使用,那么继续对它发出I/O请求的其他进程就不可能立即得到它的服务。由于这些进程都是因为暂时得不到这个设备的服务而被阻塞的,所以应该排在与该设备有关的阻塞队列上,这个阻塞队列在操作系统的设备管理中被称为“设备请求队列”。 . 为管理设备,整个系统还有一张“系统设备表(SDT)”。系统初启时,每个标准的以及用户提供的外部设备,在该表中都有一个表项。在I/O处理过程中,系统从SDT得到设备的设备控制块DCB,然后从DCB得到有关该设备的信息。 返回目录2. 控制器控制表、控制器控制表、 通道控制表和系统设备表通道控制表和系统设备表 (c) 系统SDT控制器标识符: con

17、trollerid控制器状态:忙/闲与控制器连接的通道表指针控制器队列的队首指针控制器队列的队尾指针通道标识符: channelid通道状态:忙/闲与通道连接的控制器表首址通道队列的队首指针通道队列的队尾指针(a) 控制器表 COCT(b) 通道表 CHCT表目 1表目 i设备类设备标识符DCT驱动程序入口3. 设备分配时应考虑的因素设备分配时应考虑的因素 设备的固有属性设备的固有属性 (1) 独享设备:独享设备:(2) 进程使用独占设备的过程:申请进程使用独占设备的过程:申请-使用使用-释释放。放。(3) 进程申请设备进程申请设备(4) 系统分配设备系统分配设备(5) 进程发送使用命令进程发

18、送使用命令(6) 系统将转到设备驱动模块完成一次系统将转到设备驱动模块完成一次I/O传输传输(7) 进程释放设备进程释放设备(8) 系统回收设备系统回收设备当进程的一次设备申请成功,直到发出释放命令期间,当进程的一次设备申请成功,直到发出释放命令期间,一直独占设备。一直独占设备。 o(2) 共享设备共享设备o进程使用共享型设备不需要申请,当然也就不存进程使用共享型设备不需要申请,当然也就不存在占用型或释放设备的问题,但是,在占用型或释放设备的问题,但是,I/O期间只期间只能有一个进程使用设备,因此,进程使用共享设能有一个进程使用设备,因此,进程使用共享设备之前,有一个隐含的申请命令,使用完毕以

19、后,备之前,有一个隐含的申请命令,使用完毕以后,有一个隐含的释放命令,以实现一次基本的有一个隐含的释放命令,以实现一次基本的I/O传输期间的排他性,保证操作的正常进行。传输期间的排他性,保证操作的正常进行。o使用共享型设备的过程中,进程完全有可能进入使用共享型设备的过程中,进程完全有可能进入阻塞等待状态。阻塞等待状态。o o(3) 虚拟设备:一台可虚拟设备是可共享的设备。虚拟设备:一台可虚拟设备是可共享的设备。 设备分配算法设备分配算法 (1) 先来先服务先来先服务(2) 根据某进程对某设备提出请求的先后次序,将这些根据某进程对某设备提出请求的先后次序,将这些进程排成一个进程排成一个 设备请求

20、队列,设备分配程序总是把设备请求队列,设备分配程序总是把设备分配给队首的进程设备分配给队首的进程(3) (2) 优先级高者优先优先级高者优先(4) 根据进程优先级的高低,将优先级高的进程排在设根据进程优先级的高低,将优先级高的进程排在设备等待队列的前面,对与优先级相同的进程,则按备等待队列的前面,对与优先级相同的进程,则按照先来先服务的原则进行排队,设备分配程序总是照先来先服务的原则进行排队,设备分配程序总是把设备分配给排在队首的进程。把设备分配给排在队首的进程。 设备分配中的安全性设备分配中的安全性 1) 安全分配方式安全分配方式 2) 进程发出进程发出I/O请求后,即阻塞等待请求后,即阻塞

21、等待I/O操作完成。操作完成。摒弃了摒弃了“请求和保持请求和保持”条件(死锁条件),设备条件(死锁条件),设备分配安全。缺点:进程缓慢,分配安全。缺点:进程缓慢,cpu和和I/O设备串设备串行。行。3) 2) 不安全分配方式不安全分配方式 4) 进程发出一个进程发出一个I/O请求后,还可再发出,直到请求后,还可再发出,直到请求设备已被另一个设备占用,进程才阻塞。请求设备已被另一个设备占用,进程才阻塞。5) 可能具备可能具备“请求和保持请求和保持”条件,可能死锁,不安条件,可能死锁,不安全。可加入安全性计算(例:银行家算法)。全。可加入安全性计算(例:银行家算法)。6) 优点:推进迅速。优点:推

22、进迅速。o7.2.1 程序循环控制程序循环控制I/O 采用这种方式实现I/O,是基于设备只有设置状态寄存器中“忙”位的能力:“1”时表示该设备在工作,暂时不能接受新的I/O请求;“0”时表示设备空闲,可接受新的I/O请求。只有CPU不断地去测试“忙”位,才能判断该设备是工作或空闲。7.2 I/O的四种实现方式的四种实现方式 .read (device, )数据区“读”系统调用命令“写”系统调用命令命令寄存器状态寄存器数据寄存器设备控制器硬件接口系统接口用户程序. 如图所示给出了程序循环控制I/O的“读”操作执行情形,具体步骤如下: (1) 用户进程程序对某个设备提出读请求。 (2) CPU执行

23、设备驱动程序,测试设备状态寄存器中的忙位。如果设备忙,就不断进行循环测试,直等到设备空闲。 (3) 驱动程序重新设置忙位,把输入命令存入设备控制器的命令寄存器,启动设备开始工作。 (4) 这时,设备去做I/O,驱动程序仍不断测试忙位,等待I/O操作的完成。 (5) 驱动程序将数据寄存器中的数据内容读到用户指定的位置,完成读操作。 返回目录 I/O控制方式发展宗旨:减少主机对控制方式发展宗旨:减少主机对I/O的控制,以便让的控制,以便让cpu更多的更多的去完成数据处理任务。去完成数据处理任务。o在程序I/O方式中,由于CPU的高速性和I/O设备的低速性, 致使CPU的绝大部分时间都处于等待I/O

24、设备完成数据I/O的循环测试中, 造成对CPU的极大浪费。在该方式中,CPU之所以要不断地测试I/O设备的状态,就是因为在CPU中无中断机构, 使I/O设备无法向CPU报告它已完成了一个字符的输入操作。o7.2.2 中断驱动中断驱动I/O 中断机制下,硬件有条中断请求线( IRL)。CPU执行完指令后,就去检查IRL。检测到有设备控制器通过中断请求线发出了信号,CPU就去执行中断处理程序,判定中断原因,进行必要的处理,再让CPU返回中断以前的执行状态。 .read (device, )数据区命令寄存器状态寄存器数据寄存器设备控制器硬件接口系统接口设备状态表设备驱动程序设备处理程序中断处理程序

25、在利用中断的情况下,设备驱动程序由进行I/O操作初始化、启动设备工作的设备驱动程序和I/O完成后做善后处理的设备处理程序组成。系统维护一张“设备状态表”,表项里记录一个设备发生中断时的有关信息。 这时I/O的“读”操作执行情形如图所示 。.返回目录 在在I/O设备输入每个数据的过程中,由于无须设备输入每个数据的过程中,由于无须CPU干预,干预,因而可使因而可使CPU与与I/O设备并行工作。仅当输完一个数据时,才设备并行工作。仅当输完一个数据时,才需需CPU花费极短的时间去做些中断处理。可见,这样可使花费极短的时间去做些中断处理。可见,这样可使CPU和和I/O设备都处于忙碌状态,从而提高了整个系

26、统的资源设备都处于忙碌状态,从而提高了整个系统的资源利用率及吞吐量。例如,从终端输入一个字符的时间约为利用率及吞吐量。例如,从终端输入一个字符的时间约为100 ms, 而将字符送入终端缓冲区的时间小于而将字符送入终端缓冲区的时间小于 0.1 ms。 若采用若采用程序程序I/O方式,方式,CPU约有约有 99.9 ms的时间处于忙的时间处于忙等待中。等待中。 采采用中断驱动方式后,用中断驱动方式后,CPU可利用这可利用这 99.9 ms的时间去做其它事的时间去做其它事情,而仅用情,而仅用 0.1 ms的时间来处理由控制器发来的中断请求。的时间来处理由控制器发来的中断请求。 可见,中断驱动方式可以

27、成百倍地提高可见,中断驱动方式可以成百倍地提高CPU的利用率。的利用率。 为减少中断对为减少中断对CPU造成的负担,对系统中的造成的负担,对系统中的一些高速一些高速I/O设备设备以及成组以及成组交换数据的情形,可采用直接内存访问交换数据的情形,可采用直接内存访问I/O的方式,把的方式,把I/O的主要任务交给一个专用的、的主要任务交给一个专用的、名为名为DMA的控制器去完成。的控制器去完成。 o7.2.3 直接内存访问直接内存访问I/O .1. 直接内存访问直接内存访问I/O的含义的含义 地址寄存器字节计数寄存器控制寄存器CPUDMA控制器1.CPU对DMA控制器进行编程完成时中断缓冲区磁盘控制

28、器磁盘驱动器4.应答2.DMA请求传输到内存3.数据传输内存总线. DMA是是“直接内存访问直接内存访问”的意思。的意思。DMA独立于独立于CPU工作,在它控制下的设备,可直工作,在它控制下的设备,可直接和内存进行信息传送,其间无需接和内存进行信息传送,其间无需CPU做任何干预。做任何干预。 .DMA用于磁盘访问时,其传输过程如图所示用于磁盘访问时,其传输过程如图所示.。具体步骤如下。具体步骤如下。(1) CPU把含传输数据的源地址、目标地址、传输字节数等信息的命令信息块写入把含传输数据的源地址、目标地址、传输字节数等信息的命令信息块写入内存,并把该块的起址写入内存,并把该块的起址写入DMA控

29、制器的有关寄存器中,控制器的有关寄存器中,启动启动DMA控制器工作。控制器工作。这样,这样,CPU就把这次就把这次I/O所要完成的任务交给了所要完成的任务交给了DMA去完成,自己就可去完成,自己就可脱出身去做其他与该脱出身去做其他与该I/O无关的事情了。无关的事情了。 DMA控制器自动调整地址寄存器,减少字节计数寄存器的值。若该值仍大于0,表示所要求的I/O还没有最后完成,于是重复上述步骤。 DMA通过总线向磁盘控制器发送读盘请求,要它取得总线使用权,并把数据传输到指定的内存区域中。 (2)(3) 磁盘控制器按照I/O要求,把内部缓冲区里的数据传输到内存。 (4) 数据传输完毕,磁盘控制器通过

30、总线向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遭受到轻微地延迟。这被称为“周期窃取”。 每

31、次一块模式:DMA控制器通知设备获得总线,进行成组传输后,释放总线。称为“突发模式”。相比周期窃取,突发模式窃取了更多的总线时间,传输了更多的字节。长时间的突发传输,有可能使CPU和其他设备阻塞很长的时间。 3. DMA控制器的特点控制器的特点 (1)(2) DMA控制器是在获得总线控制权的情况下,直接让设备与内存进行数据交换,CPU不介入数据传输的任何事宜; DMA方式下,设备与内存间由字节计数寄存器管理数据的传输量; (3) DMA方式下传输数据时,或采用周期窃取模式,或采用突发模式,因此CPU暂时不能使用总线,设备和CPU不能并行工作; (4) 采用DMA控制设备传输数据时,启动和结束I

32、/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。因此,访问一个扇区需要的时间是:

33、1/(680)=1/480s。 对于中断驱动I/O、每读一个字节产生一次中断时,CPU花费在处理I/O上的时间占总时间的百分比是:(5122.5)/(1/12+1/480)+(5122.5) 99.9%。 对于DMA方式,由于是读一个扇区才产生一次中断,处理中断的时间不变,因此CPU花费在处理I/O上的时间占总时间的百分比是:2.5/(1/12+1/480)+2.5) 97.5% 进程提出I/O请求后,CPU发出启动命令,指明I/O操作、设备号和对应的通道。把数据传输的任务交给通道。 7.2.4 通道管理通道管理I/O 1. 通道的含义通道的含义 通道是一个独立于通道是一个独立于CPU的、专门

34、用来管理输入的、专门用来管理输入/输出操作的处理机,由输出操作的处理机,由它控制设备与内存进行数据交换。它控制设备与内存进行数据交换。 . 通道有自己的指令系统,通道的指令被称为“通道命令字”。通道命令字的条数并不多,主要涉及控制、转移、读、写及查询等功能。如图所示,给出了IBM通道命令字的格式。命令码数据内存地址标志码传输字节个数07 831 3239 4063. 若干通道命令字构成一个“通道程序”,它规定了设备应该执行的各种操作和顺序。在CPU启动通道后,由通道执行通道程序,完成CPU所交给的I/O任务。 . 通道程序存放在通道自己的存储部件里。若通道中没有存储部件时,就存放在内存。这时,

35、为了使通道能取到通道程序去执行,必须把存放通道程序的内存起址告诉通道。存放这个起始地址的内存固定单元,被称为“通道地址字”。 当采用通道来进行数据传输时,计算机系统的I/O结构应该是通道与主机相连,设备控制器与通道相连,设备与设备控制器相连。另外,一个设备控制器上可能连接多个设备,一个通道上可能连接多个设备控制器。 .使用通道方式进行数据传输的步骤如下:(1) CPU响应通道提出的中断请求,对这次I/O进行善后处理,把阻塞进程的状态变为就绪,重新参与对CPU的竞争。 (2) 发出I/O请求的进程被阻塞,进程调度程序把CPU分配给另一个进程。 (3)(4)通道接收CPU的启动命令,执行通道程序,

36、设备与CPU并行工作。 (5) 通道逐条执行通道程序中的通道命令字,指示设备完成规定的操作,与内存进行数据交换。 数据传输完毕,通道向CPU发出中断请求。 (6)2. 通道的类型通道的类型 字节多路通道选择通道成组多路通道内存CPU打印机1打印机2显示器1显示器2磁带磁盘磁盘1 磁盘2磁盘3 字节多路通道:适用于连接慢速字符设备。“多路”,是指在时间片分时的基础上,为所连接的多个低速、中速I/O设备提供简单的共享服务。通道上连接的每个设备,都有自己的通道程序。通道分时地执行各个通道程序,以字节为单位,完成和内存间的数据交换。. 选择通道:连接高速I/O设备,每个设备有自己的通道程序,在某时间内

37、,通道只能选择一个I/O设备工作。它以“块”为单位进行数据传输,传输效率高。 . 成组多路通道:适用于连接高速I/O设备,“成组”表示传输是以块为单位;“多路”表示可按分时的手法为多个设备服务。 返回目录7.3 缓冲、虚拟设备与缓冲、虚拟设备与SPOOLing技术技术 o7.3.1 I/O缓冲缓冲 1. 缓冲技术的意义缓冲技术的意义 在在I/O系统中,所谓系统中,所谓“缓冲缓冲”,是指临时保存数据信息的存储区。在需要信息之前,是指临时保存数据信息的存储区。在需要信息之前,输入缓冲区里就存放着从设备读入的输入信息;在输出设备可用时,输出缓冲区里就存输入缓冲区里就存放着从设备读入的输入信息;在输出

38、设备可用时,输出缓冲区里就存放着等候输出的信息。放着等候输出的信息。.101102103104105106107108键盘鼠标针式打印机软盘激光打印机光盘磁盘 如图所示,是若干设备的数据传输率,单位是bit/s。现代操作系统中,几乎几乎所有的所有的I/O设备在与内存交换数据时,都设备在与内存交换数据时,都使用缓冲区来缓解使用缓冲区来缓解CPU与低速与低速I/O设备传设备传输速度不匹配的矛盾,提高输速度不匹配的矛盾,提高I/O速度以及速度以及I/O设备的利用率。设备的利用率。 . 缓冲区不仅适用于CPU与I/O设备之间,凡数据到达率与数据离去率不一致的地方,都可通过缓冲区来解决它们间的不匹配矛盾

39、。比如,在网络通信中,可利用缓冲技术解决发送方与接收方之间速度不匹配的问题。2. 单缓冲单缓冲 . 所谓“单缓冲”,即是以传输数据的单位为准,在内存分配一个相同大小的区域作为缓冲区。这是最简单类型的缓冲区。 操作系统用户进程用户数据区操作系统进入进入单缓冲用户进程用户数据区移到(a) 没有缓冲的I/O(b) 设置单缓冲的I/O 图(a)是没有缓冲区时,数据从I/O设备读到内存用户区的情形;图(b)是设置单缓冲区时,数据从I/O设备读到内存用户区的情形。 .3. 双缓冲、循环缓冲、缓冲池双缓冲、循环缓冲、缓冲池 (1) 双缓冲操作系统用户进程用户数据区进入双缓冲移到12 在双缓冲的情形下,磁盘控

40、制器先读进一块数据到缓冲0。在CPU从缓冲0取出数据移到用户数据区里时,设备就可以往缓冲1里传输数据;只要缓冲0被腾空,设备又可以往缓冲0里存放数据。 若系统设置两个缓冲区,对于平滑设备和CPU之间的处理速度会更加有效。这种使用两个缓冲区来完成缓冲的技术,称之为“双缓冲”。.循环缓冲 (2)操作系统进入用户进程用户数据区移到12n 循环缓冲是一种缓冲数目多于两个的缓冲技术,缓冲按照索引值(0n-1)排序,形成一个循环列表得到循环使用。如图所示。 (3) 缓冲池 . 专用缓冲区的优点是管理简单。但它不仅耗费很多的内存空间,有时还会出现问题:如果设备缓冲区的数目不够多,那么就可能会使进程因等待缓冲

41、区而阻塞,影响系统并行处理能力的发挥;如果对设备的I/O请求很少,那么分配用于作为缓冲区的内存空间就不能得到充分的利用。 . 系统开辟一个内存空间作为I/O的共享缓冲区,当进程请求I/O时,根据需要从缓冲池里申请缓冲区;I/O处理完毕,系统就收回缓冲区归还给缓冲池。不将缓冲区与具体设备固定在一起,而是集中管理,供I/O设备共享使用的技术,称为“缓冲池”。 缓冲池中的每个缓冲区,既可以用于输入,也可以用于输出。因此,缓冲池中有三种类型的缓冲区:空闲的,当前用于输入的,以及当前用于输出的。系统可以根据它们的状态,组成三个缓冲队列。 . 缓冲池的出现,提高了这部分内存空间的使用效率。但系统却要为此付

42、出复杂管理的代价:要管理三种类型的缓冲区队列,要提供实施申请和释放缓冲区的系统调用命令等。返回目录 当系统中只有一台输入或输出设备,却有好几个用户都要使用时,那么一个用户必须等待其他用户使用完才能去用,这不利于多道程序并行工作,也影响到系统效率的发挥。 .o7.3.2 虚拟设备与虚拟设备与SPOOLing技术技术 1. 虚拟设备的概念虚拟设备的概念 . 可利用大容量的共享设备磁盘作为后援,用软件技术模拟独享设备的工作,使每个用户都认为自己独占使用了输入或输出设备,它们的传输速度与磁盘一样快。 . 这种用一类物理设备模拟出的另一类物理设备,被称为“虚拟设备”。在提供虚拟设备的系统中,用户进行I/

43、O时,不直接面对物理的独享设备,而是面对虚拟的独享设备。 2. SPOOLing技术技术 . 为实现虚拟设备,在磁盘上划出两块专用的存储空间,一块预先存放I/O设备的输入数据信息,被称为“输入井”;另一块暂时存放每个运行作业进程的输出数据信息,被称为“输出井”,如图所示。 作业1信息作业n信息作业1结果作业n结果预输入程序缓输出程序井管理读程序井管理写程序作业执行作业1数据作业n数据输入井作业1结果作业n结果输出井输入机打印机 作业运行时,不启动输入机读信息,而是从磁盘的输入井得到。作业产生输出时,把输出信息先存在输出井中,不直接启动输出设备输出。输入井和输出井,是把独享设备变为共享的物质基础

44、。 .共享打印机共享打印机 共享打印机技术已被广泛地用于多用户系统和局域网络共享打印机技术已被广泛地用于多用户系统和局域网络中。中。 当用户进程请求打印输出时,当用户进程请求打印输出时, SPOOLing系统同意为它系统同意为它打印输出,打印输出, 但并不真正立即把打印机分配给该用户进程,但并不真正立即把打印机分配给该用户进程, 而只为它做两件事:而只为它做两件事: 由输出进程在输出井中为之申请一由输出进程在输出井中为之申请一个空闲磁盘块区,个空闲磁盘块区, 并将要打印的数据送入其中;并将要打印的数据送入其中; 输出进输出进程再为用户进程申请一张空白的用户请求打印表,并将用户程再为用户进程申请

45、一张空白的用户请求打印表,并将用户的打印要求填入其中,的打印要求填入其中, 再将该表挂到请求打印队列上。再将该表挂到请求打印队列上。 SPOOLing系统的特点系统的特点 (1) 提高了提高了I/O的速度。的速度。(2) 由对低速由对低速I/O设备的设备的I/O操作,演变为对磁盘输入操作,演变为对磁盘输入井,输出井的操作。井,输出井的操作。(3) (2) 将独占设备改造为共享设备。将独占设备改造为共享设备。(4) 例:共享打印机例:共享打印机 (5) (3) 实现了虚拟设备功能。实现了虚拟设备功能。(6) 将独占设备变换为若干台对应逻辑设备的功能。将独占设备变换为若干台对应逻辑设备的功能。 前

46、导码:位于每个扇区头部,记录着该扇区的有关信息,比如扇区号。磁盘控制器可根据这些信息识别一个扇区的开始,以及是哪一个扇区。7.4 磁盘及磁盘的移臂调度策略磁盘及磁盘的移臂调度策略 o7.4.1 磁盘的格式化磁盘的格式化 1. 磁盘的低级格式化磁盘的低级格式化 . 磁盘盘面上有着薄薄的一层用于记忆的可磁化金属氧化物。刚生产出的磁盘上,没有任何信息存在。在它可被使用前,每个盘片必须通过软件对其进行低级格式化,也称“物理格式化”。 . 所谓“低级格式化”,指将磁盘的每个盘面划分成可供磁盘控制器进行读/写的扇区的过程。格式化后,盘面上就有了一系列同心的磁道,每个磁道包含若干数目的扇区。划分出的扇区格式

47、如图所示。 前导码数据区ECC.扇区各部分的含义(1)(2) ECC是纠错码的意思。在磁盘控制器往扇区写数据时,会根据所写数据计算出一个值对ECC进行更新。在对磁盘扇区读时,会根据所读数据重新计算ECC值,并与原存储的值进行比较。如果这两值不同,就表示该扇区的数据区已损坏,或该扇区变坏。 数据区:是扇区中存放数据的地方,其尺寸由进行低级格式化的程序决定,通常有几种选择:256字节、512字节或1024字节,大多数磁盘都选用512字节的扇区。 (3) 这种对磁盘的分区和创建文件系统的工作,被称为“高级格式化”。它需要用操作系统提供的系统调用命令(比如format)来完成。 所谓“分区”,即是以柱

48、面为单位对磁盘进行划分,每个部分所含的柱面数目可以不等。对于这些分区,操作系统将以独立的磁盘来对它们进行管理和使用。 为使磁盘能存储文件,操作系统还需在磁盘上记录自己的数据结构,它由两部分组成:分区和创建文件系统。 2. 磁盘的高级格式化磁盘的高级格式化 . 扇区是磁盘空间分配和进行I/O传输的数据单位。确定一个扇区需三个参数:柱面(磁道)号、盘面(磁头)号、扇区号。也就是说,扇区的物理地址是三维的。 . 所谓“创建文件系统”,即是在分区里完成文件系统的初始化,比如建立分区目录结构、记录该分区扇区使用情况的数据(总扇区数、已分配扇区数、空闲扇区数)等。 3. 磁盘的编址方式磁盘的编址方式 一般

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

50、道)扇区号 = 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个记录的文件,记录大小与扇区尺寸同,

51、编号从0开始。该文件从0柱面、0磁道、0扇区顺序存放。试问:(1)该文件第3680个记录存放在磁盘哪个位置?(2)第78柱面第6磁道第6扇区中应存放该文件的第几个记录?解解: 第78柱面第6磁道第6扇区位置处存放的是:磁盘块号 = 6 + 8 (6 + 78 8) = 5046(块)即存放的是文件中编号为第5046个的记录(实际上应该是第5047个记录,因为记录号是从0开始算起的)。(1)(2)返回目录 对于磁盘,有三种时间需关注:把磁头定位到磁把磁头定位到磁道所需时间,称道所需时间,称“寻道时间寻道时间”;磁头到达扇区开始位磁头到达扇区开始位置的时间,称置的时间,称“旋转延迟旋转延迟”;一旦

52、磁头被定位,磁磁头就对旋转通过它下面的扇区执行读操作或写头就对旋转通过它下面的扇区执行读操作或写操作,完成数据信息的传输,传输所花费的时操作,完成数据信息的传输,传输所花费的时间称间称“传送时间传送时间”。 磁盘驱动器工作时,以恒定的速度进行旋转。只有当磁头位于指定的磁道和该磁道中指定的扇区开始处时,才能够进行读或写操作。 o7.4.2 磁盘的性能参数磁盘的性能参数.寻道时间磁旋转延迟盘旋转方向传送时间磁臂例例7-5 : 某磁盘磁道分成5个扇区(04),每个扇区存放一个逻辑记录。一个用户文件有5个记录:A、B、C、D、E,被顺序存放在一个磁道上。假定磁盘旋转一周的时间是20ms,每个记录读出后

53、需6ms的时间处理。试问:(1)顺序读出5个记录并进行处理,共需多少时间?(2)给出一种在磁盘上安排记录的策略,使整个时间尽可能少。 解解: (1)顺序读取和处理5个记录,共需时间:(4+6+14)4+(4+6)=106ms。(2) 为使时间减少,应减少旋转延迟,即把下一个要读取的记录放在处理完前一个记录后距磁头最近之处。时读取和处理5个记录共需时间:(4+6+2)4+(4+6)=58ms 返回目录o当有多个进程都请求访问磁盘时,他们所当有多个进程都请求访问磁盘时,他们所访问的位置(这里主要关心磁道)是不同访问的位置(这里主要关心磁道)是不同的。磁头需要来回频繁移动进行寻道操作。的。磁头需要来

54、回频繁移动进行寻道操作。o磁头的移动属于机械运动,需要的时间较磁头的移动属于机械运动,需要的时间较长,而且频繁的磁头移动会缩短磁头的寿长,而且频繁的磁头移动会缩短磁头的寿命,因此,必须采取合适的磁盘调度算法,命,因此,必须采取合适的磁盘调度算法,在尽可能公平的前提下,缩短平均寻道时在尽可能公平的前提下,缩短平均寻道时间,并使磁头移动距离最小。间,并使磁头移动距离最小。o7.4.3 磁盘的移臂调度策略磁盘的移臂调度策略 假设磁盘有200个磁道,磁盘请求队列中排列着一些随机请求。目前移动臂位于磁道53,接着被请求的磁道按顺序是:98、183、37、122、14、124、65、67。下面将以此为基础

55、,讨论在I/O队列里挑选I/O请求的各种调度策略。.1. 先来先服务调度策略先来先服务调度策略 014375365 6798122 124183磁道号 “先来先服务(FCFS)”调度策略,是以I/O请求到达队列的时间顺序,作为选择为其提供服务的顺序。如图所示给出移动臂移动的路线,该策略去考虑I/O请求所涉及的访问位置在磁盘何处。磁头总共滑过了640个磁道的距离。 .2. 最短寻道优先调度策略最短寻道优先调度策略 014375365 6798122 124183磁道号. “最短寻道优先(SSTF)”调度策略,是把距离磁头当前位置最近的那个I/O请求作为下一次调度的对象。这时移动臂移动的路线如图所

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

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

58、SCAN调度策略调度策略 .014375365 6798122 124183磁道号返回到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的性能接近

59、SCAN;当N=1时,它就是FCFS。 所谓“FSCAN”策略,是只使用两个队列的调度策略。开始扫描时,只对已到达的所有请求进行处理,新到达的请求排在另一个队列。只有等到老请求全部处理完后,才去处理新请求的I/O。(1)(2)返回目录o7.4.4 独立磁盘冗余阵列:独立磁盘冗余阵列:RAID 1. 独立磁盘冗余阵列的概念独立磁盘冗余阵列的概念 . 在现代计算机系统中,磁盘的作用越来越突显,各种虚拟技术(如虚拟存储器、虚拟设备等)相继得到了实现。但磁盘性能的改善,远远跟不上处理器和内存储器性能的飞速发展。这种不匹配的现实,使磁盘已经成为提高整个计算机系统性能的主要瓶颈所在。 通过多个磁盘,多个独

60、立的I/O请求可并行得到处理,只要它们所需要的数据分布在不同的磁盘中;即使是同一个I/O请求,若其要访问的数据分布在多个磁盘上,则该请求也可以并行地得到执行。这就是在磁盘上组织数据的问题。 利用多磁盘的并行访问能力,可改善磁盘的传输率利用多磁盘的并行访问能力,可改善磁盘的传输率。最简单的办法是将数据分散存放。分散存放有两种方法,第一种是在多个磁盘上分散每个字节的各个位,称为“位级分散”;第二种方法是所谓的“块级分散”,即是将文件数据进行分块,以块为单位分散存放在多个磁盘上。 . 利用多磁盘的大容量能力,也可改善磁盘存储的可靠性利用多磁盘的大容量能力,也可改善磁盘存储的可靠性。这是因为在多磁盘组

温馨提示

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

最新文档

评论

0/150

提交评论