欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPTX文档下载  

    操作系统设备管理.pptx

    • 资源ID:4532860       资源大小:709.56KB        全文页数:85页
    • 资源格式: PPTX        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    操作系统设备管理.pptx

    1,第9章 设备管理,9.1 引言9.2 数据传送控制方式(略)9.3 中断技术(略)9.4 缓冲技术9.5 设备分配9.6 I/O进程控制(略)9.7 设备驱动程序(简)9.8 磁盘调度,2,设备管理是操作系统的重要组成部分之一。本章主要讨论设备管理的基本概念,包括中断、缓冲、设备分配和控制等。9.1 引 言9.1.1 设备的类别 在计算机系统中,除了CPU和内存之外,其他的大部分硬设备称为外部设备。它包括常用的输入输出设备、外存设备以及终端设备等。本节先从系统管理的角度将各种设备进行简单的分类,然后再介绍设备管理的主要功能与任务。早期的计算机系统由于速度慢、应用面窄,外部设备主要以纸带、卡片等作为输入输出介质,相应的设备管理程序也比较简单。,3,由于个人计算机、工作站以及计算机网络系统等的发展,外部设备开始走向多样化、复杂化和智能化。再者,除了硬件设备之外,以某种硬件设备为基础的虚拟设备和仿真设备技术也得到了广泛应用。例如,虚终端技术和仿真终端技术等。实际上,近年来最为流行的窗口系统中的X-WINDOW等都是作为一种设备和操作系统相连的。这使得设备管理变得越来越复杂化。首先,我们介绍设备的分类。按设备的使用特性分,可分为存储设备、输入输出设备、终端设备以及脱机设备等,如图9.1所示。,4,图9.1 按使用特性对外部设备的分类,5,另外,按设备的从属关系,可把设备划分为系统设备和用户设备。系统设备是指那些在操作系统生成时就已配置好的各种标准设备。例如,键盘、打印机以及文件存储设备等。而用户设备则是那些在系统生成时没有配置,而由用户自己安装配置后由操作系统统一管理的设备。例如,网络系统中的各种网卡、实时系统中的A/D、D/A变换器、图像处理系统的图像设备等。对设备分类的目的在于简化设备管理程序。由于设备管理程序是和硬件打交道的,因此,不同的设备硬件对应于不同的管理程序。不过,对于同类设备来说,由于设备的硬件特性十分相似,从而可以利用相同的管理程序或只需做很少的修改即可。,6,除了上述分类方法之外,在有的系统中还按信息组织方式来划分设备。例如,UNIX系统就把外部设备划分为字符设备和块设备。键盘、终端、打印机等以字符为单位组织和处理信息的设备被称为字符设备;而磁盘、磁带等以字符块为单位组织和处理信息的设备被称为块设备。,7,9.1.2 设备管理的功能和任务 设备管理是对计算机输入输出系统的管理,是操作系统中最具多样性和复杂性的部分。其主要任务是:(1)选择和分配输入输出设备以进行数据传输操作;(2)控制输入输出设备和CPU(或内存)之间交换数据;(3)为用户提供友好的透明接口,把用户和设备硬件特性分开,使得用户在编制应用程序时不必涉及具体设备,系统按用户要求控制设备工作。另外,这个接口还为新增加的用户设备提供一个和系统核心相连接的入口,以便用户开发新的设备管理程序;,设备管理的功能和任务,(4)提高设备和设备之间、CPU和设备之间,以及进程和进程之间的并行操作度,以使操作系统获得最佳效率。,8,9,为了完成上述主要任务,设备管理程序一般要提供下述功能:(1)提供和进程管理系统的接口。当进程要求设备资源时,该接口将进程要求转达给设备管理程序;(2)进行设备分配。按照设备类型和相应的分配算法把设备和其他有关的硬件分配给请求该设备的进程,并把未分配到所请求设备或其他有关硬件的进程放入等待队列;,10,(3)实现设备和设备、设备和CPU等之间的并行操作。这需要有相应的硬件支持。除了装有控制状态寄存器、数据缓冲寄存器等的控制器之外,对应于不同的输入输出(I/O)控制方式,还需要有DMA通道等硬件。从而,在设备分配程序根据进程要求分配了设备、控制器和通道(或DMA)等硬件之后,通道(或DMA)将自动完成设备和内存之间的数据传送工作,从而完成并行操作的任务。在没有通道(或DMA)的系统里,则由设备管理程序利用中断技术来完成上述并行操作;,11,(4)进行缓冲区管理。一般来说,CPU的执行速度和访问内存速度都比较高,而外部设备的数据流通速度则低得多(例如键盘),为了减少外部设备和内存与CPU之间的数据速度不匹配的问题,系统中一般设有缓冲区(器)来暂放数据。设备管理程序负责进行缓冲区分配、释放及有关的管理工作。下面,首先介绍各种输入输出的控制方式,然后再介绍缓冲区管理、中断、陷入以及软中断等基本概念。在此基础上,再介绍设备分配原则及有关分配算法,最后介绍I/O进程的概念及设备驱动过程。,12,设备控制器,I/O设备一般由机械和电子两部分组成,通常将这两部分分开处理,以提供更加模块化、更加通用的设计。电子部分称作设备控制器或适配器(Device Controller或Adapter)。机械部分就是设备本身,控制器通过电缆与设备内部相连。,13,14,设备控制器,设备控制器的主要作用有:接收和识别CPU发来的多种不同命令;实现CPU与控制器之间、控制器和设备之间的数据交换;记录和报告设备的状态。地址识别。识别控制器控制的每个设备的地址。,15,设备控制器,每个 I/O 设备通过设备控制器 与计算机的数据总线和地址总线相连接。设备控制器是用于操作端口、总线或设备的一组电子器件。某些设备(如磁盘设备)有内置的控制器,16,CPU,RAM,设备控制器与设备,地址总线,数据总线,(总线由单独的线路组成),17,设备控制器,处理器如何向控制器发送命令和数据以完成 I/O 传输呢?设备控制器有一个或多个用于数据和控制信号的寄存器。设备控制器可能包含有数据寄存器、状态寄存器、控制寄存器和存储器(这部分存储器称为硬件缓冲区)。处理器通过读写这些寄存器的位组合来与设备控制器通信。,18,设备控制器中的寄存器,状态寄存器:保存是否忙、任务是否完成、是否出错等信息。控制寄存器向设备发送命令或改变设备状态。数据寄存器(输入/出)数据被写入该设备数据寄存器,或从该设备数据寄存器读出数据供处理器使用。Buffer 数据从该设备读出后、处理器对它处理之前临时存放数据,或临时存放正等待写到该设备的数据。,19,设备控制器中的寄存器,控制寄存器,数据寄存器 0,数据寄存器 1,数据寄存器 n-1,设备控制器,忙,已完成,出错,.,状态寄存器,20,内存映射 I/O,传统上,CPU 用特殊的 I/O 指令 和单独的 I/O 总线对每个设备读/写信息。例如,一个读/写命令必须指定设备地址IN AX,80H用内存映射 I/O 时,CPU 使用相同的指令和总线对内存和所有的输入/出设备进行通信。,21,内存映射 I/O,I/O 设备被看作是主存映射图中的某个内存位置。没有专门的设备地址对每个设备寄存器有标准的内存地址。处理器通过标准数据传输指令来完成对设备控制器的读写。思考:我们学习过这样的方式吗?,22,内存映射 I/O,RAM,devicethree,devicetwo,deviceone,RAM,devicethree,devicetwo,deviceone,设备地址,内存地址,内存地址,(内存映射 I/O),(传统的方法),23,内存映射 I/O,个人计算机(PC)使用特殊的 I/O 指令来控制一些设备,而使用内存映射 I/O 指令来控制其他设备(如,图形控制器(视频卡)。图形控制器有一个较大的内存映射区域以保存屏幕内容。处理器通过对图形控制器的内存映射区写数据来向屏幕输出(例如一幅图片)。,24,显卡影子内存设置,25,9.2 数据传送控制方式 设备管理的主要任务之一是控制设备和内存或CPU之间的数据传送,本节介绍常用数据传送控制方式。选择和衡量控制方式有如下几条原则:(1)数据传送速度足够高,能满足用户的需要但又不丢失数据;(2)系统开销小,所需的处理控制程序少;(3)能充分发挥硬件资源的能力,使得I/O设备尽量忙,而CPU等待时间少。为了控制I/O设备和内存之间的数据交换,每台外围设备都按一定规律编码。而且,设备和内存与CPU之间有相应的硬件接口支持同步控制、设备选择以及中断控制等。因此,假定本节的数据传送控制方式都是基于这些硬件基础的,从而不再讨论有关硬件部分。,26,外围设备和内存之间的常用数据传送控制方式有4种。即:(1)程序直接控制方式;(2)中断控制方式;(3)DMA方式;(4)通道方式。下面分别给予介绍。,27,9.3 中 断 技 术 从上节可以看出,除了程序直接控制方式之外,无论是中断控制方式、DMA方式还是通道控制方式,都需在设备和CPU之间进行通信,由设备向CPU发中断信号之后,CPU接收相应的中断信号进行处理。这几种方式的区别只是中断处理的次数、数据传送方式以及控制指令的执行方式等。在计算机系统中,除了上述I/O中断之外,还存在着许多其他的突发事件,例如电源掉电、程序出错等,这些也会发出中断信号通知CPU做相应的处理。本节进一步讨论中断问题。,28,9.3.1 中断的基本概念 中断(Interrupt)是指计算机在执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得CPU暂时中断当前正在执行的程序而转去执行相应的事件处理程序,待处理完毕后又返回原来被中断处继续执行或调度新的进程执行的过程。引起中断发生的事件被称为中断源。中断源向CPU发出的请求中断处理信号称为中断请求,而CPU收到中断请求后转相应的事件处理程序称为中断响应。,29,在有些情况下,尽管产生了中断源和发出了中断请求,但CPU内部的处理机状态字PSW的中断允许位已被清除,从而不允许CPU响应中断。这种情况称为禁止中断。CPU禁止中断后只有等到PSW的中断允许位被重新设置后才能接收中断。禁止中断也称为关中断,PSW的中断允许位的设置也被称为开中断。中断请求、关中断、开中断等都由硬件实现。开中断和关中断是为了保证某些程序执行的原子性。除了禁止中断的概念之外,还有一个比较常用的概念是中断屏蔽。中断屏蔽是指在中断请求产生之后,系统用软件方式有选择地封锁部分中断而允许其余部分的中断仍能得到响应。,30,中断屏蔽是通过每一类中断源设置一个中断屏蔽触发器来屏蔽它们的中断请求而实现的。不过,有些中断请求是不能屏蔽甚至不能禁止的,也就是说,这些中断具有最高优先级。不管CPU是否是关中断的,只要这些中断请求一旦提出,CPU必须立即响应。例如,电源掉电事件所引起的中断就是不可禁止和屏蔽中断。,31,9.3.2 中断的分类与优先级 根据系统对中断处理的需要,操作系统一般对中断进行分类并对不同的中断赋予不同的处理优先级,以便在不同的中断同时发生时,按轻重缓急进行处理。根据中断源产生的条件,可把中断分为外中断和内中断。外中断时指来自处理机和内存外部的中断,包括I/O设备发出的I/O中断、外部信号中断(例如用户键入ESC键)、各种定时器引起的时钟中断以及调试程序中设置的断点等引起的调试中断等。外中断在狭义上一般被称为中断。,32,内中断主要指在处理机和内存内部产生的中断。内中断一般称为陷阱(trap)。它包括程序运算引起的各种错误,如地址非法、校验错、页面失效、存取访问控制错、算术操作溢出、数据格式非法、除数为零、非法指令、用户程序执行特权指令、分时系统中的时间片中断以及从用户态到核心态的切换等都是陷阱的例子。为了按中断源的轻重缓急处理响应中断,操作系统对不同的中断赋予不同的优先级。为了禁止中断或屏蔽中断,CPU的处理机状态字PSW中也设置有相应的优先级。如果中断源的优先级高于PSW的优先级,则CPU响应该中断源的中断请求,反之,CPU屏蔽该中断源的中断请求。,33,9.3.3 软中断 上述中断和陷阱都可以看作是硬中断,因为这些中断和陷阱要通过硬件产生相应的中断请求。而软中断则不然,它是通信进程之间用来模拟硬中断的一种信号通信方式。软中断与硬中断相同的地方是:其中断源发中断请求或软中断信号后,CPU或接收进程在适当的时机自动进行中断处理或完成软中断信号所对应的功能。这里用“适当的时机”几个字是表示接收软中断信号的进程不一定正好在接收时占有处理机,而相应的处理必须等到该接收进程得到处理机之后才能进行。如果该接收进程是占据处理机的,那么,与中断处理相同,该接收进程在接收到软中断信号后将立即转去执行该软中断信号所对应的功能。,34,软中断的概念主要来源于UNIX系统。在前面介绍进程通信的有关章节中,已对UNIX的软中断通信进行了介绍,这里不再重复。需要说明的一点是,在有些系统中,大部分的陷阱是转化为软中断处理的。由于陷阱主要与当前执行进程有关,因此,如果当前执行指令产生陷阱的话,则向当前执行进程自身发出一个软中断信号从而立即进入陷阱处理程序。,35,中断,在现代计算机系统中,对I/O设备的控制,广泛采用中断驱动(Interrupt-driven)方式,即当某进程要启动某个I/O设备工作时,便由CPU向相应的设备控制器发出一条I/O命令,然后立即返回继续执行原来的任务。设备控制器便按照该命令的要求去控制I/O设备,此时,CPU与I/O设备并行操作。,36,向量中断,更为先进的系统采用向量中断。要求中断的设备既发出中断请求信号也给出一个中断号。中断号作为中断服务程序(入口地址)表的偏移量。中断服务程序(入口地址)表称为中断向量。采用这种机制,要求中断的设备可以让 CPU 马上执行特定的中断处理程序。,37,38,Windows XP下中断向量表的地址及大小,39,40,9.4 缓 冲 技 术9.4.1 缓冲的引入 虽然中断、DMA和通道控制技术使得系统中设备和设备、设备和CPU等得以并行工作,但是外围设备和CPU的处理速度不匹配的问题是客观存在的。这限制了和处理机连接的外设台数,且在中断方式时造成数据丢失。从而,外围设备和CPU处理速度不匹配的问题极大地制约了计算机系统性能的进一步提高和限制了系统的应用范围。例如,当计算进程阵发性地把大批量数据输出到打印机上打印时,由于CPU输出数据的速度大大高于打印机的打印速度,因此,CPU只好停下来等待。反之,在计算进程进行计算时,打印机又因无数据输出而空闲无事。,41,外围设备与处理机速度不匹配的问题可以采用设置缓冲区(器)的方法解决。再者,从减少中断的次数看,也存在着引入缓冲区的必要性。在中断方式时,如果在I/O控制器中增加一个100个字符缓冲器,则由前面各字对中断方式的描述可知,I/O控制器对处理机的中断次数将降低100倍,即等到能存放100个字符的字符缓冲区装满之后才向处理机发一次中断。这将大大减少处理机的中断处理时间。即使是使用DMA方式或通道方式控制数据传送时,如果不划分专用的内存区或专用缓冲器来存放数据的话,也会因为要求数据的进程所拥有的内存区不够或存放数据的内存始址计算困难等原因而造成某个进程长期占有通道或DMA控制器及设备,从而产生所谓瓶颈问题。,42,因此,为了匹配外设与CPU之间的处理速度,为了减少中断次数和CPU的中断处理时间,同时也是为了解决DMA或通道方式时的瓶颈问题,在设备管理中引入了用来暂存数据的缓冲技术。根据I/O控制方式,缓冲的实现方法有两种,一种是采用专用硬件缓冲器,例如I/O控制器中的数据缓冲寄存器。另一种方法是在内存划出一个具有n个单元的专用缓冲区,以便存放输入输出的数据。内存缓冲区又称软件缓冲。,43,9.4.2 缓冲的种类 根据系统设置的缓冲器的个数,可把缓冲技术分为单缓冲、双缓冲和多缓冲以及缓冲池几种。单缓冲是在设备和处理机之间设置一个缓冲器。设备和处理机交换数据时,先把被交换数据写入缓冲器,然后,需要数据的设备或处理机从缓冲器取走数据。由于缓冲器属于临界资源,即不允许多个进程同时对一个缓冲器操作,因此,设备和设备之间不能通过单缓冲达到并行操作。解决两台外设、打印机和终端之间的并行操作问题的办法是设置双缓冲。有了两个缓冲器之后,CPU可把输出到打印机的数据放入其中一个缓冲器(区),让打印机慢慢打印;然后,它又可以从另一个为终端设置的缓冲器(区)中读取所需要的输入数据。,44,显然,双缓冲只是一种说明设备和设备、CPU和设备并行操作的简单模型,并不能用于实际系统中的并行操作。这是因为计算机系统中的外围设备较多,另外,双缓冲也很难匹配设备和处理机的处理速度。因此,现代计算机系统中一般使用多缓冲或缓冲池结构。多缓冲是把多个缓冲区连接起来组成两部分,一部分专门用于输入,另一部分专门用于输出的缓冲结构。缓冲池则是把多个缓冲区连接起来统一管理,既可用于输入又可用于输出的缓冲结构。显然,无论是多缓冲,还是缓冲池,由于缓冲器是临界资源,在使用缓冲区时都有一个申请、释放和互斥的问题。,45,9.5 设 备 分 配 事实上,由于设备、控制器和通道资源的有限性,不是每一个进程随时随地都能得到这些资源。进程必须首先向设备管理程序提出资源申请,然后,由设备分配程序根据相应的分配算法为进程分配资源。如果申请进程得不到它所申请的资源时,将被放入资源等待队列中等待,直到所需要的资源被释放。,46,9.5.1 设备分配用数据结构设备的分配和管理通过下列数据结构进行。1.设备控制表DCT(Device Control Table)设备控制表DCT反映设备的特性、设备和I/O控制器的连接情况。包括设备标识、使用状态和等待使用该设备的进程队列等。系统中每个设备都必须有一张DCT,且在系统生成时或在该设备和系统连接时创建,但表中的内容则根据系统执行情况而被动态地修改。DCT包括以下内容:(1)设备标识符,设备标识符用来区别设备。(2)设备类型,反映设备的特性,例如是终端设备、块设备或字符设备等。,47,(3)设备地址或设备号,由计算机原理课可知,每个设备都有相应的地址或设备号。这个地址既可以是和内存统一编址的,也可以是单独编址的。(4)设备状态,指设备是处理工作还是空闲中。(5)等待队列指针,等待使用该设备的进程组成等待队列,其队首和队尾指针存放在DCT中。(6)I/O控制器指针,该指针指向该设备相连接的I/O控制器。,48,2.系统设备表SDT(System Device Table)系统设备表SDT整个系统一张,它记录已被连接到系统中的所有物理设备的情况,并为每个物理设备设一表项。SDT的每个表项包括的内容有:(1)DCT指针,该指针指向有关设备的设备控制表。(2)正在使用设备的进程标识。(3)设备类型和设备标识符,该项的意义与DCT中的相同。SDT的主要意义在于反映系统中设备资源的状态,即系统中有多少设备,有多少是空闲的,而又有多少已分配给了哪些进程。,49,3.控制器表COCT(COntroler Control Table)COCT也是每个控制器一张,它反映I/O控制器的使用状态以及和通道的连接情况等(在DMA方式时,该项是没有的)。4.通道控制表CHCT(CHannel Control Table)该表只在通道控制方式的系统中存在,也是每个通道一张。CHCT包括通道标识符、通道忙/闲标识、等待获得该通道的进程等待队列的队首指针与队尾指针等。SDT,DCT,COCT及CHCT如图9.12所示。显然,一个进程只有获得了通道、控制器和所需设备三者之后,才具备了进行I/O操作的物理条件。,50,图9.12 数据结构表,SDT,COCT,设备,设备,通道,51,9.5.2 设备分配的原则1.设备分配原则 设备分配的原则是根据设备特性、用户要求和系统配置情况决定的。设备分配的总原则是既要充分发挥设备的使用效率,尽可能的让设备忙,但又要避免由于不合理的分配方法造成进程死锁;另外还要做到把用户程序和具体物理设备隔离开来,即用户程序面对的是逻辑设备,而分配程序将在系统把逻辑设备转换成物理设备之后,再根据要求的物理设备号进行分配。,52,图9.13 设备分配流程图,53,设备分配方式有两种,即静态分配和动态分配。静态分配方式是在用户作业开始执行之前,由系统一次分配该作业所要求的全部设备、控制器和通道。一旦分配之后,这些设备、控制器和通道就一直为该作业所占用,直到该作业被撤消。静态分配方式不会出现死锁,但设备的使用效率低。因此,静态分配方式并不符合设备分配的总原则。动态分配在进程执行过程中根据执行需要进行。当进程需要设备时,通过系统调用命令向系统提出设备请求,由系统按照事先规定的策略给进程分配所需要的设备、I/O控制器和通道,一旦用完之后,便立即释放。动态分配方式有利于提高设备的利用率,但如果分配算法使用不当,则有可能造成进程死锁。,54,2.设备分配策略 与进程调度相似,动态设备分配也是基于一定的分配策略的。常用的分配策略有先请求先分配、优先级高者先分配策略等。(1)先请求先分配 当有多个进程对某一设备提出I/O请求时,或者是在同一设备上进行多次I/O操作时,系统按提出I/O请求的先后顺序,将进程发出的I/O请求命令排成队列,其队首指向被请求设备的DCT。当该设备空闲时,系统从该设备的请求队列的队首取下一个I/O请求消息,将设备分配给发出这个请求消息的进程。,55,(2)优先级高者先分配 优先级高者指发出I/O请求命令的进程。这种策略和进程调度的优先数法是一致的,即进程的优先级高,它的I/O请求也优先予以满足。对于相同优先级的进程来说,则按先请求先分配策略分配。因此,优先级高者先分配策略把请求某设备的I/O请求命令按进程的优先级组成队列,从而保证在该设备空闲时,系统能从I/O请求队列队首取下一个具有最高优先级进程发来的I/O请求命令,并将设备分配给发出该命令的进程。,56,9.5.3 设备分配算法 根据设备分配策略和原则,使用系统提供的SDT、DCT、COCT及CHCT等数据结构,当某个进程提出I/O设备请求之后,就可按上图9.13所示流程进行设备分配。,57,9.7 设备驱动程序 设备驱动程序是驱动物理设备和DMA控制器或I/O控制器等直接进行I/O操作的子程序的集合。负责设置相应设备有关寄存器的值,启动设备进行I/O操作,指定操作的类型和数据流向等。为了对驱动程序进行管理,系统中设置有设备开关表DST。设备开关表中给出相应设备的各种操作子程序的入口地址,例如打开、关闭、读、写和启动设备子程序的入口地址。,58,设备驱动程序,由于 I/O 设备有很大的差异,所以对操作系统的设计造成某些问题。操作系统怎样才能以一种标准的、统一的方式对待 I/O 设备呢?操作系统怎样设计才能做到向计算机添加新设备(例如,添加新磁盘)而不需要重写操作系统代码呢?操作系统怎样才能对应用程序给出方便、统一的接口呢?,59,设备驱动程序,操作系统能够以统一的方式对待不同的I/O 设备,因为具体的差别被称为设备驱动程序 的内核模块所封装。,60,设备驱动程序,这些设备驱动程序一方面可以定制以适合各种设备,另一方面也对内核 I/O 子系统提供了一组标准接口。设备驱动程序层的作用是为内核 I/O 子系统隐藏设备控制器之间的差异。一个特定的设备可能带有多种设备驱动程序;例如,MS-DOS、Win98、Win2000、Windows XP 和 Solaris 驱动程序。,61,设备驱动程序,所有与设备相关的代码放在设备驱动程序中。它是I/O进程与设备控制器之间的通信程序,因为它常以进程的形式存在,故也可以称为设备驱动进程。由于驱动程序与设备硬件密切相关,故应为每一类设备配置一种驱动程序,或为一类密切相关的设备配置一个驱动程序。,62,9.8磁盘调度,一、磁盘结构现代磁盘驱动器可以看作一个一维的逻辑块的数组。通常每块为 512 字节。逻辑块被映射到磁盘上的扇区。转换机制要求将块号转换成柱面号、磁头号、扇区号。,63,磁盘结构,面号,道号,扇区号,64,65,磁盘结构,转换比较复杂是因为:每道的扇区数并不是一个常量,最外部磁道的扇区数比最内磁道的扇区数多 40%。存在坏扇区,必须用磁盘上的其他空闲扇区来替代这些坏扇区。磁盘技术的改善每盘有几千个柱面。每道超过 100 个扇区(在磁盘外部磁道区),66,二、磁盘调度,操作系统必须以较快的速度访问磁盘。访问磁盘数据存在两种延迟:寻道时间 磁臂将磁头移动到包含目标扇区的柱面所花的时间。旋转延迟(rotational latency)-磁盘需要将目标扇区转动到磁头下的时间延迟。磁盘带宽是 所传输的总字节数除以服务请求开始到最后传递结束时的总时间。,67,磁盘调度,可以通过使用好的访问顺序来调度磁盘 I/O 请求,提高访问速度和带宽。在多用户系统中,有多个进程的访盘请求请求被加到请求队列。操作系统必须从队列中选择一个请求来服务。,68,磁盘调度,近30年来,处理器和主存速度的增加远远把磁盘抛在了后面。因为磁盘的相对低速,使得磁盘子系统的性能变得至关重要,许多人也在积极探索提高磁盘子系统性能的方法,改进调度策略,降低查找时间。,69,调度策略,磁盘调度策略有很多,常见的有随机调度、先进先出、进程优先级、后进先出等。1.先来先服务策略(FCFS)顾名思义,它是将各进程对磁盘请求的等待队列按提出请求的时间进行排序,并按此次序给予服务的一种策略。这个策略对各进程是公平的,它不管进程优先级多高,只要是新来到的访问请求,都被排在队尾。,70,FCFS 调度,先来的先被服务请求序列 柱面号 98,183,37,122,14,124,65,67,磁头开始在 53 柱面,time,cylinder,14,37,53,65,98,122,124,183,67,71,FCFS调度,在前面的例子中,采用 FCFS 调度算法,磁头移动总数为 640 柱面。采用不同的调度算法时,磁头移动总数可能大幅度地减少。当磁头在柱面 122 时(后面的柱面请求序列为 14,124,),如果先服务 124 柱面一定会更好。,72,SSTF调度,最短寻道时间优先(SSTF)调度从当前磁头位置选择最短寻道时间的请求。请求序列 98,183,37,122,14,124,65,67,磁头开始位于 53 柱面。,time,14,37,53,65,98,122,124,183,67,73,SSTF调度,结果磁头移动总数仅仅为 236 柱面。类似于短作业优先(SJF)的 CPU 调度算法,可能导致某些请求饿死。如果相近一些的请求不断到达,且待处理请求队列比较长,那么位于远处的请求就会长时间得不到服务。SSTF 算法与 FCFS 算法相比有了很大的改善,但并不是最佳。如果按顺序 53,37,14,65,67,98,122,124,183 来访问,结果磁头移动总数仅仅为 208 柱面。,74,SCAN调度,“电梯调度算法磁头向某一个方向移动,服务该方向上的所有请求,然后、磁头改变方向,继续处理请求。请求序列-98,183,37,122,14,124,65,67,当前磁头在 53 柱面,并刚刚处理完 60 柱面请求。,time,14,37,53,65,98,122,124,183,67,75,SCAN调度,不但需要知道磁头的当前位置,而且还需要知道磁头的移动方向,且以方向优先。如果一个请求刚好在磁头之前加入到队列,那么它将几乎马上得到处理。但是如果一个请求刚好在磁头之后加入到队列,那么它必须等待磁头到达磁盘的另一端,掉转方向,并返回。,76,C-SCAN调度,像 SCAN磁头只移动到一个方向上最远的请求为止,接着马上回头到另一端最远处的请求,回头期间不处理。在朝一个给定方向移动前会寻找是否有请求。如图当前磁头在 53 柱面,刚刚处理完 40 柱面的请求。,time,14,37,53,65,98,122,124,183,67,77,调度策略,磁盘调度策略很多,各有利弊。如何选择相应调度策略与磁盘的使用环境因素有关。磁盘调度的另一个趋势是使多个磁盘(磁盘阵列)一起工作,特别对高端系统很有用。廉价冗余磁盘陈列(Redundant Array of Inexpensive Disks,简称RAID)的特点是:RAID是一个物理磁盘集合,但被OS认为是一个逻辑盘。数据分布存放在不同磁盘上。具有较强的纠错能力。,78,磁盘高速缓存,Cache存储器是在主存和处理器之间插入的一个更快、更小但更昂贵的存储器,其作用是减少主存的平均存取时间。同样的原理也可应用到磁盘存储器。关于磁盘Cache,有几个设计问题值得说明。(1)Cache中的数据传送当一个I/O请求能由Cache提供服务时,Cache中的数据必须传送到请求进程中。有两种方法传送数据:一是通过共享存储器将数据所在的指针传送到请求进程;二是传送Cache中的数据到用户进程的存储空间中。,79,磁盘高速缓存,(2)Cache中数据的替换策略当一个新的扇区装入Cache中时,一个原先在Cache中的扇区数据必须替换出去。经常使用的算法是最近最少使用算法(Least Recently Used,LRU)。Cache中没有被使用时间最长的那个块将被替换。替换Cache中最少被访问的块的算法是最少使用算法(Least Frequently Used,LFU)。,80,磁盘高速缓存,有必要在考虑最近最久未使用这一原则的同时,注意到以下三点内容:访问频率。通常,联想存储器的访问频率远高于高速缓存的访问频率。可预见性。预见哪些内容在不久将来会再次被访问,哪些则可能很久都不再被访问。数据一致性。必须保持高速缓存、内存和磁盘间数据的一致性。基于以上的考虑,提出了一个新的技术基于频率的替换(Frequency-Based Replacement)。,81,磁盘高速缓存,(3)Cache的失效率一般而言,在同样的替换策略下,Cache越大,失效率越少。因此,必须设计好Cache的大小和替换策略,减少失效率。,82,本 章 小 结 设备管理的主要任务是控制设备和CPU之间进行I/O操作。设备管理成了操作系统中最复杂、最具有多样性的部分。设备管理模块在控制各类设备和CPU进行I/O操作的同时,还要尽可能地提高设备和设备之间、设备和CPU之间的并行操作度以及设备利用率,从而使得整个系统获得最佳效率。另外,设备管理模块还应该为用户提供一个透明的、易于扩展的接口,以使得用户不必了解具体设备的物理特性和便于设备的追加和更新。本章从设备的分类出发,对设备和CPU之间的数据传送的控制方式、中断和缓冲技术、设备分配原则和算法、I/O控制过程以及设备驱动程序进行讨论。,83,常用的设备和CPU之间数据传送控制方式有4种,它们是程序直接控制方式、中断控制方式、DMA方式和通道方式。程序直接控制方式和中断控制方式都只适用于简单的、外设很少的计算机系统,因为程序直接控制方式耗费大量的CPU时间,而且无法检测发现设备或其他硬件产生的错误,设备和CPU、设备和设备只能串行工作。中断控制方式虽然在某种程度上解决了上述问题,但由于中断次数多,因而CPU仍需要花较多的时间处理中断,而且能够并行操作的设备台数也受到中断处理时间的限制,中断次数增多导致数据丢失。,84,DMA方式和通道方式较好地解决了上述问题。这两种方式采用了外设和内存直接交换数据的方式。只有在一段数据传送结束时,这两种方式才发出中断信号要求CPU做善后处理,从而大大减少了CPU的工作负担。DMA方式与通道控制方式的区别是,DMA方式要求CPU执行设备驱动程序启动设备,给出存放数据的内存始址以及操作方式和传送字节长度等;而通道控制方式则是在CPU发出I/O启动命令之后,由通道指令来完成这些工作。中断及其处理是设备管理中的一个重要部分。本章在介绍中断基本概念的同时,对陷阱和软中断也做了相应的介绍和比较。另外,还介绍和描述了中断处理的基本过程。,85,缓冲是为了匹配设备和CPU的处理速度,以及为了进一步减少中断次数和解决DMA方式或通道方式时的瓶颈问题引入的。缓冲有硬缓冲和软缓冲之分。本章还介绍了对缓冲池的管理和操作。由于缓冲区是临界资源,所以对缓冲区或缓冲队列的操作必须互斥。然后,介绍了设备分配原则和算法。设备分配应保证设备有高的利用率和避免产生死锁。进程只有在得到了设备、I/O控制器和通道(通道控制方式时)之后,才能进行I/O操作。另外,用户进程给出的I/O请求中包含逻辑设备号,设备管理程序必须将其变换成为实际的物理设备。I/O请求命令中的其他参数将被用来编制通道指令程序或由设备开关表选择设备驱动程序。,

    注意事项

    本文(操作系统设备管理.pptx)为本站会员(李司机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开