1、6.1 6.1 概概 述述6.1.1 6.1.1 外设的分类外设的分类 1.1.按设备的从属关系分类按设备的从属关系分类2.2.按分配方式分类按分配方式分类3.3.按使用特性分类按使用特性分类4.4.按信息组织、传送单位分类按信息组织、传送单位分类系系统统设设备备:它它是是指指操操作作系系统统生生成成时时,即即安安装装操操作作系系统统时时就就纳纳入入系系统统管管理理范范围围的的各各种种标标准准设备。设备。用用户户设设备备:它它是是指指系系统统设设备备之之外外的的非非标标准准设设备备,在在安安装装操操作作系系统统时时没没有有配配置置,而而由由用用户户自己安装配置的设备。自己安装配置的设备。独独享
2、享设设备备:这这类类设设备备一一旦旦分分配配给给某某个个实实体体(用用户户、作作业业、任任务务或或进进程程)使使用用,在在没没被被释释放放前前,其其他他实实体体不得使用。不得使用。共共享享设设备备:指指允允许许多多个个进进程程或或作作业业同同时时使使用的设备。用的设备。虚虚拟拟设设备备:通通过过一一定定的的辅辅助助存存储储器器和和控控制制程程序序,可可将将一一台台独独享享设设备备模模拟拟为为共共享享设设备备,这这个个具具有有了了新新特特性性的的设备就称为虚拟设备。设备就称为虚拟设备。存存储储设设备备:它它是是计计算算机机用用来来存存储储永永久久性性信信息的设备。息的设备。输输入入/输输出出设设
3、备备:包包括括输入设备和输出设备输入设备和输出设备字字符符设设备备:以以字字符符为为单单位位来来组组织织、处处理理信信息的设备。息的设备。块块设设备备:以以数数据据块块为为单单位位来来组组织织、处处理理信信息的设备。息的设备。具体应用具体应用即插即用即插即用PnPPnP设备设备非即插即用设备非即插即用设备LinuxLinux将将外外部部设设备备看看作作文文件件设设备备文文件件,它它以以设设备备名作为文件名。名作为文件名。应应用用物物理理设设备备前前用用mountmount命命令令挂挂装装到到目目录录树树上上(称称为为加载)。加载)。使使用用完完成成后后用用umountumount命命令令从从目
4、目录录树树卸卸下下(称称为为卸卸载载),才可取走该设备。,才可取走该设备。要要挂挂装装到到作作为为挂挂装装点点的的目目录录,系系统统通通常常已已准准备备了了一一些些常常用用挂挂装装点点,如如果果挂挂装装点点不不存存在在,必必需需要要用用mkdirmkdir命命令令建建立立,然后才可进行挂装。然后才可进行挂装。6.1.2 6.1.2 设备管理的功能设备管理的功能1.1.设设备备管管理理应应为为每每一一类类设设备备提提供供相相应应的的设备驱动程序设备驱动程序2.2.提供设备独立性提供设备独立性3.3.对缓冲区进行管理对缓冲区进行管理4.4.对对SpoolingSpooling技术的支持。技术的支持
5、。5.5.进行设备分配进行设备分配6.6.提供中断处理机制提供中断处理机制1.1.提供相应的设备驱动程序提供相应的设备驱动程序选择打印机型选择打印机型号号确定打印机的确定打印机的驱动程序。驱动程序。图图6.1 6.1 选定打印机型号选定打印机型号2.2.提供设备独立性提供设备独立性用用户户使使用用或或编编程程时时,打打印印机机表表现现为为一一个个普普通的逻辑名称。通的逻辑名称。系系统统为为了了识识别别其其管管理理的的所所有有设设备备,给给每每个个设设备备一一个个唯唯一一的的不不可可更更改改的的识识别别号号,称称为为设备的物理名。设备的物理名。通通过过逻逻辑辑设设备备名名和和物物理理设设备备名名
6、,提提供供设设备备独立性,这是设备管理的一项重要任务。独立性,这是设备管理的一项重要任务。图图6.2 6.2 逻辑打印机逻辑打印机3.3.对缓冲区进行管理对缓冲区进行管理为了解决速度不匹配问题,大部分外设都采用设置为了解决速度不匹配问题,大部分外设都采用设置缓冲区的方法。缓冲区的方法。缓冲区可设置在内存中,称为缓冲区可设置在内存中,称为“软件缓冲软件缓冲”;也可让外设自带专用的寄存器,作为硬件缓冲器。也可让外设自带专用的寄存器,作为硬件缓冲器。例如利用打印机打印一篇文章,例如利用打印机打印一篇文章,CPUCPU在打印机就绪在打印机就绪后,可把数据输出到缓冲区,打印机则从缓冲区取后,可把数据输出
7、到缓冲区,打印机则从缓冲区取出数据打印,就这样一边送一边打,提高出数据打印,就这样一边送一边打,提高CPUCPU的利的利用率。并且由于一次可以送一批数据到缓冲区,因用率。并且由于一次可以送一批数据到缓冲区,因而节省了而节省了CPUCPU的数据传送时间。的数据传送时间。4.4.对对SpoolingSpooling技术的支持技术的支持SpoolingSpooling(Simultaneous Simultaneous Peripheral Peripheral Operations Operations On-On-lineline)也称为假脱机技术。也称为假脱机技术。此此技技术术在在磁磁盘盘上上
8、专专门门开开辟辟一一个个区区域域,CPUCPU不不需需等等到到打打印印机机处处于于就就绪绪状状态态,就就可可直直接接将将要要打打印印的的所所有有作作业存放到磁盘中,排成打印队列。业存放到磁盘中,排成打印队列。合合适适的的时时候候由由专专门门的的程程序序(在在WindowsWindows中中称称为为后后台台进进程程)把把要要打打印印的的信信息息从从磁磁盘盘送送到到打打印印机机,并并管管理理打印机的打印工作。打印机的打印工作。给给人人的的感感觉觉好好像像每每个个作作业业都都有有一一台台打打印印机机。也也就就是是说说,该该技技术术将将一一台台独独享享设设备备模模拟拟成成了了共共享享设设备备。支支持持
9、SpoolingSpooling技术意味着支持虚拟设备。技术意味着支持虚拟设备。图图6.4 6.4 等待打印等待打印机的队列机的队列5.5.进行设备分配进行设备分配多多个个进进程程或或作作业业都都要要求求使使用用某某种种设设备备时时,设设备备管管理理根根据据一一定定的的算算法法进进行行设设备备分分配配,对对暂暂时时不不能能获获得得设设备备的的,系系统统将将它它们们排排在在该该设设备备请请求求队队列列中中,排排队队顺顺序序决决定定了了获获得得设设备备的的次次序序。而而当当设设备备使使用用完完毕毕,设备管理要及时回收。设备管理要及时回收。6.6.提供中断处理机制提供中断处理机制如如果果打打印印过过
10、程程中中出出现现问问题题(如如掉掉电电、缺缺纸纸、脱机等),需要脱机等),需要CPUCPU进行紧急处理。进行紧急处理。系系统统采采用用了了中中断断技技术术当当某某个个事事件件发发生生时时,系系统统中中止止现现行行程程序序的的运运行行,转转去去执执行行相相应应的的事事件件处处理理程程序序,处处理理完完毕毕,返返回回被被中中断断处处继继续执行。续执行。当当出出现现问问题题时时,中中断断源源立立即即向向CPUCPU发发出出一一个个中断信号,系统进入中断处理机制。中断信号,系统进入中断处理机制。6.2 6.2 设备标识与设备驱动程序设备标识与设备驱动程序6.2.1 6.2.1 逻辑设备与物理设备逻辑设
11、备与物理设备1.1.逻辑设备和物理设备的含义逻辑设备和物理设备的含义2.2.设备独立性设备独立性3.3.设备独立性的优点设备独立性的优点1.1.逻辑设备和物理设备的含义逻辑设备和物理设备的含义逻辑设备逻辑设备逻逻辑辑设设备备是是对对实实际际物物理理设设备备属属性性的的抽抽象象,它它并并不不限限于于某某个个具具体设备。体设备。用用户户在在编编程程时时,不不用用关关心心系系统统具具体体配配置置了了哪哪些些设设备备,也也不不需需要要了了解解各各种种设设备备的的物物理理特特性性,而而只只要要按按照照惯惯例例为为所所用用到到的的设设备起个逻辑名字,称为逻辑设备名。备起个逻辑名字,称为逻辑设备名。物理设备
12、物理设备物理设备是一个具体的设备。物理设备是一个具体的设备。系系统统为为了了能能识识别别全全部部外外设设,给给每每台台外外设设分分配配一一个个唯唯一一不不变变的的名字,称为物理设备名。名字,称为物理设备名。通过引入逻辑设备和物理设备,可实现设备独立性。通过引入逻辑设备和物理设备,可实现设备独立性。2.2.设备独立性设备独立性设设备备独独立立性性也也称称为为设设备备无无关关性性,指指用用户户编编程程时时所所使使用用的的设设备备与与实实际际使使用用的的设设备备无无关关,用用户户编编程程时时使使用用逻逻辑辑设备名。设备名。用用户户程程序序以以逻逻辑辑设设备备名名来来请请求求使使用用某某类类设设备备时
13、时,系系统统将将在在该该类类设设备备中中,根根据据设设备备的的使使用用情情况况,将将任任一一台台合合适适的的物物理理设设备备分配给该程序。分配给该程序。如如果果用用户户程程序序是是以以物物理理设设备备名名来来请请求求指指定定某某台台设设备备,假假如如该该设设备备有有故故障障或或正正在在被被其其他他进进程程使使用用,则则用用户户程程序序只只能能一一直直等等待。待。采采用用逻逻辑辑设设备备名名,可可以以使使用用户户程程序序独独立立于于分分配配给给它它的的某某类类设设备的具体设备。备的具体设备。2.2.设备独立性设备独立性使用逻辑设备名,还能使用户程序独立于所使用的使用逻辑设备名,还能使用户程序独立
14、于所使用的某类设备。某类设备。例如,在例如,在LinuxLinux系统环境下,系统提供标准输入系统环境下,系统提供标准输入/输出,在输出,在用户程序中的输入用户程序中的输入/输出都使用这两个标准的输出都使用这两个标准的I/OI/O,实际运,实际运行时,可根据具体情况而定。行时,可根据具体情况而定。如果配备打印机,可将输出信息送到打印机打印;如果配备打印机,可将输出信息送到打印机打印;如果没有配备打印机,就把输出重定向到某个指定文件,如果没有配备打印机,就把输出重定向到某个指定文件,把要打印的信息送到该文件中。把要打印的信息送到该文件中。3.3.设备独立性的优点设备独立性的优点(1 1)方便用户
15、编程。)方便用户编程。(2 2)便于程序移植。)便于程序移植。(3 3)提高了资源利用率。)提高了资源利用率。(4 4)能适应多用户多进程的需要。)能适应多用户多进程的需要。6.2.2 6.2.2 实用系统中的逻辑设备和物理设备实用系统中的逻辑设备和物理设备LinuxLinux系统中外部设备等同文件系统中外部设备等同文件设备文件;设备文件;这些设备文件名就是系统规定的逻辑设备名;这些设备文件名就是系统规定的逻辑设备名;系统的系统的/dev/dev目录下是各种设备:目录下是各种设备:(1 1)以)以fdfd开头的文件是软盘设备。开头的文件是软盘设备。/dev/fd0/dev/fd0第一个软盘驱动
16、器第一个软盘驱动器/dev/fd1/dev/fd1第二个软盘驱动器第二个软盘驱动器/dev/fd1h1440/dev/fd1h1440第一软驱中的第一软驱中的3.53.5英寸高密软盘。英寸高密软盘。(2 2)以)以hdhd开头的文件是开头的文件是IDEIDE硬盘设备。硬盘设备。/dev/hda/dev/hda第一硬盘第一硬盘hda1hda1第一个硬盘第一个硬盘/dev/hda/dev/hda的第一个分区的第一个分区hdahda、hdbhdb、hdchdc、系统中的多个系统中的多个IDEIDE硬盘硬盘(3 3)/dev/ttys/dev/ttys串行端口串行端口COM1COM1,/dev/cua
17、/dev/cua调制解调器。调制解调器。(4 4)以)以lplp开头的文件是并行端口设备。开头的文件是并行端口设备。/dev/lp0/dev/lp0LPT1LPT1。以以ttytty开头的文件是系统的虚拟终端开头的文件是系统的虚拟终端以以ptypty开头的文件是伪终端,用开头的文件是伪终端,用telnettelnet远程登录时用到远程登录时用到/dev/console/dev/console控制台,即直接与系统相连的显示器和键盘。控制台,即直接与系统相连的显示器和键盘。WindowsWindows中的设备中的设备图图6.6 设备管理器设备管理器 6.2.3 6.2.3 设备驱动程序设备驱动程序
18、设备驱动程序是驱动物理设备直接进行各设备驱动程序是驱动物理设备直接进行各种操作的软件,它可看作种操作的软件,它可看作I/OI/O系统和物理设系统和物理设备的接口,所有进程对于设备的请求都要备的接口,所有进程对于设备的请求都要通过设备驱动程序来完成。通过设备驱动程序来完成。1.1.设备控制器设备控制器2.2.设备驱动程序的引入设备驱动程序的引入3.3.设备驱动程序的处理过程设备驱动程序的处理过程4.4.实用系统中的设备驱动程序实用系统中的设备驱动程序1.1.设备控制器设备控制器外设外设机械部件机械部件电子部件电子部件独立出来独立出来设备控制器设备控制器设备只有在设备控制器的控制下才能运行,且一个
19、设备只有在设备控制器的控制下才能运行,且一个控制器可以控制几台同类设备。控制器可以控制几台同类设备。设备控制器设备控制器CPU设备设备控制寄存器、控制寄存器、状态寄存器、状态寄存器、数据寄存器、数据寄存器、地址译码器等地址译码器等接收和识别接收和识别CPUCPU发来的发来的命令命令 实现控制器与实现控制器与CPUCPU之间、之间、控制器和外设之间的数控制器和外设之间的数据交换据交换 记录设备的状态(如记录设备的状态(如设备就绪、设备忙、设备就绪、设备忙、操作错误等)供操作错误等)供CPUCPU了解了解 用于识别每个设备的地用于识别每个设备的地址址 2.2.设备驱动程序的引入设备驱动程序的引入将
20、用户命令中的逻辑设备名转换为物理设备名,系将用户命令中的逻辑设备名转换为物理设备名,系统只是完成了第一步工作,至于要具体操纵这台物统只是完成了第一步工作,至于要具体操纵这台物理设备,就复杂多了。理设备,就复杂多了。操作系统设计者把与物理设备直接有关的软件部分操作系统设计者把与物理设备直接有关的软件部分独立出来,构成设备驱动程序系列,一般由设备商独立出来,构成设备驱动程序系列,一般由设备商和软硬件开发商提供的针对某一种具体设备的驱动和软硬件开发商提供的针对某一种具体设备的驱动程序组成。程序组成。系统和用户可根据需要,灵活配置物理设备,选择系统和用户可根据需要,灵活配置物理设备,选择相应的驱动程序
21、装载。相应的驱动程序装载。3.3.设备驱动程序的处理过程设备驱动程序的处理过程(1 1)将将抽抽象象要要求求转转换换为为具具体体要要求求(控控制制器器中中寄寄存存器器内内容)。容)。(2 2)检查)检查I/OI/O请求的合法性。请求的合法性。(3 3)检检查查设设备备状状态态。读读状状态态寄寄存存器器内内容容,看看设设备备忙忙/闲状态。闲状态。(4 4)传送必要的参数。)传送必要的参数。(5 5)启启动动I/OI/O设设备备。向向设设备备控控制制器器中中的的命命令令寄寄存存器器传传送送控控制制命命令令,将将外外设设启启动动,然然后后可可由由设设备备控控制制器器来来控制外设进行基本控制外设进行基
22、本I/OI/O操作。操作。不同类型的外设,驱动程序是不一样的。不同类型的外设,驱动程序是不一样的。4.实用系统中的设备驱动程序控制面板控制面板管理工具管理工具计算机管理计算机管理设备管理器设备管理器指定设备指定设备属性属性驱动程序驱动程序驱动程序详细清单驱动程序详细清单图图6.7 6.7 设备驱动程序详细资料设备驱动程序详细资料图图6.8 Windows6.8 Windows设备及其的驱动程序设备及其的驱动程序4.4.实用系统中的设备驱动程序实用系统中的设备驱动程序Linux Linux 核核心心的的设设备备驱驱动动程程序序本本质质上上是是特特权权的的、驻驻留留内内存存的的低低级级的的硬件控制
23、例程的共享库。硬件控制例程的共享库。Linux Linux 支持三类的硬件设备:字符、块和网络。支持三类的硬件设备:字符、块和网络。字字符符设设备备直直接接读读写写,没没有有缓缓冲冲区区,例例如如系系统统的的串串行行端端口口 /dev/cua0/dev/cua0 和和 /dev/cua1/dev/cua1。块块设设备备只只能能按按照照一一个个块块(一一般般是是 512 512 字字节节或或者者 1024 1024 字字节节)的的倍倍数进行读写。块设备通过数进行读写。块设备通过 buffer cache buffer cache 访问,可以随机存取。访问,可以随机存取。大大多多数数的的设设备备驱
24、驱动动程程序序可可以以在在需需要要的的时时候候作作为为核核心心模模块块加加载载,在不再需要的时候卸载。在不再需要的时候卸载。每每一一类类的的设设备备驱驱动动程程序序:字字符符、块块和和网网络络,都都提提供供了了通通用用的的接接口供核心在需要请求它们的服务的时候使用。口供核心在需要请求它们的服务的时候使用。6.3 6.3 输入输入/输出控制方式输出控制方式6.3.1 6.3.1 程序控制输入程序控制输入/输出方式输出方式6.3.2 6.3.2 中断输入中断输入/输出方式输出方式6.3.3 6.3.3 直接存储器访问方式直接存储器访问方式6.3.4 6.3.4 通道方式通道方式由谁来做输入由谁来做
25、输入/输输出的工作?出的工作?CPUCPU(程序)?(程序)?DMADMA?通道?通道?6.3.1 6.3.1 程序控制输入程序控制输入/输出方式输出方式程序控制输入程序控制输入/输出方式又称为输出方式又称为 状态驱动输入状态驱动输入/输出方式输出方式 或应答输入或应答输入/输出方式输出方式它采用程序查询的方式直接参与数据的它采用程序查询的方式直接参与数据的输入输入/输出。(注意:程序就是输出。(注意:程序就是CPUCPU)程序控制输入程序控制输入/输出方式输出方式 以以键盘为例键盘为例1.1.CPUCPU向向键键盘盘的的控控制制器器发发一一条条输输入入命命令令,启启动动键键盘盘进进行行输输入
26、入操操作作,并并将将状状态态寄寄存存器器的的”忙忙闲闲位位”置置1 1,表示忙。,表示忙。2.2.然然后后CPUCPU运运行行程程序序不不断断测测试试状状态态寄寄存存器器的的完完成成位位,看看键键盘盘是是否否完完成成了了输输入入。直直到到键键盘盘已已将将数数据据输输入入到到了了键键盘盘控控制制器器的的数数据据寄寄存存器器中中,状状态态寄存器的完成位变为寄存器的完成位变为1 1时,时,CPUCPU才停止测试。才停止测试。3.CPU3.CPU取走数据寄存器中的输入数据。取走数据寄存器中的输入数据。目目 前前 IDEIDE接接 口口 硬硬 盘盘 仍仍 在在 使使 用用 这这 种种 方方 式式,称称
27、为为PIOPIO(Programming Input/OutputProgramming Input/Output)模式。)模式。问题:问题:CPUCPU等待每一个操作完成等待每一个操作完成的时候会花费大量时间的时候会花费大量时间“忙于什忙于什么也不做么也不做”(busy doing busy doing nothing nothing)CPUCPU大部分时间大部分时间都处于检查和等待状态,整个计都处于检查和等待状态,整个计算系统的效率十分低下。算系统的效率十分低下。6.3.2 6.3.2 中断输入中断输入/输出方式输出方式 CPUCPU请请求求设设备备传传输输后后不不等等待待,转转去去做做其
28、其他他更更有有用用的的事事情情,当当设设备备完完成成请请求求的的时时候候向向CPUCPU发发设设备备中中断断。(系系统统中中同同一一时时刻刻可可能能有有许许多多设设备备的的请请求求在在同同时时发发生。)生。)所所谓谓中中断断,就就是是指指当当某某个个事事件件发发生生时时,向向系系统统发发出出一一个个中中断断信信号号,系系统统于于是是中中止止现现行行程程序序的的运运行行,转转去去执执行行相相应应的的中中断断处处理理程程序序,完完毕毕后后返返回回断断点点继继续续执行。执行。需需要要在在CPUCPU和和每每一一个个设设备备控控制制器器之之间间增增加加一一条条中中断断请请求求线线,并并在在设设备备控控
29、制制器器的的控控制制寄寄存存器器中中增增加加一一个个中断允许位。中断允许位。中断输入中断输入/输出方式输出方式 以键盘输入为例以键盘输入为例(1 1)开开中中断断。CPUCPU把把启启动动位位和和中中断断允允许许位位为为1 1的的控控制制字字写写入入键键盘盘控控制制状状态态寄寄存存器器中中,启启动动键键盘盘。(当当中中断断允允许许位位为为1 1时时,中中断断程序可以被调用。)程序可以被调用。)(2 2)进进程程等等待待键键盘盘输输入入完完成成(进进入入等等待待队队列列),由由进进程程调调度度程程序调度其他就绪进程使用序调度其他就绪进程使用CPUCPU。(3 3)键键盘盘启启动动后后,当当数数据
30、据寄寄存存器器装装满满后后,键键盘盘控控制制器器通通过过中中断断请求线向请求线向CPUCPU发出中断信号。发出中断信号。(4 4)CPUCPU暂暂停停正正在在进进行行的的工工作作,转转向向执执行行中中断断处处理理程程序序。(取取出出数数据据寄寄存存器器中中的的输输入入数数据据送送到到内内存存特特定定单单元元,并并将将等等待待输输入入完成的进程唤醒。)完成的进程唤醒。)(5 5)中断处理程序完毕,)中断处理程序完毕,CPUCPU返回断点继续执行。返回断点继续执行。(6 6)以以后后某某个个时时刻刻,进进程程调调度度程程序序选选中中正正处处于于就就绪绪状状态态的的那那个个进程,该进程从特定内存单元
31、中取出所需的数据继续工作。进程,该进程从特定内存单元中取出所需的数据继续工作。图图6.9 6.9 中断输入中断输入/输出方式输出方式 中断输入中断输入/输出方式输出方式优点:CPU不需等待数据传输完成,I/O设备与CPU并行工作,CPU的利用率因此提高。缺点:CPU在响应中断后,还需要时间来执行中断服务程序。如果数据量大,需要多次执行中断程序,CPU的效率仍然不高。6.3.3 6.3.3 直接存储器访问方式直接存储器访问方式 DMADMA(Direct Memory AccessDirect Memory Access)方式:)方式:在外部设备和主存之间建立了直接数据通路,在外部设备和主存之间
32、建立了直接数据通路,即外设和主存之间可直接读写数据,且数据传即外设和主存之间可直接读写数据,且数据传送的基本单位是数据块。送的基本单位是数据块。整块数据的传输在一个称为整块数据的传输在一个称为DMADMA控制器的控制控制器的控制下完成。下完成。DMADMA数据传输期间不需数据传输期间不需CPUCPU干预,仅在传送一干预,仅在传送一个或多个数据块的开始或结束时,才需个或多个数据块的开始或结束时,才需CPUCPU处处理。理。图图6.10 DMA6.10 DMA控制方式控制方式图图6.11 DMA6.11 DMA数据输入处理过程数据输入处理过程使用使用 DMA DMA 的时候设备驱动程序的时候设备驱
33、动程序必须小心。必须小心。1 1、所有的、所有的 DMA DMA 控制器都不了解控制器都不了解虚拟内存,它只能访问系统中的虚拟内存,它只能访问系统中的物理内存。物理内存。2 2、DMA DMA 控制器无法访问全部控制器无法访问全部的物理内存。的物理内存。DMADMA的地址寄存的地址寄存器的位数决定了它能访问的内存器的位数决定了它能访问的内存地址。地址。DMADMA方式缺点:方式缺点:(1 1)外设数量众多,配置)外设数量众多,配置DMADMA控制器,控制器,硬件的成本过大。硬件的成本过大。(2 2)每一台外设的)每一台外设的DMADMA都需要都需要CPUCPU的的I/OI/O指令初始化,浪费指
34、令初始化,浪费CPUCPU时间。时间。(3 3)由于)由于DMADMA控制器实际上是使用窃取控制器实际上是使用窃取CPUCPU工作周期的方法进行工作的,它工作工作周期的方法进行工作的,它工作时,时,CPUCPU将被挂起。如果众多外设都采用将被挂起。如果众多外设都采用DMADMA方式工作,接连不断的窃取周期,方式工作,接连不断的窃取周期,则会使则会使CPUCPU长时间被挂起,从而降低了长时间被挂起,从而降低了CPUCPU的效率。的效率。DMADMA与中断输入与中断输入/输出方式进行比较输出方式进行比较(1 1)谁的中断次数多?)谁的中断次数多?(2 2)由谁完成数据传输?)由谁完成数据传输?(3
35、 3)工工作作机机制制?软软件件?硬硬件件?适适用用范范围?围?(4 4)DMADMA与中断是否矛盾?与中断是否矛盾?6.3.4 6.3.4 通道方式通道方式1.1.通道的概念通道的概念通通道道是是一一个个独独立立于于CPUCPU的的专专管管输输入入输输出出控控制制的的处处理理机机,它它控控制制设设备备与与内内存存直直接接进进行数据交换。行数据交换。通通道道有有自自己己的的一一套套简简单单的的指指令令系系统统,称称为为通通道道指指令令。每每条条通通道道指指令令规规定定了了设设备备的的一一种种操操作作,通通道道指指令令序序列列便便是是通通道道程程序序,通通道执行通道程序来完成规定动作。道执行通道
36、程序来完成规定动作。1.1.通道的概念通道的概念通道处理机通道处理机寄存器部分寄存器部分控制部分控制部分数据寄存器数据寄存器主存地址寄存器主存地址寄存器传输字节寄存器传输字节寄存器通道命令寄存器通道命令寄存器通道状态寄存器通道状态寄存器分时控制分时控制地址分配地址分配数据传送等数据传送等通道靠执行通道程序软件完成数据传输,通道控制器通道靠执行通道程序软件完成数据传输,通道控制器的功能比的功能比DMADMA控制器更强大,它能够承担外设的大部控制器更强大,它能够承担外设的大部分工作。分工作。2.2.通道的种类通道的种类以字节为传输单位,可以分时地执行以字节为传输单位,可以分时地执行多个通道程序。多
37、个通道程序。这是一种简单的共享通道,主要为多这是一种简单的共享通道,主要为多台低速或中速的字符设备服务。台低速或中速的字符设备服务。它用开关来控制对高它用开关来控制对高速外设的选择,在一速外设的选择,在一段时间内单独为一台段时间内单独为一台外围设备服务,直到外围设备服务,直到该设备的数据传输工该设备的数据传输工作全部结束。然后通作全部结束。然后通道再选择另一台外设道再选择另一台外设为其提供服务。为其提供服务。它分时地为多台外围设备服务,每个时它分时地为多台外围设备服务,每个时间片传送一个数据块。可以同时连接多间片传送一个数据块。可以同时连接多台高速存储设备,因此,它能够充分发台高速存储设备,因
38、此,它能够充分发挥高速通道的数据传输能力。挥高速通道的数据传输能力。3.3.通道工作过程通道工作过程CPUCPU根根据据进进程程的的I/OI/O请请求求,形形成成有有关关通通道道程程序序,然然后执行后执行I/OI/O指令启动通道。指令启动通道。通通道道处处理理机机开开始始运运行行CPUCPU存存放放在在主主存存中中的的通通道道程程序序,独独立立负负责责外外设设和和主主存存之之间间的的数数据据传传送送。当当整整个个I/OI/O过程结束,才向过程结束,才向CPUCPU发出中断请求。发出中断请求。CPUCPU响响应应中中断断,进进行行关关闭闭通通道道、记记录录相相关关数数据据等等工作。工作。采用通道
39、方式,采用通道方式,CPUCPU基本上摆脱了基本上摆脱了I/OI/O传输工作,传输工作,大大增强了大大增强了CPUCPU和外设的并行处理能力,有效地提高和外设的并行处理能力,有效地提高了整个系统的资源利用率。了整个系统的资源利用率。4.4.通道和通道和DMADMA控制器的区别控制器的区别(1 1)DMADMA控控制制器器和和通通道道是是硬硬件件工工作作还还是软件工作?是软件工作?(2 2)连接外设的类型限制?)连接外设的类型限制?(3 3)和和CPUCPU的的沟沟通通方方式式?CPUCPU的的介介入入程度?对外设的控制?程度?对外设的控制?6.3.5 Windows6.3.5 Windows中
40、的数据传输控制方式中的数据传输控制方式(1 1)端口:外设都是通过接口和系统相连的,)端口:外设都是通过接口和系统相连的,接口中有数据寄存器、状态寄存器、命令寄接口中有数据寄存器、状态寄存器、命令寄存器等,每个寄存器被分配一个称为存器等,每个寄存器被分配一个称为I/OI/O端口端口的地址编码加以区分。故一个外设常有多个的地址编码加以区分。故一个外设常有多个I/OI/O端口地址,计算机通过不同的端口地址,计算机通过不同的I/OI/O端口来端口来选择外设,并通过端口来和外设进行通信。选择外设,并通过端口来和外设进行通信。图图6.13 6.13 键盘使用的端口地址键盘使用的端口地址(2 2)中断向量
41、:当设备准备接受或发送信)中断向量:当设备准备接受或发送信息时,可以用来发送信号以获得处理器注息时,可以用来发送信号以获得处理器注意的硬件线路。每条线路用一个中断向量意的硬件线路。每条线路用一个中断向量IRQIRQ来标志。每个设备都必须有唯一的来标志。每个设备都必须有唯一的IRQIRQ线路。线路。图图6.14 IRQ6.14 IRQ及其对应的设备及其对应的设备(3 3)DMADMA:DMADMA是不涉及处理器的内存访是不涉及处理器的内存访问。经常用于内存和外围设备(如磁盘驱问。经常用于内存和外围设备(如磁盘驱动器)之间的直接数据传输。在动器)之间的直接数据传输。在PCPC机中,机中,DMADM
42、A控制器通常集成到大规模控制器通常集成到大规模ICIC芯片中,芯片中,一个一个DMADMA控制器只有四个独立的控制器只有四个独立的DMADMA通道,通道,为了使用更多的为了使用更多的DMADMA通道,可由两个通道,可由两个DMADMA控制器组成组联方式,将第二个控制器组成组联方式,将第二个DMADMA控制控制器连到第一个器连到第一个DMADMA控制器的第四个通道,控制器的第四个通道,因此一共有七个因此一共有七个DMADMA通道可供使用。通道可供使用。图图6.15 DMA6.15 DMA通道通道6.3.5 Windows6.3.5 Windows中的数据传输控制方式中的数据传输控制方式一个设备要
43、能正常工作,就必需为它分配一个设备要能正常工作,就必需为它分配合适的合适的I/OI/O端口地址、端口地址、IRQIRQ、DMADMA通道等通道等资源。当然,对于不使用资源。当然,对于不使用DMADMA方式的设备,方式的设备,只需只需I/OI/O和和IRQIRQ即可。即可。不同设备如果分配的不同设备如果分配的I/OI/O、IRQIRQ、DMADMA资资源有重复,必然会发生资源冲突,轻者设源有重复,必然会发生资源冲突,轻者设备不能正常工作,重者导致系统崩溃。备不能正常工作,重者导致系统崩溃。图图6.16 6.16 冲突与共享冲突与共享6.4 6.4 设备分配设备分配由于外设、设备控制器、通道等资由
44、于外设、设备控制器、通道等资源有限,对多个请求使用设备的进程,源有限,对多个请求使用设备的进程,设备管理应能合理、有效地进行设备的设备管理应能合理、有效地进行设备的分配。分配。图图6.17 6.17 设备分配中的数据结构设备分配中的数据结构就就象象进进程程控控制制块块PCBPCB、作作业业控控制制块块JCBJCB一一样样,系系统统为为每每个个设设备备建建立立一一个个设设备备控控制制块块DCBDCB,主主要要用用来来记记录录本设备的各种情况。本设备的各种情况。记录控制器的情况。记录控制器的情况。记录通道的情况。记录通道的情况。整整个个系系统统有有一一张张系系统统设设备备表表SDTSDT,存存放放
45、了了系系统统的的所所有有设设备备,每每个个设设备备占占一一个个表表项项,内内容容有有设设备备标标识识、设设备备类类型型、设设备备DCBDCB指指针针、还还可可包包含含设设备驱动程序入口等内容。备驱动程序入口等内容。系统通过这些数据结构对各种系统通过这些数据结构对各种设备进行记录,再配合适当的设备进行记录,再配合适当的分配策略和算法,就能实施有分配策略和算法,就能实施有效的设备分配。效的设备分配。只有当一个进程经过系统的设只有当一个进程经过系统的设备分配,获得了通道、控制器备分配,获得了通道、控制器和所需设备后,才具备了进行和所需设备后,才具备了进行I/OI/O操作的物理条件。操作的物理条件。6
46、.4.2 6.4.2 设备分配思想设备分配思想设备分配的原则:设备分配的原则:充分提高设备的利用率;充分提高设备的利用率;在不导致死锁的情况下尽量满足用户的在不导致死锁的情况下尽量满足用户的要求。要求。设备分配的功能:设备分配的功能:接受用户提出的逻辑设备分配的要求,接受用户提出的逻辑设备分配的要求,把它转换为对物理设备的分配。把它转换为对物理设备的分配。1.1.设备分配方式设备分配方式如果将独享设备虚拟为共享设备,破坏产如果将独享设备虚拟为共享设备,破坏产生死锁的互斥条件,那么死锁就不会产生生死锁的互斥条件,那么死锁就不会产生了。了。静态分配静态分配动态分配动态分配在进程刚建立就把其在进程刚
47、建立就把其需要的设备全部分配需要的设备全部分配给它,直到整个进程给它,直到整个进程运行后被撤销才释放运行后被撤销才释放这些设备。这些设备。静态分配的优点是不会产生死静态分配的优点是不会产生死锁。常用于单用户系统。锁。常用于单用户系统。当进程运行过程中提出对设备当进程运行过程中提出对设备的请求,系统为这个进程分配的请求,系统为这个进程分配所需的设备,一旦该进程使用所需的设备,一旦该进程使用完这个设备,立刻释放出来给完这个设备,立刻释放出来给别的进程。别的进程。动动态态分分配配使使设设备备的的利利用用率率得得到到很很大大提提高高,但但这这种种方方式式如如果果采采取取的的分分配配算算法法不不当当,则
48、则有有可可能能会导致死锁。会导致死锁。2.2.独享设备调度算法独享设备调度算法(1 1)先来先服务)先来先服务(2 2)优先级高者先服务)优先级高者先服务当当有有多多个个进进程程对对同同一一台台设设备备提提出出分分配配请请求求时时,根根据据进进程程对对某某设设备备提提出出请请求求的的时时间间顺顺序序,将将这这些些进进程程控控制制块块排排成成一一个个设设备备请请求求队队列列,处处于于队队首首的的进进程程最最先先获得使用权。获得使用权。请请求求设设备备的的进进程程按按优优先先级级排排入入设设备备请请求求队队列列,在在优优先先级级相相同同的的情情况况下下,再再按按时时间间顺顺序序排排列列,设设备备总
49、总是是分分配配给队首具有最高优先级的进程使用。给队首具有最高优先级的进程使用。3.3.共享设备调度算法共享设备调度算法 共共享享设设备备的的典典型型代代表表为为磁磁盘盘,完完成成磁磁盘盘某某一一个物理块的访问要经过三个时间段:个物理块的访问要经过三个时间段:寻道时间寻道时间TsTs旋转延迟旋转延迟TwTw读写时间读写时间TrwTrw寻道时间寻道时间TsTs是磁头从当前磁道是磁头从当前磁道移动到目标磁道所需的时间;移动到目标磁道所需的时间;旋转延迟旋转延迟TwTw是当磁头停留在目是当磁头停留在目标磁道后,目标物理块从当前标磁道后,目标物理块从当前位置旋转到磁头位置的时间;位置旋转到磁头位置的时间
50、;读写时间读写时间TrwTrw是目标物理块内是目标物理块内容与内存中对应区交换的时间。容与内存中对应区交换的时间。磁盘调度的原则是公平和高磁盘调度的原则是公平和高吞吐量,衡量指标有:吞吐量,衡量指标有:访问时间访问时间T T:T=Ts+Tw+TrwT=Ts+Tw+Trw =Ts+Tw =Ts+Tw平均访问时间平均访问时间TaTa:Ta=Tsa+Twa+TrwaTa=Tsa+Twa+Trwa =Tsa+Twa =Tsa+Twa3.3.共享设备调度算法共享设备调度算法(1 1)先来先服务)先来先服务(First Come First ServeFirst Come First Serve)(2 2