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