第5章设备管理.ppt

上传人:豆**** 文档编号:60592260 上传时间:2022-11-17 格式:PPT 页数:157 大小:1MB
返回 下载 相关 举报
第5章设备管理.ppt_第1页
第1页 / 共157页
第5章设备管理.ppt_第2页
第2页 / 共157页
点击查看更多>>
资源描述

《第5章设备管理.ppt》由会员分享,可在线阅读,更多相关《第5章设备管理.ppt(157页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第5章设备管理 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望BootingPostBIOSPartition boot programLoaderOSROMRAMPOWERONCMOSAdapted from:Operating Systems(3rd Edition,Gary Nutt)第五章第五章 设备管理设备管理MANAGING I/O DEVICES1、没有、没有I/O设备的计算机就像一个没有设备的计算机就像一个没有轮子的汽车轮子的汽车I/O管理的重要性

2、管理的重要性2.I/O2.I/O性能经常成为系统性能的瓶颈性能经常成为系统性能的瓶颈(1)CPU(1)CPU性能不等于系统性能,响应时间也性能不等于系统性能,响应时间也是一个重要因素是一个重要因素(2)CPU(2)CPU性能越高,与性能越高,与I/OI/O差距越大差距越大 弥补:更多的进程弥补:更多的进程(3)(3)进程切换多,系统开销大进程切换多,系统开销大3.3.操作系统庞大复杂的原因之一是:资源操作系统庞大复杂的原因之一是:资源多、杂,并发,均来自多、杂,并发,均来自I/OI/O4.4.理解理解I/OI/O的工作过程与结构是理解操作系的工作过程与结构是理解操作系统的工作过程与结构的关键统

3、的工作过程与结构的关键5.I/O5.I/O技术很实用技术很实用6.6.与其他功能联系密切,特别是文件系统与其他功能联系密切,特别是文件系统5.1 I/O系统的组成系统的组成5.2 I/O 控制方式控制方式5.3 缓冲管理缓冲管理5.4 设备分配设备分配5.5 设备驱动设备驱动5.6 磁盘存取设备管理磁盘存取设备管理本章内容5.1 I/O系统的组成系统的组成 5.1.1 I/O 设备分类设备分类1.1.按使用特性分按使用特性分 存储型设备存储型设备 输入型设备(输入型设备(外设外设主机主机)输出型设备(主机输出型设备(主机外设)外设)输入输出型设备输入输出型设备2.2.按信息交换的单位分按信息交

4、换的单位分 块设备块设备以数据块为单位存储、传输信息以数据块为单位存储、传输信息 字符设备字符设备以字符为单位存储、传输信息以字符为单位存储、传输信息3.3.按外部设备的从属关系分按外部设备的从属关系分 系统设备系统设备指操作系统生成时,登记在指操作系统生成时,登记在系统中的标准设备系统中的标准设备 (如终端、打印机、磁盘机等)(如终端、打印机、磁盘机等)3.3.按外部设备的从属关系分按外部设备的从属关系分用户设备用户设备指在系统生成时,未登记在系指在系统生成时,未登记在系统中的非标准设备。对于这类设备的处理程统中的非标准设备。对于这类设备的处理程序由用户提供,并将其纳入系统,由系统代序由用户

5、提供,并将其纳入系统,由系统代替用户实施管理。替用户实施管理。如如A/DA/D,D/AD/A转换器,转换器,CADCAD所用专用设备所用专用设备4.按传输速率按传输速率:低速低速(100KB/s)5.5.按资源分配角度分按资源分配角度分独占设备独占设备在一段时间内只能有一个进在一段时间内只能有一个进程使用的设备,一般为低速程使用的设备,一般为低速I/OI/O设备。(如设备。(如打印机,磁带等)打印机,磁带等)共享设备共享设备在一段时间内可有多个进程在一段时间内可有多个进程共同使用的设备,多个进程以交叉的方式共同使用的设备,多个进程以交叉的方式来使用设备,其资源利用率高。(如硬盘)来使用设备,其

6、资源利用率高。(如硬盘)虚设备虚设备在一类设备上模拟另一类设备,在一类设备上模拟另一类设备,常用共享设备模拟独占设备,用高速设备常用共享设备模拟独占设备,用高速设备模拟低速设备,被模拟的设备称为虚设备。模拟低速设备,被模拟的设备称为虚设备。(将慢速的独占设备改造成多个用户可共(将慢速的独占设备改造成多个用户可共享的设备,提高设备的利用率)享的设备,提高设备的利用率)为了提高资源利用率,如为了提高资源利用率,如SPOOLingSPOOLing技术就技术就使用了虚设备技术使用了虚设备技术用硬盘模拟输入输用硬盘模拟输入输出设备。出设备。SPOOLingSPOOLing技术技术 为解决独立设备数量少,

7、速度慢,不能为解决独立设备数量少,速度慢,不能满足众多进程的要求,而且在进程独占设满足众多进程的要求,而且在进程独占设备期间,设备利用率比较低而提出的一种备期间,设备利用率比较低而提出的一种设备管理技术设备管理技术5.1.2 设备控制器设备控制器设备组成设备组成I IO O设备一般由机械和电子两部分组成设备一般由机械和电子两部分组成把这两部分分开处理,以提供更加模块化,把这两部分分开处理,以提供更加模块化,更加通用的设计更加通用的设计1.1.设备设备 机械部分是设备本身机械部分是设备本身2.2.设备控制器设备控制器 电子部分叫做设备控制器或适配器。电子部分叫做设备控制器或适配器。在小型和微型机

8、中,它常采用印刷在小型和微型机中,它常采用印刷电路卡插入计算机中电路卡插入计算机中 控制器卡上通常有一个插座,通过电缆与控制器卡上通常有一个插座,通过电缆与设备相连设备相连 控制器和设备之间的接口是一个标准接口,控制器和设备之间的接口是一个标准接口,它符合它符合ANSIANSI、IEEEIEEE或或ISOISO这样的国际标准这样的国际标准I/OI/O模块的一般结构模块的一般结构I/O 逻辑数据寄存器数据寄存器状态状态/控制寄存器控制寄存器外部设备界面接口外部设备界面接口.系统接口外设接口数据线数据线地址线地址线控制线控制线数据数据 状态状态 控制控制数据数据 状态状态 控制控制数据信号线数据信

9、号线设备到控制器的接口设备到控制器的接口I/O 设备设备状态信号线状态信号线控制信号线控制信号线控制逻辑控制逻辑转换器转换器缓冲缓冲到设备到设备控制器控制器5.1.2 设备控制器设备控制器 控制器是控制器是CPU与与I/O设备之间的接口;设备之间的接口;接收从接收从CPU发来的命令发来的命令,并控制并控制I/O设备工作。设备工作。控制器是一个可编址设备控制器是一个可编址设备,例如例如PC中硬盘控中硬盘控制器的制器的I/O端口地址为端口地址为1F01F7。从物理上看从物理上看,控制器是一块接口卡或主板上控制器是一块接口卡或主板上的一个功能模块。的一个功能模块。1.设备控制器的组成设备控制器的组成

10、数据线数据线控制器与设备接口控制器与设备接口CPU与控制器接口与控制器接口控制器控制器与设备与设备接口接口1地址线地址线控制线控制线I/OI/O控控制逻辑制逻辑控制器控制器与设备与设备接口接口i数据数据控制控制控制控制/状态状态R数据寄存器数据寄存器状态状态数据数据控制控制状态状态.I/OI/O设备的编址:设备的编址:为了为了CPUCPU便于对便于对I/OI/O设备进行寻址和选设备进行寻址和选择择,必须给众多的必须给众多的I/OI/O设备进行编址设备进行编址,也也就是给每一台设备规定一些地址码就是给每一台设备规定一些地址码,称称为设备号或设备代码为设备号或设备代码.有两种寻址方法有两种寻址方法

11、 专设专设I/OI/O指令指令.例指令例指令ININ完成输入完成输入,指令指令OUTOUT完成输出完成输出操作操作.其地址码指出其地址码指出I/OI/O设备的设备代设备的设备代码码.这是这是I/OI/O空间独立于存储器空间的空间独立于存储器空间的情况情况,即设备码的编码和存储器的存储即设备码的编码和存储器的存储单元的编码是平行存在的单元的编码是平行存在的.利用访存利用访存(取数取数/存数存数)指令完成指令完成I/OI/O功功能能.使用这种方法时使用这种方法时,从主存的地址空间中分从主存的地址空间中分出一部分地址码作为出一部分地址码作为I/OI/O的设备代码的设备代码,当当访问到这些地址时访问到

12、这些地址时,表示被访的不是主存表示被访的不是主存储器储器,而是而是I/OI/O设备寄存器设备寄存器(例如例如,设备的数据缓冲器或设备的状态设备的数据缓冲器或设备的状态寄存器寄存器).).这时这时I/OI/O空间和存储器空间是空间和存储器空间是合在一起的合在一起的,即即I/OI/O设备和存储单元是统设备和存储单元是统一编址的一编址的.80X8680X86是有专门的是有专门的I/OI/O指令指令,直接寻址设备码直接寻址设备码可达可达512512个个.输入输出设备占用地址数 地址码(16进制)硬盘控制器1632032FH软盘控制器83F03F7H单色显示器/并行打印机163B03BFH彩色图形显示器

13、163D03DFH异步通信控制器83F83FFH 操作系统将命令写入控制器寄存器中,操作系统将命令写入控制器寄存器中,以实现输入输出以实现输入输出 例如:例如:IBM PCIBM PC的软盘控制器可接收的软盘控制器可接收1515条命条命令,令,READREAD、WRITEWRITE、FORMATFORMAT、SEEKSEEK、RECALIBRATERECALIBRATE,命令可以带参数。它们被,命令可以带参数。它们被一起送入控制器的寄存器中一起送入控制器的寄存器中当控制器接受一条命令后,可独立于当控制器接受一条命令后,可独立于CPUCPU完成指定操作,完成指定操作,CPUCPU可以转去执行其它

14、运可以转去执行其它运算。算。命令完成时,控制器产生一个中断,命令完成时,控制器产生一个中断,CPUCPU响应中断,控制转给操作系统。响应中断,控制转给操作系统。CPUCPU通过读控制器寄存器中的信息,获得通过读控制器寄存器中的信息,获得操作结果和设备状态操作结果和设备状态2.设备控制器的功能设备控制器的功能 地址识别地址识别:识别识别I/O端口地址端口地址,使使I/O操作与设备对应。操作与设备对应。接收和识别命令指挥设备执行接收和识别命令指挥设备执行 接收接收CPU通过通过I/O总线发来的命令和参数总线发来的命令和参数,存储存储在在控制器中相应的控制寄存器中控制器中相应的控制寄存器中,并对它进

15、行译码识别并对它进行译码识别,转换转换成适当的电信号成适当的电信号,通过控制器与设备的接口向设通过控制器与设备的接口向设备发送备发送,指挥设备执行指挥设备执行特定的操作。特定的操作。接收和记录设备的状态接收和记录设备的状态 接收接收从设备发来的电信号从设备发来的电信号,进行进行转换转换和解释和解释,变为变为设备的状态信息设备的状态信息,将此结果将此结果记录记录在控制器的状态寄存在控制器的状态寄存器上器上,供供CPU了解。了解。数据交换、数据缓冲、差错控制数据交换、数据缓冲、差错控制 实现实现CPU控制器控制器设备设备的的数据交换数据交换,从而实现了从而实现了CPU到设备的数据传递和设备到到设备

16、的数据传递和设备到CPU的数据传递。的数据传递。举例举例:典型的设备控制器是磁盘控制器典型的设备控制器是磁盘控制器,它从它从I/O总线上总线上接收发来的诸如接收发来的诸如“写这个数据块写这个数据块”之类的高级命令之类的高级命令,并对它进行译码识别并对它进行译码识别,转换成诸如转换成诸如“把磁头定位在正把磁头定位在正确的磁道上确的磁道上”和和“把数据写入这个磁道把数据写入这个磁道”之类的低级之类的低级磁盘操作的电信号磁盘操作的电信号,指挥磁盘驱动器执行这些操作指挥磁盘驱动器执行这些操作,每每执行一步都要将磁盘驱动器的发来的电信号进行转换执行一步都要将磁盘驱动器的发来的电信号进行转换和解释和解释,

17、变为设备的数据状态信息变为设备的数据状态信息,将此结果记录在将此结果记录在控制器的状态寄存器上控制器的状态寄存器上,供供CPU了解。了解。CPU根据此状根据此状态信息确定下一步如何操作。态信息确定下一步如何操作。枢轴 柱面扇柱面磁道扇区磁头移动臂梁5.1.3 I/O通道通道引入通道的目的引入通道的目的引入通道的目的引入通道的目的:为了使CPU从I/O事务中解脱出来,同时为了提高CPUCPU与设备,设备与与设备,设备与与设备,设备与与设备,设备与设备设备设备设备之间的并行工作能力原理原理原理原理:执行通道程序,向控制器发出命令,并具有向CPU发中断信号的功能功能功能功能。一旦CPU发出指令,启动

18、通道,则通道独立独立独立独立于CPU工作。一个通道可连接多个控制器,一个控制器可连接多个设备,形成树形交叉连接 通道程序:通道程序:I/OI/O处理机:处理机:由运算和控制逻辑,累加器,寄存器构成,有指令系统,由通道程序控制。通道程序:通道程序:由通道指令组成;由CPU按数据传送的不同要求自动生成;放在主存中;其在主存中的起始地址通知I/O处理机:目态(目态程序)管态(I/O管理程序)通道(运行通道程序)请求I/O 转管指令编制通道程序启动通道组织I/O操作I/O操作结束向CPU发出中断请求响应I/O 中断请求登记或例外情况处理CPUt 管理程序管理程序管理程序管理程序根据用户提供的参数(设备

19、号、交换信息的起址、交换的字节数)编制通道程序;将其放在内存的相应缓冲区中,起址CAW置于通道寄存器中;执行“启动I/O”指令(SIO)使通道进入通道选择期通道选择期(选择通道、子通道、设备控制器及设备),寻找并启动相应的外部设备。通道被启动后,CPU退出管态,返回目态继续执行目标程序,而通道则按照通道程序的要求组织整个I/O操作,进入数据传输期数据传输期,开始控制内存与设备之间的直接数据交换,直到数据传输结束(或出现非正常结束)才由CPU处理。系统中还可以同时有多个通道分别运行自己的通道程序,控制所属的I/O操作,实现通道与通道、设备与设备之间的全方位并行。通道类型通道类型字节多路通道:字节

20、多路通道:连接大量慢速外围设备而设置的,它可以分时分时分时分时地执行多个通道程序当一个通道程序控制控制控制控制某台设备传送一个字节后,通道硬件就控制转去执行控制转去执行控制转去执行控制转去执行另一个通道程序,控制另一台设备传送信息主要连接以字节为单位的低速字节为单位的低速字节为单位的低速字节为单位的低速I/OI/O设备设备设备设备。如打印机,终端。以字节为单位交叉传输,当一台传送一个字节后,立即转去为另一台传送字节通道类型通道类型 选择通道选择通道选择通道:选择通道:以成组方式工作的,即每次传送一批数据,故传送速度很高。在这段时间内只能为一台设备服务。当这台设备数据传输完成后,再选择与通道连接

21、的另一台设备。主要连接磁盘,磁带等高速I/O设备。通道类型通道类型成组多路通道:成组多路通道:它结合了选择通道传送速度高和字节多路通道能进行分时并行操作的优点。它先为一台设备执行一条通道指令,然后自动转接,为另一台设备执行一条通道指令。主要连接高速设备。数据多路通道实际上实际上实际上实际上是对通道程序采用多道程序设计的硬件实现。3.解决瓶颈问题解决瓶颈问题通道往往成为通道往往成为I/O的瓶颈如图的瓶颈如图:(p149图图5-4)存储器存储器通道通道1 1通道通道2 2控制器控制器1 1控制器控制器2 2控制器控制器3 3控制器控制器4 4设备设备1 1设备设备2 2设备设备3 3设备设备4 4

22、设备设备5 5设备设备6 6设备设备7 7存储器存储器通道通道1 1通道通道2 2控制器控制器1 1控制器控制器2 2设备设备1 1设备设备2 2设备设备3 3设备设备4 4改单通路为多通路解决瓶颈问题改单通路为多通路解决瓶颈问题(p150图图5-5)总线:总线:将计算机系统中的各个子系统(CPU、内存、外设等)相互连接,且连接是共享的 好处:好处:低成本(一线多用)、灵活性(易于增加设备,)总线的缺点:总线的缺点:本身形成了通讯瓶颈,限制I/O吞吐量总线分类:总线分类:数据总线、地址总线、控制总线引入原因:引入原因:在设备与主机的硬连接上,引入总线,节省连线并提供配置扩充与改变时的灵活性;5

23、.1.4 总线系统总线系统定义定义定义定义 总线上连接计算机各个部件的通信线路和总线上连接计算机各个部件的通信线路和相关的控制电路。相关的控制电路。是微处理器芯片对外引线信号的延伸或映射,是微处理器芯片对外引线信号的延伸或映射,是微处理器与片外存储器及是微处理器与片外存储器及I/0I/0接口传输信息的接口传输信息的通路。系统总线信号按功能可分为三类:通路。系统总线信号按功能可分为三类:地址总线(地址总线(Where):指出数据的来源与去):指出数据的来源与去向。地址总线的位数决定了存储空间的大向。地址总线的位数决定了存储空间的大小。小。数据总线(数据总线(What)提供模块间传输数据的)提供模

24、块间传输数据的路径,数据总线的位数决定微处理器结构路径,数据总线的位数决定微处理器结构的复杂度及总体性能。的复杂度及总体性能。控制总线(控制总线(When):提供系统操作所必需):提供系统操作所必需的控制信号,对操作过程进行控制与定时。的控制信号,对操作过程进行控制与定时。微机中常用总线:ISAISA总线:总线:总线:总线:工业标准总线,也叫工业标准总线,也叫ATAT总线,数总线,数据据1616位位EISAEISA总线:总线:总线:总线:扩展的工业标准总线与扩展的工业标准总线与ISAISA总线总线兼容,数据线兼容,数据线3232位位 VESA VESA总线:总线:总线:总线:19911991年

25、推出的年推出的3232位局部总线。位局部总线。PCIPCI总线:总线:总线:总线:局部总线标准,数据线局部总线标准,数据线32-6432-64位。位。PC系统总线发展PC/XT总线是总线是8位总线标准位总线标准AT总线提高到总线提高到16位位,增加了增加了C,D插座插座CPU与控制器间通讯:与控制器间通讯:单总线模型(微机、小型机)多总线模型(中、大型机)控制器与控制器与设备接口设备接口磁盘控制器磁盘控制器打印机控制器打印机控制器磁盘磁盘驱动器驱动器打印机打印机内存内存CPU 扩充总线:扩充总线:亦称设备总线,用于系统亦称设备总线,用于系统I/O扩充。扩充。与系统总线工作频率不同,经接口电路对

26、系统与系统总线工作频率不同,经接口电路对系统总统信号缓冲、变换、隔离,进行不同层次的总统信号缓冲、变换、隔离,进行不同层次的操作(操作(ISA、EISA、MCA)局部总线:局部总线:扩充总线不能满足高性能设备扩充总线不能满足高性能设备(图形、视频、网络)接口的要求,在系统总(图形、视频、网络)接口的要求,在系统总线与扩充总线之间插入一层总线。由于它经桥线与扩充总线之间插入一层总线。由于它经桥接器与系统总线直接相连,因此称之为局部总接器与系统总线直接相连,因此称之为局部总线(线(PCI)。)。总线操作总线操作总线一个操作过程是完成两个模块之间传总线一个操作过程是完成两个模块之间传送信息,启动操作

27、过程的是主模块,另外送信息,启动操作过程的是主模块,另外一个是从模块。某一时刻总线上只能有一一个是从模块。某一时刻总线上只能有一个主模块占用总线。个主模块占用总线。总线的操作步骤:总线的操作步骤:主模块申请总线控制权,总线控制器进行主模块申请总线控制权,总线控制器进行裁决。裁决。主模块得到总线控制权后寻址从模块,主模块得到总线控制权后寻址从模块,从模块确认后进行数据传送。从模块确认后进行数据传送。数据传送的错误检查。数据传送的错误检查。5.2 I/O 控制方式控制方式 程序程序I/O方式方式 中断驱动中断驱动I/O控制方式控制方式 DMA控制方式控制方式 I/O通道控制方式通道控制方式5.2.

28、1 程序程序I/O方式方式CPUI/OI/O CPUCPU忙等忙等循环检测循环检测I/O CPUCPU 内存内存向向I/O控制器发读命令控制器发读命令启动输入机启动输入机,置置busy=1读读I/O控制器状态控制器状态busy检查状态检查状态就绪就绪 busy=0未就绪未就绪busy=1出错出错从从I/O控制器中读入字控制器中读入字向存储器中写字向存储器中写字P152 图图5-7(a)完成?完成?NY下条指令下条指令从从输入机读输入机读字到字到控制器控制器数据寄存器数据寄存器5.2.2 中断驱动中断驱动I/O 控制方式控制方式 当某进程要启动某个当某进程要启动某个I/O设备工作时设备工作时,便

29、由便由CPU向向相应的相应的设备控制器设备控制器发出一条发出一条I/O指令指令,然后立即返回继然后立即返回继续继续执行原来的任务。续继续执行原来的任务。设备控制器设备控制器便按该指令的要便按该指令的要求去控制指定的求去控制指定的I/O设备。此时设备。此时,CPU可以去做其它事可以去做其它事情与情与I/O设备并行工作。设备并行工作。例如例如,在输入时在输入时,当当设备控制器设备控制器收到收到CPU 发来的发来的读命令后读命令后,便去控制相应的输入设备读数据。数据进便去控制相应的输入设备读数据。数据进入数据寄存器后入数据寄存器后,设备控制器设备控制器通过通过中断控制器中断控制器和和控制控制总线向总

30、线向CPU发出中断信号发出中断信号,CPU响应中断响应中断,读读设备设备控控制器状态检查是否出错制器状态检查是否出错,若无错若无错,则通过数据总线从则通过数据总线从设备设备控制器中读出控制器中读出数据数据,写入存储器。写入存储器。P152 图图5-7(b)CPUI/OI/O CPUI/O CPUCPU 内存内存向向I/O控制器发读命令启动输入机控制器发读命令启动输入机读读I/O控制器状态控制器状态检查状态检查状态就绪就绪出错出错从从I/O控制器中读字控制器中读字向存储器中写字向存储器中写字P152 图图5-7(b)完成?完成?NY下条指令下条指令从从输入机读输入机读字到字到控制器控制器数据寄存

31、器数据寄存器CPU作其它事作其它事响应中断响应中断中断请求中断请求中断控制器执行的操作中断控制器执行的操作1.监视监视IRQ线线,检查出现的中断信号。检查出现的中断信号。2.如果在如果在IRQ线上出现了一个中断信号:线上出现了一个中断信号:a.把接受到的信号转换成一个对应的中断向量。把接受到的信号转换成一个对应的中断向量。b.将中断向量存入中断控制器的一个将中断向量存入中断控制器的一个I/O端口端口,允许允许CPU读中断向量。读中断向量。c.控制器向处理器的控制器向处理器的INTR引脚发出一个中断。引脚发出一个中断。d.等待等待,收到收到CPU发出中断应答信号发出中断应答信号,将中断向量放到数

32、据线上,清将中断向量放到数据线上,清INTR线。线。3.返回到第一步。返回到第一步。CPU 根据中断向量去执行根据中断向量去执行中断服务子程序中断服务子程序中断硬件机构采用级连的中断硬件机构采用级连的8259A实现实现Linux的中断机制的中断机制 中断控制器包含的寄存器:中断控制器包含的寄存器:一个状态寄存器一个状态寄存器(I/O地址地址0 x20、0 xa0):实时记录设备的中断请求情况。初始时全为实时记录设备的中断请求情况。初始时全为0 一个屏蔽寄存器一个屏蔽寄存器(I/O地址地址0 x21、0 xa1):每位对应一个设备,每位对应一个设备,0-允许,允许,1-屏蔽屏蔽 通过读取状态寄存

33、器的值了解设备的中断情况通过读取状态寄存器的值了解设备的中断情况 设备驱动程序建立联系设备驱动程序建立联系 Linux 为了将来自硬件设备的中断传递到相应的为了将来自硬件设备的中断传递到相应的设备驱动程序设备驱动程序,在驱动程序初始化的时在驱动程序初始化的时,就将其对应的就将其对应的中断程序进行了登记。中断程序进行了登记。通过调用函数通过调用函数 request_irq()将其中断信息添加到将其中断信息添加到结构为结构为 irqaction 的数组中的数组中,从而使中断号和中断服务从而使中断号和中断服务子程序联系起来。子程序联系起来。request_irq()函数原形函数原形int reque

34、st_irq(unsigned int irq,/*中断请求号中断请求号 */void(*handler)(int,void*,struct pt_regs*),/*指向中断服务子程序指向中断服务子程序*/unsigned long irqflags,/*中断类型中断类型*/const char*devname,/*设备的名字设备的名字*/void*dev_id /*设备标识符设备标识符*/);中断描述符表中断描述符表(IDT)中断服务程序中断服务程序(及异常处理程序及异常处理程序)的入口地址依照中断的入口地址依照中断 源位置组成源位置组成IDT表表,入口地址就是中断门入口地址就是中断门(中断

35、向量中断向量)。Linux IDT表共有表共有 256个中断向量个中断向量,即即0至至255,其中其中0到到 31由由Intel公司留给异常事件处理程序。公司留给异常事件处理程序。CPU根据根据IDT表和中断源表和中断源,可转入相应的中断服务程序可转入相应的中断服务程序中断处理程序执行的四个基本操作中断处理程序执行的四个基本操作 在内核栈中保存在内核栈中保存IRQ的值和寄存器的内容。的值和寄存器的内容。为正在给为正在给 IRQ 线服务的线服务的 PIC 发送一个应答发送一个应答,这将允许这将允许 PIC 进一步发出中断。进一步发出中断。执行共享这个执行共享这个IRQ的所有设备的中断服务例程的所

36、有设备的中断服务例程(ISR)跳到跳到ret_from_intr()的地址后中断结束。的地址后中断结束。把把IRQIRQ分配给分配给I/OI/O设备的一个例子设备的一个例子IRQIRQ 中断向量中断向量 硬件设备硬件设备 0 03232时钟时钟 1 13333键盘键盘 2 23434PICPIC级连级连 3 33535第二个串口第二个串口 4 43636第一个串口第一个串口 6 63838软盘软盘 8 84040系统时钟系统时钟 11 114343网络接口网络接口 12 124444PS/2 PS/2 鼠标鼠标 13 134545数学协处理器数学协处理器 14 144646EIDE EIDE

37、磁盘控制器的一级链磁盘控制器的一级链 15 154747EIDE EIDE 磁盘控制器的二级链磁盘控制器的二级链5.2.3 DMA(direct memory access)控制方式控制方式DMA控制方式的引入控制方式的引入 中断方式是以字节中断方式是以字节(字字)为单位进行为单位进行I/O的的,每完每完成一个字节成一个字节(字字)CPU要处理一次中断要处理一次中断,这种方法用这种方法用于块设备效率极低于块设备效率极低,为了进一步减少为了进一步减少CPU对对I/O的干的干预预,提高提高CPU与与I/O设备的并行读引入设备的并行读引入DMA控制方式。控制方式。DMA方式的特点为:方式的特点为:数

38、据传送的基本单位是数据块。数据传送的基本单位是数据块。数据是直接在设备数据是直接在设备内存之间传送的。内存之间传送的。仅在传送一个或多个数据块的开始和结束时才仅在传送一个或多个数据块的开始和结束时才需要需要CPU对对I/O的干预的干预,传送工作本身是由传送工作本身是由DMA控制器完成的。控制器完成的。DMA控制器的组成控制器的组成1)主机与主机与DMA控制器的接口控制器的接口数据寄存器数据寄存器(DR)内存地址寄存器内存地址寄存器(MAR)数据计数器数据计数器(DC)命令命令/状态寄存器状态寄存器(CR)2)DMA控制器与块设备的接口控制器与块设备的接口3)I/O控制逻辑控制逻辑DRMARDC

39、CRI/OI/O控控制制逻逻辑辑 块块设设备备接接口口控控制制器器与与内存内存CPUcoutDMA方式从磁盘读入数据块的工作流程方式从磁盘读入数据块的工作流程:P154 图图5-9 CPU将读命令发送到控制器的寄存器将读命令发送到控制器的寄存器CR将目标地址和数据计数送到将目标地址和数据计数送到MAR和和DC中中将磁盘的源地址送至它的将磁盘的源地址送至它的I/O控制逻辑上控制逻辑上启动启动DMA传送命令传送命令 先从磁盘读入数据字先从磁盘读入数据字送到送到DR再挪用存储器再挪用存储器周期将数据送到内存周期将数据送到内存存储器地址增加存储器地址增加1字计数器字计数器DC减减1DC=0请求中断请求

40、中断CPU做其他工作做其他工作CPU读读DMA的状态的状态CR继继续下条指令续下条指令响应响应中断中断NY DMA工作原理工作原理窃取总线控制权窃取总线控制权 存放输入数据的内存起始地址存放输入数据的内存起始地址、要传送的字节数送入要传送的字节数送入 DMA控制器的内存地址寄存器和传送字节计数器控制器的内存地址寄存器和传送字节计数器;中断允许位和启动位置成中断允许位和启动位置成1,启动设备。启动设备。发出传输要求进程进入等待状态发出传输要求进程进入等待状态,其他进程占据其他进程占据CPU。DMA控制器不断窃取总线控制权控制器不断窃取总线控制权,数据不断写入内存。数据不断写入内存。传送完毕传送完

41、毕,发出中断信号。发出中断信号。CPU接到中断信号转入中断处理程序处理。接到中断信号转入中断处理程序处理。中断处理结束中断处理结束,CPU返回原进程或切换到新的进程。返回原进程或切换到新的进程。DMA方式与中断的主要区别方式与中断的主要区别 中断方式的数据传送到存储器是由中断方式的数据传送到存储器是由CPU控制完成的。控制完成的。而而DMA方式的数据传送到存储器则不经过方式的数据传送到存储器则不经过CPU,由由DMA控制器直接完成。控制器直接完成。中断方式在设备控制器的数据缓冲寄存区满后中断方式在设备控制器的数据缓冲寄存区满后,发中发中断请求断请求,CPU进行中断处理将缓冲区数据传送到内存。进

42、行中断处理将缓冲区数据传送到内存。而而DMA方式则是在所要求传送的数据块全部传送到方式则是在所要求传送的数据块全部传送到内存结束时内存结束时,发中断请求发中断请求,CPU进行中断处理。进行中断处理。大大减少了大大减少了CPU进行中断处理的次数和时间。进行中断处理的次数和时间。DMA控制器按目标存储地址控制器按目标存储地址,从第一字从第一字(节节)开始开始,反反复进行数据传送复进行数据传送(窃取总线控制权窃取总线控制权),每传一字节每传一字节,计数计数器值减器值减1;直到值为直到值为0时时,发出中断请求发出中断请求,通知通知CPU操作完操作完成。成。CPU提供提供命令命令被读块磁盘地址被读块磁盘

43、地址目标存储地址目标存储地址待读取字节数待读取字节数DMA工作示例工作示例(以硬盘为例以硬盘为例)CPU发出命令后去处理其它任务。发出命令后去处理其它任务。MARDCCR内存内存CPUcout磁盘磁盘接口接口 DR 内存地址内存地址计数器计数器命令命令/状态状态I/OI/O控控制制逻逻辑辑5.2.4 I/O通道控制方式通道控制方式1.通道控制方式的引入通道控制方式的引入 DMA方式传送的是连续的数据块。当需要一次读方式传送的是连续的数据块。当需要一次读多个离散的数据块并将它们传送到不同的内存区域多个离散的数据块并将它们传送到不同的内存区域时。怎么办?时。怎么办?为了进一步减少为了进一步减少CP

44、U对对I/O的干预引入通道控制方的干预引入通道控制方式式,它是它是DMA方式的发展。方式的发展。DMA方式由控制器的方式由控制器的I/O控制逻辑来执行读、写控制逻辑来执行读、写等等I/O操作操作,只能传送一个连续的数据块。而通道方只能传送一个连续的数据块。而通道方式则由通道内的通道程序来指挥控制器并由控制器式则由通道内的通道程序来指挥控制器并由控制器执行执行I/O操作操作,比较灵活比较灵活,能传送多个连续数据块。能传送多个连续数据块。2.通道程序通道程序 通过执行通道程序通过执行通道程序,并与设备控制器共同完成对并与设备控制器共同完成对I/O设备的控制设备的控制,通道程序的每条指令含如下信息通

45、道程序的每条指令含如下信息:操作码操作码,内存地址内存地址,计数计数,结束位结束位P,记录结束记录结束R 通道可实现通道可实现CPU、通道和、通道和I/O设备三者并行工作。设备三者并行工作。例:例:操作操作 P R 计数计数 内存起始地址内存起始地址 Write 0 0 80 810 Write 0 0 140 1340 Write 0 1 60 5810 Write 0 1 300 2000 Write 0 0 250 1650 Write 1 1 250 2820课后题课后题P 181 2,4,6,8以一个具体的实例全面描述中断处理过程以一个具体的实例全面描述中断处理过程(如时钟中断、键盘

46、中断等等)。(如时钟中断、键盘中断等等)。以以ISA(或(或PCI)总线的)总线的DMA为例,说明为例,说明DMA的工作过程。的工作过程。(以上说明可以结合具体的操作系统)(以上说明可以结合具体的操作系统)5.3 缓冲管理缓冲管理为什么要使用缓冲?为什么要使用缓冲?由哪几种缓冲方式?由哪几种缓冲方式?缓冲区处在何处?缓冲区处在何处?缓冲区由谁管理?怎样管理?缓冲区由谁管理?怎样管理?5.3.1 为什么引入缓冲为什么引入缓冲 缓和缓和CPU与与 I/O设备速度不匹配的矛盾设备速度不匹配的矛盾 减少对减少对CPU的中断频率,放宽对中断响的中断频率,放宽对中断响应时间的限制。应时间的限制。提高提高C

47、PU和设备之间的并行性和设备之间的并行性5.3.2 I/O缓冲方式缓冲方式1.单缓冲单缓冲(Single Buffer)块设备输入时块设备输入时,输入到缓冲区的时间为输入到缓冲区的时间为T,OS将数据从缓冲区传到用户区的时间为将数据从缓冲区传到用户区的时间为M,CPU处理处理这块数据的时间为这块数据的时间为C;显然显然T和和C是可以并行的。是可以并行的。T1M1C1T2M2C2T3M3C3T4工作区工作区缓冲区缓冲区输入输入(T)传送传送(M)I/O设备设备处理处理(C)用户进程用户进程 字符设备输入输出时字符设备输入输出时,缓冲区用于暂存一行数据。缓冲区用于暂存一行数据。2.双缓冲双缓冲(D

48、oubel Buffer)为了加快为了加快I/O速度提高设备利用率速度提高设备利用率,又引入了双又引入了双缓冲机制缓冲机制(缓冲对换缓冲对换 Buffer Swapping);如果如果CspeflagsCSeipediesiebpespebxedxecxeaxpushfpushamovl%esp,kernel_spmovl pcb-sp,%esppopairetstack pointerInterrupt Servicing1.CPU pushes eflags,CS,eip onto stack 2.Push process context onto stack pusha 3.Save s

49、tack pointer in PCB movl%esp,proc_stack 4.Load kernel stack pointer movl kern_stack,%esp 5.Recover kernel context from stack popa;popf 6.Return to dispatcher Process KernelReturn addressebpeflagsediesiebpebxedxecxeax&PCBkernel_sppcb-speflagsCSeipediesiebpebxedxecxeaxpushfpushamovl%esp,kernel_spmovl

50、pcb-sp,%esppopairetstack pointerpushamovl%esp,pcb-spmovl kernel_sp,%esppopapopf5.5.4 Linux设备管理设备管理 提供一个统一而简单的提供一个统一而简单的I/O系统调用接口。系统调用接口。I/O子系统可分为上下两部分:子系统可分为上下两部分:下层下层:与设备有关的称为设备驱动程序。与设备有关的称为设备驱动程序。上层上层:与设备无关的与设备无关的,根据根据I/O请求请求,通过通过特定设备驱动程序接口特定设备驱动程序接口,与设备进行通信。与设备进行通信。一、设备驱动程序基础一、设备驱动程序基础总线总线I/O空间空间

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁