1、第六章 设备管理Devices Management,设备管理不但要管理实际I/O操作的设备(如磁盘机、打印机),还要管理诸如设备控制器、DMA控制器、中断控制器、I/O处理机(通道)等支持设备。设备管理包括各种设备分配、缓冲区管理和实际物理I/O设备操作,通过管理达到提高设备利用率和方便用户。设备管理是操作系统中最繁杂而且与硬件紧密相关的部分。,外设特性差异的表现,速度(数据传输速度差别相当大)千兆网卡显示卡硬盘以太网卡光盘扫描仪激光打印机软盘调制解调器鼠标键盘,传输单位字节(键盘、打印机)/字符块(软硬盘)/位(串口)具体操作方式仅写/仅读/可读写出错原因:打印机的缺纸、磁盘的校验错误等,
2、高数据传输率,I/O设备的分类,按与主机间数据传输的单位分字符设备:以字符为单位进行输入、输出的设备。每输入或输出一个字符就要中断一次主机CPU请求进行处理,所以又称慢速字符设备。块设备:以字符块为单位进行输入、输出的设备。例如:硬盘,I/O设备的分类,按与主机之间的交互方式分询问方式(Query):实时系统中必需采用,在一般简单系统中也广泛采用,但系统开销较大,每次进行输入输出工作,都需要由主机CPU干预中断方式(Interrupt):有硬中断和软中断之分,中断按级别分类排队工作;可按字符、字、块的传递产生中断;实时控制常用实时时钟中断,起自动控制作用;中断工作主要由中断请求、中断响应和中断
3、服务处理组成。“中断”的产生使管理工作更能“自动化”DMA方式(Direct Memory Access) :有硬通道和软通道之分,硬通道,例如,典型的DMA工作方式;软通道是软件设计中使用的各种“标识”、“缓冲”等;I/O通道(I/O处理机):专用于处理I/O的处理机医生查房(“询问”),以便及时掌握病情。病床旁红灯是紧急请求 医生按钮(“中断请求”)。常规医疗处理医生委托护士(“硬通道”)去做。但护士只有执行权而无修改权。,I/O设备的分类(cont.),按设备的读/写物理特性分顺序存储设备:磁带机随机存储设备 :磁盘、光盘按是否可以共享分共享设备独占设备虚拟设备按数据接口的传输方式分并行
4、设备串行设备,设备接口标准,串行设备接口标准RS-232: 用于接串口mouse、外置modemUSB: 分1.1和2.0两个标准IEEE1394:多媒体设备接口,接DVSATA并行设备接口标准Parallel:接打印机、加密狗.IDE:硬盘、光驱,UDMA/66SCSI: 硬盘、光驱、扫描仪,USB,USB ,是 Universal Serial Bus 的缩写,如果按中文直接翻译就是“通用串行总线”接口,它是一种串行总线系统,带有5V电压,支持即插即用功能,支持热拔插功能,最多能同时连入127个USB设备,由各个设备均分带宽。它诞生于1994年,当时是由 PC 界的几位“巨人”康柏、IBM
5、、Intel和Microsoft共同推出的,旨在统一外设如打印机、外置Modem、扫描仪、鼠标等的接口,以便于安装使用,取代以往的串口、并口和PS/2接口,可是 USB 标准真正颁布已经是 1996年了,当时的标准是 USB1.0,直到1998年,USB才迎来了真正的春天首先是业界巨头们坐下来制定了USB1.1标准,使USB技术更加成熟可靠;接着Win98发布,宣布正式对USB接口提供支持,USB才真正发展起来(注:在Win98之前,Win97也能支持USB,不过没有广泛使用。),IEEE1394,IEEE1394,又称作“ Firewire ”即“火线”。早在1985年,苹果公司就已经开始着
6、手研究“火线”技术,并取得了很大成效;但是这个标准正式确立,却是10年之后了。它是IEEE(电气与电子工程师协会)于1995年正式制定的总线标准。由于IEEE1394的数据传输速率相当快,因此有时又叫它“高速串行总线”。信息家电和高端服务器等领域,IEEE1394就以其超快的速度成为该领域的唯一选择。,USB 与 IEEE1394,总线标准,主板扩充插槽的接口标准ISAPCIAGP 专用于显示系统PCI Express,I/O子系统的软件体系结构,设备管理子系统的任务为用户提供一个统一的、友好的使用界面负责管理系统中的各种设备根据不同设备完成的实际操作,跟踪记录设备的各种不同状态,并处理该设备
7、可能出现的各种错误优化设备的调度,提高设备的利用率,设备管理子系统的体系结构,进程,逻辑设备,物理设备驱动程序,实际硬件,设备驱动程序-初始化设备数据传递返回I/O控制系统,I/O控制系统-阻塞进程验证I/O请求调用驱动程序状态检验唤醒调用进程返回调用进程,I/O子系统的软件体系结构(cont.),设备的独立性(设备无关性)应用程序独立于具体使用的物理设备。一个程序应独立于它使用的设备程序要尽可能地与它使用的设备类型无关优点方便用户编程使用程序的运行不受具体的机器环境的限制如果配备打印机,输入信息送到打印机,否则可将输出重定向到某个指定文件便于程序移植,I/O子系统的软件体系结构(cont.)
8、,设备驱动程序的功能Windows 系统中只要提供设备的驱动程序,操作系统就会自动把这个设备注册到内核系统中Linux系统中,很多设备驱动程序已编译到内核中,其它设备的驱动程序可编译成系统模块的方式,使用“inmod”将模块动态插入系统内核设备驱动程序的具体工作设备驱动程序的特点是请求I/O的进程与设备控制器间的一个通信程序与I/O设备的特性紧密相关与I/O控制方式紧密相关可以用汇编或高级语言开放驱动程序WinDriverDDK资源:驱动开发网(),I/O的控制方式,程序直接控制方式中断方式DMA方式通道技术,I/O的控制方式-程序直接控制,由于CPU中无中断机构,I/O设备无法向CPU报告它
9、已完成了一个字符的输入操作,导致CPU不停地检查它要取的数据是否已达寄存器。在I/O操作时CPU忙等工作过程非常简单,但CPU利用率很低,I/O的控制方式-中断方式,设备控制器负责向CPU汇报数据是否已到达(以中断方式);以字(节)为单位进行I/O的;CPU以字(节)为单位进行干预。,I/O的控制方式-DMA方式,引入设备DMA控制器,在其控制下,以数据块为单位,将数据从设备直接送入内存或相反;实质上还是以字(节)为单位进行传输,不过这种传输可以连续进行而已,形成数据块。,DMA原理,CPU issues request to a DMA module (separate module or
10、incorporated into I/O module)CPU 向DMA模块发出操作请求DMA module transfers a block of data directly to or from memory (without going through CPU)DMA模块直接存取一块内存数据An interrupt is sent when the task is complete存取操作结束DMA模块发出中断The CPU is only involved at the beginning and end of the transferCPU仅在数据传输的起止时参与The CPU
11、is free to perform other tasks during data transfer数据传输过程中CPU可执行其它任务,总线周期挪用 Cycle stealing,利用CPU不访问存储器的那些周期来实现DMA操作,此时,DMAC可以使用总线而不用通知CPU也不会妨碍CPU的工作。这种方法的关键是如何识别合适的可挪用的周期,以避免同CPU的操作发生重叠。总线裁决器,I/O通道,虽然 DMA方式比中断驱动方式已显著地减少了CPU的干预,即由以字(节)为单位的干预减少到以数据块为单位的干预。但是CPU每发出一条I/O指令,也只能去读(或写)一个连续的数据块。而当我们需要一次去读多个
12、离散的数据块且将它们分别传送到不同的内存区域,或者相反时,则需由CPU分别发出多条I/O指令及进行多次中断处理,才能完成。 由于DMA每次只能执行一条I/O指令,不能满足复杂的I/O操作要求。在大、中型计算机系统中,普遍采用由专用的I/O处理机来接受CPU的委托,独立执行自己的通道程序来实现I/O设备与内存之间的信息交换,这就是通道技术。通道技术可以进一步减少 CPU的干预,即把对一个数据块为单位的读(或写)的干预,减少到对一组数据块为单位的读(或写)的有关的控制和管理的干预。这样可实现 CPU、通道和I/O设备三者之间的并行工作,从而更有效地提高了整个系统的资源利用率和运行速度。,I/O处理
13、机(I/O通道),I/O通道共分为4级:,I/O通道程序,通道是通过执行通道程序,并与设备控制器来共同实现对I/O设备的控制。通道程序是由一系列的通道指令(或称为通道命令)所构成。通道指令与一般的机器指令不同,在每条指令中包含的信息较多,有操作码、内存地址、计数(读或写数据的字节数)、通道程序结束位P和记录结束标志R。,通道类型,由于外围设备的种类较多,且其传输速率相差很大,所以通道也具有多种类型。根据信息交换方式,可以把通道分成以下三种类型:字节多路通道(Byte Multiplexor Channel)数组选择通道(Block Selector Channel)数组多路通道(Block M
14、ultiplexor Channel),字节多路通道Byte Multiplexor Channel,在这种通道中,通常都含有较多个(8,16,32)非分配型子通道,每一个子通道连接一台I/O设备。这些子通道按时间片轮转方式共享主通道。一个子通道完成一个字节的传送后,立即让出字节多路通道(主通道),给另一个子通道使用。它适用于连接低速或中速设备,如打印机、终端等。,数组选择通道Block Selector Channel,这种通道虽然可以连接多台I/O设备,但是它只有一个分配型子通道,在一段时间内只能执行一道通道程序、控制一台设备进行数据传送,其数据传送是按数组方式进行。即当某台设备一旦占用了
15、该通道,就被它独占,直至该设备传送完毕释放该通道为止。可见,它适于连接高速设备(如磁盘机、磁带机),但是这种通道的利用率较低。,数组多路通道Block Multiplexor Channel,数组选择通道虽然有很高的传输速率,但它每次只允许一个设备传输数据。数组多路通道是将数组选择通道的传输速率高和字节多路通道的分时并行操作的优点结合起来,形成的一种新的通道。它含有多个非分配型子通道,可以连接多台高、中速的外围设备,其数据传送却是按数组方式进行。所以这种通道既具有很高的数据传输速率,又能获得令人满意的通道利用率。,IBM S/390的通道结构,硬盘(温硬)基本基础知识,硬盘(温硬)基本基础知识
16、主轴 (5400/7200/10000转每分)盘片移动臂/磁头臂磁头电子电路,磁盘的容量总容量=磁头数*柱面数*每磁道的扇区数*每扇区的字节数,硬盘府视图,硬盘的磁头臂,硬盘磁头读写时的运行,磁盘的访问时间,寻道时间(Seek Time)不是一个固定值一般在几毫秒几十毫秒间旋转延迟时间(Rotational Delay Time)与旋转速度有关数据传输时间(Transfer Time)内部数据传输率: 10100MB/s外部数据传输率取存时间(Access Time)寻道时间+旋转时间,多进程访问磁盘的调度算法,合理调度, 提高整个磁盘系统的运行效率 (1)整个磁盘系统的吞吐量(2)平均响应时
17、间(3)公平性(不希望出现饿死现象),多进程访问磁盘的调度算法,先来先服务算法(FCFS)只考虑申请者申请的先后次序完成磁盘访问操作可能造成磁头臂来回反复移动,增长了等待时间,而且对机械结构不利,1,2,3,4,多进程访问磁盘的调度算法,最短寻道时间优先算法(Shortest Seek-Time First)以申请者要求磁头移动距离的大小作为优先的因素靠近当前磁头位置的申请者迅速得到满足,防止了磁头的大幅度来回摆动可能使一些申请者在较长时间内得不得服务的机会,1,2,3,4,多进程访问磁盘的调度算法,扫描算法(SCAN)按一个固定的方向寻找最近需要访问的磁道,直到这个方向上不能再进行后转向,如
18、此往复进行磁头遍历所有磁道的时间为T,最长等待2T电梯算法:改进的扫描算法,在前进方向上没有需要访问的磁道时就转向建立两个独立的等待队列,向上扫视队列和向下扫视队列磁头臂向上运行时,调度向上队列,反之调度向下队列申请者的目的柱面号大于当前柱面号时,挂入向中队列,其它情况挂入向下队列向上队列的调度原则是柱面号小者优先,向下队列调度原则是柱面号大者优先当调度队列为空时,磁头改变移动方向,多进程访问磁盘的调度算法,扫描算法(SCAN)单向扫描算法(C-SCAN)算法前进到未端或无请求时磁头臂回到起始位置N步扫描算法(N-Stop-Scan)将所有进程的请求按请求时间分很多个段(每个队列中有N个请求)
19、一段时间内的请求位于一个特定的请求队列中循环地服务每个队列是FCFS和SCAN的折中,实例,假设磁盘有200个柱面(0-199),磁盘调度起始位置为100,访问串为:18,19,8,147,85,177,79,149,112,179,10,多进程访问磁盘的调度算法,旋转优化如何处理相同磁道不同扇区的请求若某磁道上先后有访问请求3、1、2,需要旋转两圈若对将访问顺序改为1、2、3,磁头臂,1,2,3,某磁道,旋转型存储设备上信息的优化分布能减少若干输入输出服务的总时间。例有10个扇区,每扇区存一个记录,现在要处理该磁道上顺序存储的A至J的10个记录,如果磁盘旋转每周20ms,每个记录处理时间4ms。问:处理完10个记录总时间多少?如何安排可优化存储,优化后处理时间多少?扇区 1 2 3 4 5 6 7 8 9 10记录 A B C D E F G H I J,