1 / 165

设备管理与 I/O 系统

设备管理与 I/O 系统. Instructor: Hengming Zou, Ph.D. In Pursuit of Absolute Simplicity 求于至简,归于永恒. 内容提要. 1. 设备管理概述 2. I/O 硬件特性 3. 设备管理的实现技术 4. I/O 软件的结构 5. Windows I/O 系统的结构 6. Windows I/O 系统的核心数据结构 7. Windows 的 I/O 处理. 设备管理概述. I/O 系统是操作系统的一个重要的组成部分,负责管理系统中所有的外部设备

ivie
Download Presentation

设备管理与 I/O 系统

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 设备管理与I/O系统 Instructor: Hengming Zou, Ph.D. In Pursuit of Absolute Simplicity求于至简,归于永恒

  2. 内容提要 • 1. 设备管理概述 • 2. I/O硬件特性 • 3. 设备管理的实现技术 • 4. I/O软件的结构 • 5. Windows I/O系统的结构 • 6. Windows I/O系统的核心数据结构 • 7. Windows的I/O处理

  3. 设备管理概述 • I/O系统是操作系统的一个重要的组成部分,负责管理系统中所有的外部设备 • 在计算机系统中除CPU和内存储外所有的设备和装置统称为计算机外部设备(外围设备、I/O设备) • 设备管理的意义 • 设备的分类 • 设备管理的任务和功能

  4. 设备管理的意义 • 操作系统复杂和庞大的主要原因是它所管理的资源的庞杂和并发技术的采用,而输入输出设备的庞杂正是操作系统所管理的资源庞杂的主要原因,输入输出设备的速度远低于处理器的速度正是导致并发技术产生的直接原因 • 所以,I/O系统的性能是操作系统总体性能的重要决定因素、重要表现指标和常见瓶颈之一,因此设备管理在操作系统中具有十分重要的地位

  5. 设备管理的意义 • 设备管理的意义表现在以下几方面: • 输入输出设备的性能经常成为系统性能的瓶颈,CPU性能越高,输入输出设备性能同CPU性能不匹配的反差也越大。如何解决这一矛盾,而又尽量不降低处理机的性能,是设备管理的一项重要任务 • 输入输出设备千变万化,怎样对它们实现统一的管理,从而方便用户使用是设备管理的又一项重要任务 • 在应用中,输入输出设备能否及时将各种信息传送给计算机系统,计算机发出的各种命令能否通过输入输出设备及时传送给执行部件,对于实时处理和控制系统而言,是至关重要的 • 用户对输入输出设备的使用必须是安全的。如何保证安全正确地使用设备,也是设备管理的重要任务

  6. 设备的分类 • 按设备的使用特性分类:输入输出设备(狭义)和外存设备 • 按信息组织方式分类:字符设备(character device)和块设备(block device) • 键盘、终端、打印机等以字符为单位组织和处理信息的设备被称为字符设备;磁盘、磁带等以字符块为单位组织和处理信息的设备被称为块设备

  7. 设备的分类 • 按设备使用可共享性分类:独占设备、共享设备和虚拟设备 • 独占设备是指在任一给定的时刻只能让一个进程使用,即必须保证一个进程对一个具体设备在可能相当长的时间内拥有唯一存取权 • 共享设备是指能够同时让许多进程使用的设备。磁盘是典型的共享设备,多个进程同时在同一磁盘上拥有打开的文件不会带来任何不良后果 • 虚拟设备是指设备本身是独占设备,而经过某种技术处理,可以把它改造成共享设备,同时分配给多个进程

  8. 设备的分类 • 按输入输出对象分类:人机通讯与机机通讯设备 • 按是否交互分类:非交互设备与交互设备 • 机机通讯设备、外存、卡带机等属于非交互设备,终端为交互设备 • 按数据传输率分类:高速设备和低速设备

  9. 设备管理的任务和功能 • 用户对I/O设备的使用要求是方便、高效、安全、正确,相应地,设备管理功能也就应该在计算机硬件结构提供的既定设备范围及其连接模式下,完成为用户对I/O设备的使用过程提供方便、提高效率、提供保护这三方面的任务

  10. 设备管理的任务和功能 • 1.方便性方面 • 用户总是希望方便地使用I/O设备,但是I/O设备种类繁多,处理过程非常复杂,涉及到大量I/O细节,如寄存器、中断、控制字符、设备字符集等。如果让用户直接使用设备硬件接口,是十分不便的 • 为了弥补硬件接口给用户带来的不便,操作系统的设备管理部分提供了两个主要的功能: • 抽象接口 • 设备独立性

  11. 设备管理的任务和功能 • 1.方便性方面——抽象接口 • 提供简便易用的高级逻辑接口,这些接口由对逻辑设备的逻辑操作组成 • 实现抽象接口到物理接口的转化,即将高级逻辑操作转化为低级物理操作,将逻辑设备和逻辑性质转化为物理设备和物理性质,以便掩盖设备的硬件物理操作和组织的细节

  12. 设备管理的任务和功能 • 1.方便性方面——设备独立性 • 设备独立性是指用户在编写程序时所使用的设备与实际设备无关 • 两类设备独立性: • 1.一个程序应独立于分配给它的某类设备的具体设备。即在用户程序中只指明I/O使用的设备类型即可。如在系统中配备了两台打印机,用户要打印时只要告诉系统要将信息送到打印机即可 • 2.程序要尽可能地与它使用的设备类型无关。即在用户程序中只要指出要输入或输出信息,至如信息I/O使用的设备不需用户指明

  13. 设备管理的任务和功能 • 1.方便性方面——设备独立性 • 设备独立性的优点 • 1.方便用户编程 • 2.使用程序运行不受具体的机器环境的限制 • 3.便于程序移植 • 设备独立性的实现 • 把设备与文件统一处理,对于用户来说,并没有设备的概念

  14. 设备管理的任务和功能 • 2.效率方面 • 用户永远关心效率:非系统用户关心程序运行效率与操作效率;系统用户关心系统利用率、系统代价、系统工作效率 • 为了提高设备与CPU的效率,引入了大量的技术如中断、缓冲、DMA、通道等等,这些技术不仅需要相应的硬件,还需要相应的软件来配合,才能达到引入这些技术所预期的目标

  15. 设备管理的任务和功能 • 2.效率方面 • 操作系统的设备管理功能的第二大任务是采用各种纯软件或与硬件配合的软件技术来提高设备效率和与此相关的系统效率,提供物理I/O设备的共享并优化这些设备的使用,并借助抽象接口使得这些效率优化技术得以由系统在内部实施并对用户透明 • 操作系统设备管理功能要主要采用了以下技术: • 设备共享技术 • 虚拟设备技术 • 缓冲技术

  16. 设备管理的任务和功能 • 3.保护方面 • 用户希望能安全正确地使用设备,这种希望体现为由设备传送或管理的数据应该是安全的,不被破坏和泄密的;对设备拥有所有权的用户,这种希望体现为设备不能被破坏,系统在安全可靠方面的信誉应得到保证 • 操作系统的设备管理功能的另一任务是提供安全保护机制,用于保护设备,尤其是保护由设备传送或管理的数据

  17. I/O硬件特性 • I/O系统的结构 • I/O设备接口 • I/O设备的控制

  18. I/O系统的结构

  19. I/O设备接口 • 操作系统不是直接与设备打交道,而是与设备控制器打交道。每个设备控制器都有几个寄存器用来与CPU进行通信,包括控制寄存器、状态寄存器和数据寄存器。通过写入控制寄存器,操作系统可以控制设备发送数据、接收数据、开启或关闭;通过读取状态寄存器,操作系统可以获悉设备的状态,如是否准备好接受一个新的命令;数据寄存器通常作为操作系统可以读写的数据缓冲区

  20. I/O设备的控制 • 输入输出设备的I/O控制方式有程序直接控制方式、中断控制方式、DMA方式和通道控制方式 • 1.程序直接控制方式 • 程序直接控制方式是指由用户进程直接控制内存或CPU和外围设备之间进行信息传送的方式,也称为“忙-等”方式、轮询方式或循环测试方式,这种方式的控制者是用户进程

  21. I/O设备的控制 • 1.程序直接控制方式 • 当用户进程需要从外围设备输入数据时,它通过CPU发出启动设备准备数据的启动命令(通常是把一个启动位为1的控制字写入设备的控制寄存器中),然后,用户进程进入测试等待状态。在等待时间,CPU不断地用一条测试指令检查设备的状态寄存器是否为完成状态(通常是检测状态寄存器的完成位是否为1),而外围设备只有将输入数据送入数据缓冲寄存器之后,才将该寄存器置为完成状态。当CPU检测到设备的状态寄存器为完成状态,则从设备的数据缓冲寄存器读取数据到内存或CPU • 用户进程需要向输出设备输出数据时,也必须同样发出启动命令和等待设备准备好之后才能输出数据

  22. I/O设备的控制 • 1.程序直接控制方式 • 程序直接控制方式的优点是CPU 和外设的操作能通过状态信息得到同步,而且硬件结构比较简单;其缺点是CPU 效率较低,传输完全在CPU控制下完成,对外部出现的异常事件无实时响应能力 • 程序直接控制方式只适用于那些CPU执行速度较慢,而且外围设备较少的系统,如单片机系统

  23. I/O设备的控制 • 2.中断控制方式 • 中断是一种在发生了一个异常事件时,调用相应处理程序(通常称为中断服务程序)进行服务的过程 • 中断源一旦需要CPU为其服务时,就向CPU发出请求,CPU一般在当前指令执行完,且状态为允许中断的情况下响应该请求。并由硬件自动关中断(防止在保留断点和程序转移过程中又有新的中断请求发生)、保留断点、转到相应的中断服务程序入口处。然后执行中断服务程序,由软件完成中断服务。中断服务程序结束,执行返回指令返回断点,继续执行原程序

  24. 接口 CPU 外设 ③ IR 中断 请求 寄存 器 中断判 优电路 ② INTA 中断请求 触发器 完成 ⑤ 接口 控制 WE 中断 允许 寄存 器 中断屏蔽 触发器 ④ RD ① 启动 命令寄存器 数据寄 存器 数据 数据 数据缓存 地址寄 存器 地址 地址译码 I/O设备的控制 • 2.中断控制方式 • 如要采用中断方式进行数据传送,则相应CPU及接口就应具备中断机构

  25. I/O设备的控制 • 2.中断控制方式 • 中断控制方式的优点: • CPU与外设在大部分时间内并行工作,提高了计算机的效率 • 具有实时响应能力,可适用于实时控制场合 • 及时处理异常情况,提高计算机的可靠性 • 中断控制方式的局限: • 用中断方式交换数据时,每处理一次I/O数据交换,都会耗去一定的CPU处理时间,对于一些高速的外围设备,以及成组交换数据的情况,仍然显得速度太慢

  26. I/O设备的控制 • 3.DMA方式 • DMA是直接内存访问(Direct Memory Access)的缩写,它是一种完全由硬件执行I/O数据交换的工作方式。在这种方式中,DMA控制器(DMAC)从CPU完全接管对总线的控制,数据交换不经过CPU,而直接在内存和I/O设备之间进行 • 采用DMA方式工作时,由DMA控制器向内存发出地址和控制信号,进行地址修改,对传送字的个数计数,并且以中断方式向CPU报告传送操作的结束

  27. HOLD 总线请求 DMAC HLDA 总线响应 CPU 内存 DMA 请求 DMA 响应 外设 I/O设备的控制 • 3.DMA方式 • DMA方式的传送结构

  28. I/O设备的控制 • 3.DMA方式 • DMA方式的数据块传送过程可分为三个阶段:传送前预处理;数据传送;传送后处理 • 预处理阶段——由CPU执行I/O指令对DMAC进行初始化与启动 • 数据传送阶段——由DMAC控制总线进行数传。 • 后处理阶段——传送结束,DMAC向CPU发中断请求,报告DMA操作的结束

  29. I/O设备的控制 • 3.DMA方式 • DMA方式的优点: • 操作均由硬件电路实现,传输速度快 • CPU仅在初始化和结束时参与,对数据传送基本上不干预,可以减少大批量数据传输时CPU的开销; • CPU与外设并行工作,效率高 • DMA方式的局限性: • 在初始化和结束时仍由CPU控制

  30. I/O设备的控制 • 4.通道控制方式 • 通道(channel)是一个特殊功能的处理器,它有自己的指令和程序,可以实现对外围设备的统一管理和外围设备与内存之间的数据传送。引入通道的目的是为了进一步减少数据输入输出对整个系统运行效率的影响 • 与DMA方式相比,通道方式增加了CPU与通道操作的并行能力;增加了通道之间以及同一通道内各设备间的并行操作能力;为用户提供了灵活增加外设的可能性

  31. I/O设备的控制 • 4.通道控制方式 • 一个系统中可以设立三种类型的通道: • 选择通道 • 数组多路通道 • 字节多路通道

  32. CPU 内 存 总线 字节 数组 选择通道 多路通道 多路通道 I/O 控制器 终端 I/O I/O I/O I/O 控制器 控制器 控制器 控制器 磁盘 磁盘 磁带 磁带 I/O I/O 控制器 控制器 终端 终端 ... ... ... I/O I/O 控制器 控制器 终端 终端 I/O I/O I/O I/O 控制器 控制器 控制器 控制器 磁盘 磁盘 磁带 磁带 I/O设备的控制 • 4.通道控制方式

  33. 设备管理的实现技术 • 中断技术 • 缓冲技术 • 设备分配技术

  34. 中断技术 • 1.中断的基本概念 • 中断是指计算机在执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得CPU暂时中断当前正在执行的程序而转去执行相应的事件处理程序,待处理完毕后又返回原来被中断处继续执行或调度新的进程执行的过程 • 引起中断发生的事件被称为中断源。中断源向CPU发出的请求中断处理信号称为中断请求,而CPU收到中断请求后转到相应的事件处理程序称为中断响应

  35. 中断技术 • 1.中断的基本概念 • 在有些情况下,尽管产生了中断源和发出了中断请求,但CPU内部的处理机状态字PSW的中断允许位已被清除,从而不允许CPU响应中断。这种情况称为禁止中断,或称为关中断。PSW的中断允许位的设置也被称为开中断。开中断和关中断是为了保证某段程序执行的原子性 • 中断屏蔽是指在中断请求产生之后,系统有选择地封锁一部分中断而允许另一部分的中断仍能得到响应

  36. 中断技术 • 2.中断的分类与优先级 • 根据系统对中断处理的需要,操作系统一般对中断进行分类并对不同的中断赋予不同的处理优先级,以便在不同的中断同时发生时,按轻重缓急进行处理 • 根据中断源产生的条件,可把中断分为外中断和内中断

  37. 中断技术 • 2.中断的分类与优先级 • 中断和陷入的主要区别: • 陷入通常由处理机正在执行的现行指令引起,而中断则是由与现行指令无关的中断源引起的 • 陷入处理程序提供的服务为当前进程所用,而中断处理程序提供的服务则不是为了当前进程的 • CPU执行完一条指令之后,下一条指令开始之前响应中断,而在一条指令执行中也可以响应陷入。例如执行指令非法时,尽管被执行的非法指令不能执行结束,但CPU仍可对其进行处理

  38. 中断技术 • 2.中断的分类与优先级 • 为了按中断源的轻重缓急处理响应中断,计算机统为不同的中断赋予不同的优先级。为了禁止中断或屏蔽中断,CPU的处理机状态字PSW中也设有相应的优先级。如果中断源的优先级高于PSW的优先级,则CPU响应该中断源的请求,反之,CPU屏蔽该中断源的中断请求 • 各中断源的优先级在系统设计时给定,在系统运行时是固定的。而处理机的优先级则根据执行情况由系统程序动态设定

  39. 中断技术 • 3.Windows的中断处理 • 当处理器收到中断请求时,要通知相应设备的驱动程序进行处理。为此,设备驱动程序应该向I/O管理器注册一个ISR,可以通过调用IoConnectInterrupt来实现 • IoConnectInterrupt初始化一个中断对象,来存放关于中断及其ISR的信息。同时使处理器的中断服务表的相应表项指向该中断对象

  40. 外设控制器 中断控制器 中断服务表 中断对象 KiInterruptDispatch 驱动程序ISR 中断技术 • 3.Windows的中断处理

  41. 缓冲技术 • 计算机系统中各个部件速度的差异是明显的。在不同时刻,系统各部分的负荷也常常很不均衡 • 虽然中断和通道技术为系统各部分并行工作提供了可能,但是由于中央处理机和外部设备速度不匹配以及工作不均衡,它们的并行程度并不能得到充分发挥 • 缓冲技术是解决这一问题的一种常用的技术

  42. 进程在处理机上运行,行式打印机工作 进程睡眠等待,打印机空闲 缓冲技术 Tc1 Tc2 Tc3 进程 行式打印机 Tlpt1 Tlpt2 Tlpt3 (a) 无缓冲存储区 Tc1 Tmv1 Tc2 Tmv2 Tc3 Tmv3 Tc4 进程 行式打印机 Tlpt1 Tlpt2 Tlpt3 (b) 单缓冲 Tc1 Tmv1 Tc2 Tmv2 Tc3 Tmv3 Tc4 Tmv4 进程 buffer1 buffer2 行式打印机 Tlpt1 Tlpt2 Tlpt3 (c) 双缓冲

  43. 缓冲技术 • 缓存技术是以空间换取时间,而且它只能在设备使用不均衡时起到平滑作用。如果在相当长的一段时间内,进程提出的输入/输出要求超出了相应设备不间断工作所能完成的总量,那么一旦缓存已全部存放了I/O信息后,多缓存的作用也就基本消失

  44. 设备分配技术 • 在计算机系统中,设备、控制器和通道等资源是有限的,并不是每个进程随时都可以得到这些资源,它首先需要向设备管理程序提出申请,然后由设备管理程序按照一定的分配算法给进程分配必要的资源

  45. 系统设备表 SDF ( ) 1 表目 设备类型 … 设备标识 获得设备的进程号 i 表目 DCT 指针 … DCT COCT CHCT 设备控制表( ) 控制器控制表( ) 通道控制表( ) 设备类型 控制器标识 通道标识 / / 设备标识 控制器忙 闲标记 通道忙 闲标记 / CHCT COCT 设备忙 闲标记 指针 指针 COCT 指针 控制器等待队列首指针 通道等待队列首指针 设备等待队列首指针 控制器等待队列尾指针 通道等待队列尾指针 设备等待队列尾指针 设备分配算法的数据结构

  46. 设备分配的原则 • 要充分发挥设备的使用效率 • 避免不合理的分配方式造成死锁、系统工作紊乱等现象 • 使用户在逻辑层面上能够合理方便地使用设备

  47. 设备分配的原则 • 考虑设备的特性和安全性 • 设备的特性是设备本身固有的属性,一般分为独占、共享和虚拟设备 • 从安全性方面考虑,有安全分配方式和不安全分配方式两种

  48. 设备分配的原则 • 设备分配策略 • 通常采用先来先服务(FIFO)和高优先级优先 • 先来先服务,就是当多个进程同时对一个设备提出I/O请求时,系统按照进程提出请求的先后次序,把它们排成一个设备请求队列,并且总是把设备首先分配给排在队首的进程使用 • 高优先级优先,就是给每个进程提出的I/O请求分配一个优先级,在设备请求队列中把优先级高的排在前面,如果优先级相同则按照FIFO的顺序排列。这里的优先级与进程调度中的优先级往往是一致的,这样有助于高优先级的进程优先执行、优先完成

  49. 独占设备的分配 • 独占设备每次只能分配给一个进程使用,这种使用特性隐含着死锁的必要条件,所以在考虑独占设备的分配时,一定要结合有关防止和避免死锁的安全算法 • 用户使用独占设备的活动如下: • 申请,使用,使用,‥‥‥,使用,释放

  50. 独占设备的分配 • 对于申请命令,系统将设备分配给申请者,具体方法如下: • ① 根据申请的设备类型查询系统设备表,找到对应入口 • ② P(Sm) • ③ 查对应的设备表,找一空闲设备并分配

More Related