操作系统设备管理_第1页
操作系统设备管理_第2页
操作系统设备管理_第3页
操作系统设备管理_第4页
操作系统设备管理_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

1、第五章 操作系统设备管理,訾小超,2,本章主要内容:,概述 设备管理的目标 设备的类型 设备和OS的通信方式 设备管理和分配 设备维护 设备分配 设备管理的向上接口 磁盘调度 Linux的设备管理,3,1、概述,1-1、为何要引入设备管理 设备千差万别,即使同类设备也会存在实现细节和接口方面的区别。如果让使用者(应用程序)直接操纵设备。 会加重应用程序设计者的负担。 应用程序依赖于具体的设备,应用程序的移植性比较差。 设备利用率低。根源: 无法实现设备共享 对一些低速设备,难以协调处理器和外设的速率不匹配问题,4,1-2、操作系统设备管理的要求和目标 为用户提供方便、统一的设备使用界面。 提高

2、外部设备利用率,尽量提高并行程度 实现程序与设备的无关性。 要解决快速的处理器与慢速的I/O设备之间的操作匹配的问题:缓冲区、预读、缓写等手段。 设备管理要实现这些缓冲区的建立、分配、释放与回收。,5,1-3、设备管理和使用的软件层次关系 底层通信(中断处理): 实现软件和硬件设备的通信。 设备驱动: 接受来自上层的抽象操作请求,并负责操作的具体实施。 主要组成: 与设备打交道的软件部分。 共享支持、缓冲区支持等。 对用户层的形式上统一的I/O接口: 每个I/O调用接口对应具体的设备抽象操作。 使用设备的用户级程序: 通过调用所提供的接口来实现对设备的使用或控制。,6,1-4、设备的类型 设备

3、种类比较多,每种的特征差别很大。 分类方式不一,可以从多个角度进行分类。 设备外在功能(使用者的角度): 输入设备 输出设备 存储设备 设备的数据传输方式上(设备研制者): 块设备 字符设备 流设备,7,设备的存在形式上(OS角度): 物理设备 逻辑设备 设备的使用形式(使用和OS管理角度): 共享设备 独占设备,8,2、设备和OS间的通信控制方式,2-1、通信的硬件原理: I/O设备组成: 机械部件(实施部件):具体实现设备的操作。 电子部件(接口部件):又叫设备控制器, 直接外接用于控制和数据通信的电缆线。 操作系统与控制器直接打交道,发送操作命令,或收发数据。 控制器接收OS发来的操作指

4、令,控制机械部件完成相应操作。,9,设备控制器的接口特征 简单的通信接口只要通过一根信号线的高低电平就能通信。 对复杂的设备,可能很多字节的内容需要访问(设置或查询),总的来讲分为两类: 控制类:一般称为控制寄存器。OS通过设置控制寄存器,向设备发出操作指令。或通过查询控制寄存器来获知设备的工作状态。 数据类:一般称为数据寄存器。OS通过设置数据寄存器传出控制参数,或进行数据I/O。数据寄存器可能包含多个。,10,为每位或每个控制寄存器提供一根或一组信号线(太多的信号线)直接相连是不现实的。 为兼容CPU的体系结构,出现地址的概念。把所有寄存器统一进行编址,一般而言这种编址是连续的(假定0-5

5、0字节)。访问时: 将设备的控制器与系统总线相连 先发地址信号,然后访问对应的寄存器。,11,设备的I/O地址 设备内部的I/O编址:局限于单个设备 整个系统I/O编址:需要把单个设备的I/O编址映射到系统全局编址。一般利用偏移映射即可 与内存统一编址:同一般的内存访问操作。 与内存分开编址:需要使用专门的I/O指令访问设备控制器的寄存器 在设备接入之后,需要分配合适的I/O地址。设备内部的I/O地址要映射到所分配的I/O地址上。,12,2-2、通信控制方式的类型 询问(轮询)方式: 询问方式又称程序直接控制方式。 OS发出操作指令(设置控制寄存器)后,设备控制器收到指令控制设备机械部件开始工

6、作,工作完成之后设置设备控制寄存器的相应状态位。 OS检查设备控制寄存器的状态位,才能确定硬件操作是否完成。 为了确定操作是否完成,需要不断进行询问。,13,中断方式: 中断控制器引入后,外围设备有了反映其状态的硬件基础。 在操作完成之后,设备控制器在设置设备控制寄存器的相应状态位的同时,还要中断控制器发送信号。 中断控制器向CPU发送中断信号 CPU收到中断信号后,调用相应的处理程序:检查设备控制寄存器的状态位,进行相应处理。 中断方式消除了程序查询方式的忙式测试,提高了CPU资源的利用率 。,14,中断控制器支持的中断数量有限,每个进行了编号。设备接入系统后,需要分配中断号。一般情况下,多

7、个设备不能共享同一中断号。 中断是重要的资源,设备在接入到系统中,需要分配合适的中断编号。没有合适的中断编号设备就不能正常工作。,15,DMA方式: 主存和I/O设备之间设计自动化的数据通路,在主存和I/O设备之间成块传送数据过程中,不需要CPU干预。 I/O设备能直接与主存交换数据而不占用CPU,CPU资源的利用率再次得到提高 。 DMA不仅设有中断机构,而且,还增加了DMA传输控制机构。若出现DMA与CPU同时经总线访问主存,CPU把总线占有权周期性让给DMA。 DMA方式线路简单,价格低廉,但功能较差(只能实现单块数据传输),不能满足复杂的IO要求。 系统中支持DMA的设备数量是有限的,

8、一般为四个。设备接入系统后,需要向DMA控制器申请。,16,I/O通道技术: 工作方式: I/O通道是一种硬件设施,带有专用处理器的,是有很强I/O处理功能的智能部件。 可以独立地完成系统处理器交付的I/O操作任务,通道具有自己专门的指令集,即通道指令。 通道执行来自处理器的通道程序,完成后向系统处理器发出中断,请求结束。 特征: I/O通道能够一次实现多个离散的数据块的传输。 I/O通道又叫输入/输出处理器。 通道属于高端系统配置,一般只在大型机系统中存在。,17,分类: 字节多路通道主要用于连接大量低、中速的I/O设备,每次传输一个字节: 以字节为单位交叉地工作,当为一台设备传送一个字节后

9、,立即转去为另一台设备传送一个字节。 选择通道主要用于支持高速设备(如磁盘),每次只对与一个设备进行数据传输。 数据传输是以块为单位,每次可以传输一批数据。 每当一个输入输出操作请求完成后,再选择与通道相连接的另一设备。 成组多路通道以分时方式同时执行几道通道程序,方别实现几个高速设备的数据传输。 数组多路通道的实质是:对通道程序采用多道程序设计技术的硬件实现。,18,2-3、中断处理 中断的基本类型: 一般PC机支持15个中断,具体类型主要有: 时钟中断: I/O中断:磁盘、键盘等 系统请求中断:用于实现系统调用等的特殊功能 报警中断: 程序错误中断:除零等 机器错误中断:硬件设备故障或异常

10、。,19,中断响应和实现的大致流程: 设备向中断控制器发送中断信号 中断控制器比较各个中断的优先级,如果有没有被屏蔽的中断。中断控制器向CPU发送中断信号。 CPU现场保存后,通过询问中断控制器,确定中断源(中断号)。 通过中断号,找到对应的中断处理程序。 中断处理结束后, 原运行在核心态:恢复现场,转向被中断的任务继续执行。 原运行在用户态:检查调度标志、信号设置标志。如果被设置,进行相应处理。否则恢复现场,继续执行。,20,2-4、时钟中断和处理 时钟的概念和用途 系统时钟:相当于一个钟表,是进行与时间相关的活动的依据,如在时间片调度方式下,如何判断时间片是否用完,如何判断闹钟到期等。 闹

11、钟:每个程序都可以设置闹钟,通过倒计时的方式实现。倒计时时间为0,系统会自动调用所设置的闹钟函数。,21,系统时钟的维护: 在计算机没有启动时。主板上包含了一个类似石英钟的物理时钟在记录时间的流逝和变化。 系统启动时,OS从物理时钟读取当前时间,保存在全局变量里。 时间度量单位为tick。 每过一个tick(一般是20毫秒),时钟芯片都会向CPU发送一个时钟中断。 中断处理程序: 时钟全局变量加1。 检查是否有与时间相关的任务。,22,中断处理的技巧(时钟中断为例): 紧急任务: 时钟变量加1 非紧急任务: 当前进程运行时间统计量增加。 检查当前时间片是否用完。 计算所有进程的动态优先级。 闹

12、钟是否到期,处理函数。 睡眠时间是否到了,需要唤醒相应进程。,23,技巧: 只把紧急任务放在时钟中断处理程序中。 把非紧急任务在中断处理程序外,延迟处理。 具体延迟处理时间在:核心态回到用户态时。 Linux采用就是这种方式,延迟的处理叫底半部处理。,24,3、设备管理和分配,3-1、缓冲区和缓冲区管理: 缓存区存在的背景: 提高CPU和外设的并行度 缓解外设速度慢的瓶颈 缓冲区分类: 硬件缓冲:有些设备中会包含专门的硬件寄存器等用于缓冲。 软件缓冲:直接在主存中。,25,软件缓冲的分类: 单缓冲:一个缓冲,外设和CPU互斥进行操作。 双缓冲:设置两个缓冲区,交替使用。 循环缓冲:类似于循环队

13、列,依次使用。 缓冲池:系统维护一组大小相同的缓冲区,进程和设备按需要申请,使用完后重新归入缓冲池中。,26,3-2 设备分配 功能和目标 为进程或作业分配所需的设备。 充分发挥设备的使用效率,尽可能避免死锁。 分配方式: 静态分配: 作业开始运行时,一次性分配给所有可能使用到的设备。 缺点:设备利用率低 优点:简单,不会出现死锁。 动态分配: 进程使用设备时再进行相应分配 设备利用高,可能会出现死锁。,27,3-3、设备分配的原则 设备请求管理 要使用设备时必须提供进行I/O操作的有关信息,指出执行I/O的逻辑设备名(如设备号)、操作类型、传送数据的数目、信息源或目的地址等。 存放进行I/O

14、操作的信息的结构称为I/O请求块。如在UNIX系统中,系统的I/O请求块的内容是包含在缓冲区控制块buf中。 在请求I/O时,首先请求分配缓冲区,然后把与操作有关的信息写到buf中,并把这个buf挂到请求设备的I/O请求队列中去。,28,b_actf b_actl,av_forw,av_forw,av_forw,iobuf,buf,buf,swbuf,图5-13 设备I/O请求队列,29,先请求先服务 系统按先后次序组成I/O请求队列,每个设备一个队列。 当新的I/O请求块生成后,把该块挂在相应设备的I/O请求队列的队尾。 设备空闲时,从该设备的I/O请求队列的队首取出一个请求块,并按这个请求

15、块的要求进行I/O操作。,30,进程优先级高的优先服务 系统按请求进程的优先级由高到低次序组成I/O请求队列,每个设备一个队列。 当新的I/O请求块生成后,根据请求优先级把该块挂在相应设备的I/O请求队列中的合适位置。 设备空闲时,从该设备的I/O请求队列的队首取出一个请求块,并按这个请求块的要求进行I/O操作。,31,3-4、设备分配技术 独占设备: 同时只能分配给一个请求进程。 共享设备: 同时可以一个设备分配给多个请求进程。 虚拟设备: 用一个物理设备来同时模拟多个独占设备,达到设备共享的目的,提高设备利用率。,32,3-5、SPOOLING技术 背景和目标: SPOOLing系统可以进

16、行作业的批处理。整个系统由三部分组成: 第一部分输入作业和数据到输入井(磁盘)中,称为假脱机输入 第二部分是从磁盘输入井中提取作业交CPU执行,称为作业管理部分 第三部分是从磁盘输出井(磁盘)中选择一个作业的输出将其送往打印机输出,称为假脱机输出。三部分的工作在一定条件可以互相重叠执行,33,3-6、设备独立性 背景: 同类设备有多台,如果作业申请设备时指定某一台具体的物理设备,当指定的某台设备有故障时该作业也就不能投入运行。 如果还有好的同类设备可以替代,这种设计显然不合理。 解决思路: 为了解决这一问题,通常用户不指定特定的设备,而指定逻辑设备,使得用户作业和物理设备独立开来,再通过其它途

17、径建立逻辑设备和物理设备之间的对应关系,我们称这种特性为“设备独立性”。 具有设备独立性的系统中,用户编写程序时使用的设备与实际使用的设备无关,亦即逻辑设备名。 设备管理的功能之一就是把逻辑设备名转换成物理设备名。,34,设备独立性的好处: 用户与物理的外围设备无关,系统增减或变更外围设备时程序不必修改;易于对付输入输出设备的故障,例如,某台行式打印机发生故障时,可用另一台替换,甚至可用磁带机或磁盘机等不同类型的设备代替。 提高了系统的可靠性,增加了外围设备分配的灵活性,能更有效地利用外围设备资源,实现多道程序设计技术。,35,4、设备管理的上层统一接口,4-1、背景 I/O设备数量很多,特性

18、差别很大,应用程序难以直接操作设备 操作系统的设备管理需要隐藏设备的操作细节。 需要解决两个问题: 如何用统一的方式来标示设备。 如何用同统一的方法来表示设备的不同操作,36,4-2、设备的命名 在Linux/unix下,设备是以文件名的形式来表示的。如/dev/tty0,这些文件叫设备文件。 设备文件的名字供应用程序使用,把设备文件和对应的设备(或设备驱动程序)联系起来的是设备文件的两个属性: 主设备号:通过主设备号就可以找到相应的设备驱动程序 。同种类型的设备如果驱动相同,主设备号可以相同。 次设备号:它作为传给驱动程序的参数指定具体的物理设备 。,37,4-3、设备操作的统一接口实现思路

19、 操作系统对上提供若干高级I/O系统调用:getc, putc, read , write ,seek, open, close等。这些调用接口同普通文件的调用接口。 这些I/O系统调用对应抽象的I/O操作,包含对I/O设备的控制:请求、相应、处理控制、缓冲等。 对这些抽象I/O操作请求,不同的设备具有不同的理解,对应不同的设备动作。 总之:通过抽象的I/O操作把应用程序与复杂的I/O设备控制隔离开来。 关键技术:如何把抽象I/O操作和具体的操作实现(设备控制)联系起来。,38,4-4、设备控制表 设备控制表DCT包含多个表项,每个设备对应一个表项。 每个表项对应一个设备,内容包括: 设备描述

20、符 设备地址 设备属性 设备状态,39,4-5、设备开关表 设备开关表实现抽象操作到设备具体操作的映射。 标准的文件操作接口-针对特定设备的具体实现函数,40,5、磁盘调度,5-1、磁盘的物理特性 硬件组成: 磁盘驱动器: 是机械部分,包括:驱动电机,读写磁头,及相应的控制电路。 磁盘控制器: 实现与计算机的逻辑接口 接受来自CPU(或通道)指令,命令磁盘驱动器完成具体操作 一个磁盘控制器可以控制多个磁盘驱动器进行操作。 单个磁盘的存储组织 以块为单位进行存储组织,块大小一般为512字节,一块被称为一个扇区。 块是多维编址的:驱动器号、磁面号、磁道号、扇区号,四个参数才能唯一确定一个扇区。,4

21、1,磁盘操作请求和响应 磁盘操作请求包含参数:操作类型(输入或输出)、(首)扇区地址、数据长度、数据内存地址。 如果磁盘驱动器空闲,请求可以立即得到服务。否则排队等候。 一个请求完成后,检查是否有排队等候的请求,若有,开始为请求进行服务。 磁盘操作的时间消耗 寻道时间:把读写头移动到相应磁道上的时间; 等待时间:等待指定扇区旋转到读写头下面的时间; 数据传送时间:磁盘和内存之间发生数据传输的时间。 磁盘调度的目标 提高有效的数据吞吐率。 减少请求的平均等待时间。,42,5-2、先来先服务调度算法 算法思想: 按请求的时间顺序,依次进行服务 优点: 实现简单 对每个请求看似“公平” 缺点: 寻道

22、时间长,磁头移动幅度大。 例如:当前位置53,服务请求队列98-183-37-122-14-124-65-67。总共需要移动640个磁道。,43,5-3、最短寻道时间优先调度 算法思想: 寻道时间一般与磁头当前位置(所在磁道)和目标磁道间的差值成正比。 优先响应寻道时间最短的请求。该请求对应的磁道与其它请求对应的磁道相比,离当前磁头最近。 优点: 寻道时间较短,服务效率较高,服务平均等待时间较短。 例如:当前位置53,服务请求队列98-183-37-122-14-124-65-67。服务顺序53-65-67-37-14-98-122-124-183:总共需要移动236个磁道。 缺点: 公平性差,可能会出现服务请求长期得不到服务,甚至饿死。 寻道时间并非最优。,44,5-4、扫描法(电梯调度法) 算法思想: 磁头从一端出发向另一端移动,移动过程中,发现有请求对应磁头下的磁道,就对该请求提供服务。到另一端后,开始反向移动,遇到请求进行服务。 算法特点: 每个请求的等待时间不均匀,且平均等待时间长。 如到达另一端反向时,将扫描的是刚刚扫描过的磁道,这里的请求显然少

温馨提示

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

评论

0/150

提交评论