[精选]new第5章设备管理.pptx

上传人:lil****205 文档编号:92222855 上传时间:2023-06-01 格式:PPTX 页数:158 大小:751.86KB
返回 下载 相关 举报
[精选]new第5章设备管理.pptx_第1页
第1页 / 共158页
[精选]new第5章设备管理.pptx_第2页
第2页 / 共158页
点击查看更多>>
资源描述

《[精选]new第5章设备管理.pptx》由会员分享,可在线阅读,更多相关《[精选]new第5章设备管理.pptx(158页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、BootingPostBIOSPartition boot programLoaderOSROMRAMPOWERONCMOSAdapted from:Operating Systems 3rd Edition,Gary Nutt第五章第五章 设备管理设备管理MANAGING I/O DEVICES1、没有、没有I/O设备的计算机就像一个没有设备的计算机就像一个没有轮子的汽车轮子的汽车I/O管理的重要性管理的重要性2.I/O2.I/O性能经常成为系统性能的瓶颈性能经常成为系统性能的瓶颈1 1CPUCPU性能不等于系统性能,响应时间性能不等于系统性能,响应时间也是一个重要因素也是一个重要因素2 2

2、CPUCPU性能越高,与性能越高,与I/OI/O差距越大差距越大 弥补:更多的进程弥补:更多的进程3 3进程切换多,系统开销大进程切换多,系统开销大3.3.操作系统庞大复杂的原因之一是:资源操作系统庞大复杂的原因之一是:资源多、杂,并发,均来自多、杂,并发,均来自I/OI/O4.4.理解理解I/OI/O的工作过程与结构是理解操作系的工作过程与结构是理解操作系统的工作过程与结构的关键统的工作过程与结构的关键5.I/O5.I/O技术很实用技术很实用6.6.与其他功能联系密切,特别是文件系统与其他功能联系密切,特别是文件系统5.1 I/O系统的组成系统的组成5.2 I/O 控制方式控制方式5.3 缓

3、冲管理缓冲管理5.4 设备分配设备分配5.5 设备驱动设备驱动5.6 磁盘存取设备管理磁盘存取设备管理本章内容5.1 I/O系统的组成系统的组成 5.1.1 I/O 设备分类设备分类1.1.按使用特性分按使用特性分 存储型设备存储型设备 输入型设备输入型设备外设外设主机主机 输出型设备主机输出型设备主机外设外设 输入输出型设备输入输出型设备2.2.按信息交换的单位分按信息交换的单位分 块设备块设备以数据块为单位存储、传输信息以数据块为单位存储、传输信息 字符设备字符设备以字符为单位存储、传输信息以字符为单位存储、传输信息3.3.按外部设备的附属关系分按外部设备的附属关系分 系统设备系统设备指操

4、作系统生成时,登记在指操作系统生成时,登记在系统中的标准设备系统中的标准设备 如终端、打印机、磁盘机等如终端、打印机、磁盘机等3.3.按外部设备的附属关系分按外部设备的附属关系分用户设备用户设备指在系统生成时,未登记在系指在系统生成时,未登记在系统中的非标准设备。对于这类设备的处理程统中的非标准设备。对于这类设备的处理程序由用户提供,并将其纳入系统,由系统代序由用户提供,并将其纳入系统,由系统代替用户实施管理。替用户实施管理。如如A/DA/D,D/AD/A转换器,转换器,CADCAD所用专用设备所用专用设备4.按传输速率按传输速率:低速低速100KB/s5.5.按资源分配角度分按资源分配角度分

5、独占设备独占设备在一段时间内只能有一个进在一段时间内只能有一个进程使用的设备,一般为低速程使用的设备,一般为低速I/OI/O设备。如设备。如打印机,磁带等打印机,磁带等共享设备共享设备在一段时间内可有多个进程在一段时间内可有多个进程共同使用的设备,多个进程以交叉的方式共同使用的设备,多个进程以交叉的方式来使用设备,其资源利用率高。如硬盘来使用设备,其资源利用率高。如硬盘虚设备虚设备在一类设备上模拟另一类设备,在一类设备上模拟另一类设备,常用共享设备模拟独占设备,用高速设备常用共享设备模拟独占设备,用高速设备模拟低速设备,被模拟的设备称为虚设备。模拟低速设备,被模拟的设备称为虚设备。将慢速的独占

6、设备改造成多个用户可共将慢速的独占设备改造成多个用户可共享的设备,提高设备的利用率享的设备,提高设备的利用率为了提高资源利用率,如为了提高资源利用率,如SPOOLingSPOOLing技术就技术就使用了虚设备技术使用了虚设备技术用硬盘模拟输入输用硬盘模拟输入输出设备。出设备。SPOOLingSPOOLing技术技术 为解决独立设备数量少,速度慢,不能为解决独立设备数量少,速度慢,不能满足众多进程的要求,而且在进程独占设满足众多进程的要求,而且在进程独占设备期间,设备利用率比较低而提出的一种备期间,设备利用率比较低而提出的一种设备管理技术设备管理技术5.1.2 设备控制器设备控制器设备组成设备组

7、成I IO O设备一般由机械和电子两局部组成设备一般由机械和电子两局部组成把这两局部分开处理,以提供更加模块化,把这两局部分开处理,以提供更加模块化,更加通用的设计更加通用的设计1.1.设备设备 机械局部是设备本身机械局部是设备本身2.2.设备控制器设备控制器 电子局部叫做设备控制器或适配器。电子局部叫做设备控制器或适配器。在小型和微型机中,它常采用印刷电在小型和微型机中,它常采用印刷电路卡插入计算机中路卡插入计算机中 控制器卡上通常有一个插座,通过电缆与控制器卡上通常有一个插座,通过电缆与设备相连设备相连 控制器和设备之间的接口是一个标准接口,控制器和设备之间的接口是一个标准接口,它符合它符

8、合ANSIANSI、IEEEIEEE或或ISOISO这样的国际标准这样的国际标准I/OI/O模块的一般结构模块的一般结构I/O 逻辑数据存放器数据存放器状态状态/控制存放器控制存放器外部设备界面接口外部设备界面接口.系统接口外设接口数据线数据线地址线地址线控制线控制线数据数据 状态状态 控制控制数据数据 状态状态 控制控制数据信号线数据信号线设备到控制器的接口设备到控制器的接口I/O 设备设备状态信号线状态信号线控制信号线控制信号线控制逻辑控制逻辑转换器转换器缓冲缓冲到设备到设备控制器控制器5.1.2 设备控制器设备控制器 控制器是控制器是CPU与与I/O设备之间的接口;设备之间的接口;接收从

9、接收从CPU发来的命令发来的命令,并控制并控制I/O设备工作。设备工作。控制器是一个可编址设备控制器是一个可编址设备,例如例如PC中硬盘控中硬盘控制器的制器的I/O端口地址为端口地址为1F01F7。从物理上看从物理上看,控制器是一块接口卡或主板上控制器是一块接口卡或主板上的一个功能模块。的一个功能模块。1.设备控制器的组成设备控制器的组成数据线数据线控制器与设备接口控制器与设备接口CPU与控制器接口与控制器接口控制器控制器与设备与设备接口接口1地址线地址线控制线控制线I/OI/O控控制逻辑制逻辑控制器控制器与设备与设备接口接口i数据数据控制控制控制控制/状态状态R数据寄存器数据寄存器状态状态数

10、据数据控制控制状态状态.I/OI/O设备的编址:设备的编址:为了为了CPUCPU便于对便于对I/OI/O设备进行寻址和选设备进行寻址和选择择,必须给众多的必须给众多的I/OI/O设备进行编址设备进行编址,也也就是给每一台设备规定一些地址码就是给每一台设备规定一些地址码,称称为设备号或设备代码为设备号或设备代码.有两种寻址方法有两种寻址方法 专设专设I/OI/O指令指令.例指令例指令ININ完成输入完成输入,指令指令OUTOUT完成输出完成输出操作操作.其地址码指出其地址码指出I/OI/O设备的设备代设备的设备代码码.这是这是I/OI/O空间独立于存储器空间的空间独立于存储器空间的情况情况,即设

11、备码的编码和存储器的存储即设备码的编码和存储器的存储单元的编码是平行存在的单元的编码是平行存在的.利用访存取数利用访存取数/存数指令完成存数指令完成I/OI/O功能功能.使用这种方法时使用这种方法时,从主存的地址空间中分从主存的地址空间中分出一局部地址码作为出一局部地址码作为I/OI/O的设备代码的设备代码,当当访问到这些地址时访问到这些地址时,表示被访的不是主存表示被访的不是主存储器储器,而是而是I/OI/O设备存放器设备存放器例如例如,设备的数据缓冲器或设备的状态设备的数据缓冲器或设备的状态存放器存放器.这时这时I/OI/O空间和存储器空间是空间和存储器空间是合在一起的合在一起的,即即I/

12、OI/O设备和存储单元是统设备和存储单元是统一编址的一编址的.80X8680X86是有专门的是有专门的I/OI/O指令指令,直接寻址设备码直接寻址设备码可达可达512512个个.输入输出设备占用地址数地址码16进制硬盘控制器1632032FH软盘控制器83F03F7H单色显示器/并行打印机163B03BFH彩色图形显示器163D03DFH异步通信控制器83F83FFH 操作系统将命令写入控制器存放器中,操作系统将命令写入控制器存放器中,以实现输入输出以实现输入输出 例如:例如:IBM PCIBM PC的软盘控制器可接收的软盘控制器可接收1515条命条命令,令,READREAD、WRITEWRI

13、TE、FORMATFORMAT、SEEKSEEK、RECALIBRATERECALIBRATE,命令可以带参数。它们被,命令可以带参数。它们被一起送入控制器的存放器中一起送入控制器的存放器中当控制器接受一条命令后,可独立于当控制器接受一条命令后,可独立于CPUCPU完成指定操作,完成指定操作,CPUCPU可以转去执行其它运可以转去执行其它运算。算。命令完成时,控制器产生一个中断,命令完成时,控制器产生一个中断,CPUCPU响应中断,控制转给操作系统。响应中断,控制转给操作系统。CPUCPU通过读控制器存放器中的信息,获得通过读控制器存放器中的信息,获得操作结果和设备状态操作结果和设备状态2.设

14、备控制器的功能设备控制器的功能 地址识别地址识别:识别识别I/O端口地址端口地址,使使I/O操作与设备对应。操作与设备对应。接收和识别命令指挥设备执行接收和识别命令指挥设备执行 接收接收CPU通过通过I/O总线发来的命令和参数总线发来的命令和参数,存储在存储在控制器中相应的控制存放器中控制器中相应的控制存放器中,并对它进行译码识别并对它进行译码识别,转换成适当的电信号转换成适当的电信号,通过控制器与设备的接口向设通过控制器与设备的接口向设备发送备发送,指挥设备执行特定的操作。指挥设备执行特定的操作。接收和记录设备的状态接收和记录设备的状态 接收从设备发来的电信号接收从设备发来的电信号,进行转换

15、和解释进行转换和解释,变为变为设备的状态信息设备的状态信息,将此结果记录在控制器的状态存放将此结果记录在控制器的状态存放器上器上,供供CPU了解。了解。数据交换、数据缓冲、过失控制数据交换、数据缓冲、过失控制 实现实现CPU控制器控制器设备的数据交换设备的数据交换,从而实现了从而实现了CPU到设备的数据传递和设备到到设备的数据传递和设备到CPU的数据传递。的数据传递。举例举例:典型的设备控制器是磁盘控制器典型的设备控制器是磁盘控制器,它从它从I/O总线上总线上接收发来的诸如接收发来的诸如“写这个数据块之类的高级命令写这个数据块之类的高级命令,并对它进行译码识别并对它进行译码识别,转换成诸如转换

16、成诸如“把磁头定位在正把磁头定位在正确的磁道上和确的磁道上和“把数据写入这个磁道之类的低级把数据写入这个磁道之类的低级磁盘操作的电信号磁盘操作的电信号,指挥磁盘驱动器执行这些操作指挥磁盘驱动器执行这些操作,每每执行一步都要将磁盘驱动器的发来的电信号进行转换执行一步都要将磁盘驱动器的发来的电信号进行转换和解释和解释,变为设备的数据状态信息变为设备的数据状态信息,将此结果记录在将此结果记录在控制器的状态存放器上控制器的状态存放器上,供供CPU了解。了解。CPU根据此状根据此状态信息确定下一步如何操作。态信息确定下一步如何操作。枢轴 柱面扇柱面磁道扇区磁头移动臂梁5.1.3 I/O通道通道引入通道的

17、目的引入通道的目的引入通道的目的引入通道的目的:为了使CPU从I/O事务中解脱出来,同时为了提高CPUCPU与设备,设备与与设备,设备与与设备,设备与与设备,设备与设备设备设备设备之间的并行工作能力原理原理原理原理:执行通道程序,向控制器发出命令,并具有向CPU发中断信号的功能功能功能功能。一旦CPU发出指令,启动通道,则通道独立独立独立独立于CPU工作。一个通道可连接多个控制器,一个控制器可连接多个设备,形成树形交叉连接 通道程序:通道程序:I/OI/O处理机:处理机:由运算和控制逻辑,累加器,存放器构成,有指令系统,由通道程序控制。通道程序:通道程序:由通道指令组成;由CPU按数据传送的不

18、同要求自动生成;放在主存中;其在主存中的起始地址通知I/O处理机:目态目态程序管态I/O管理程序通道运行通道程序请求I/O 转管指令编制通道程序启动通道组织I/O操作I/O操作结束向CPU发出中断请求响应I/O 中断请求登记或例外情况处理CPUt 管理程序管理程序管理程序管理程序根据用户提供的参数设备号、交换信息的起址、交换的字节数编制通道程序;将其放在内存的相应缓冲区中,起址CAW置于通道存放器中;执行“启动I/O指令SIO 使通道进入通道选择期通道选择期选择通道、子通道、设备控制器及设备,寻找并启动相应的外部设备。通道被启动后,CPU退出管态,返回目态继续执行目标程序,而通道则按照通道程序

19、的要求组织整个I/O操作,进入数据传输期数据传输期,开始控制内存与设备之间的直接数据交换,直到数据传输结束或出现非正常结束才由CPU处理。系统中还可以同时有多个通道分别运行自己的通道程序,控制所属的I/O操作,实现通道与通道、设备与设备之间的全方位并行。通道类型通道类型字节多路通道:字节多路通道:连接大量慢速外围设备而设置的,它可以分时分时分时分时地执行多个通道程序当一个通道程序控制控制控制控制某台设备传送一个字节后,通道硬件就控制转去执行控制转去执行控制转去执行控制转去执行另一个通道程序,控制另一台设备传送信息主要连接以字节为单位的低速字节为单位的低速字节为单位的低速字节为单位的低速I/OI

20、/O设备设备设备设备。如打印机,终端。以字节为单位交叉传输,当一台传送一个字节后,立即转去为另一台传送字节通道类型通道类型 选择通道选择通道选择通道:选择通道:以成组方式工作的,即每次传送一批数据,故传送速度很高。在这段时间内只能为一台设备效劳。当这台设备数据传输完成后,再选择与通道连接的另一台设备。主要连接磁盘,磁带等高速I/O设备。通道类型通道类型成组多路通道:成组多路通道:它结合了选择通道传送速度高和字节多路通道能进行分时并行操作的优点。它先为一台设备执行一条通道指令,然后自动转接,为另一台设备执行一条通道指令。主要连接高速设备。数据多路通道实际上实际上实际上实际上是对通道程序采用多道程

21、序设计的硬件实现。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设备设备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、内存、外设等相互连接,

22、且连接是共享的 好处:好处:低成本一线多用、灵活性易于增加设备,总线的缺点:总线的缺点:本身形成了通讯瓶颈,限制I/O吞吐量总线分类:总线分类:数据总线、地址总线、控制总线引入原因:引入原因:在设备与主机的硬连接上,引入总线,节省连线并提供配置扩充与改变时的灵活性;5.1.4 总线系统总线系统定义定义定义定义 总线上连接计算机各个部件的通信线路和总线上连接计算机各个部件的通信线路和相关的控制电路。相关的控制电路。是微处理器芯片对外引线信号的延伸或映射,是微处理器芯片对外引线信号的延伸或映射,是微处理器与片外存储器及是微处理器与片外存储器及I/0I/0接口传输信息的接口传输信息的通路。系统总线信

23、号按功能可分为三类:通路。系统总线信号按功能可分为三类:地址总线地址总线Where:指出数据的来源与去:指出数据的来源与去向。地址总线的位数决定了存储空间的大小。向。地址总线的位数决定了存储空间的大小。数据总线数据总线What提供模块间传输数据的提供模块间传输数据的路径,数据总线的位数决定微处理器结构的路径,数据总线的位数决定微处理器结构的复杂度及总体性能。复杂度及总体性能。控制总线控制总线When:提供系统操作所必需:提供系统操作所必需的控制信号,对操作过程进行控制与定时。的控制信号,对操作过程进行控制与定时。微机中常用总线:ISAISA总线:总线:总线:总线:工业标准总线,也叫工业标准总线

24、,也叫ATAT总线,数总线,数据据1616位位EISAEISA总线:总线:总线:总线:扩展的工业标准总线与扩展的工业标准总线与ISAISA总线总线兼容,数据线兼容,数据线3232位位 VESA VESA总线:总线:总线:总线:19911991年推出的年推出的3232位局部总线。位局部总线。PCIPCI总线:总线:总线:总线:局部总线标准,数据线局部总线标准,数据线32-6432-64位。位。PC系统总线开展PC/XT总线是总线是8位总线标准位总线标准AT总线提高到总线提高到16位位,增加了增加了C,D插座插座CPU与控制器间通讯:与控制器间通讯:单总线模型微机、小型机多总线模型中、大型机控制器

25、与控制器与设备接口设备接口磁盘控制器磁盘控制器打印机控制器打印机控制器磁盘磁盘驱动器驱动器打印机打印机内存内存CPU 扩充总线:亦称设备总线,用于系统扩充总线:亦称设备总线,用于系统I/O扩充。扩充。与系统总线工作频率不同,经接口电路对系统与系统总线工作频率不同,经接口电路对系统总统信号缓冲、变换、隔离,进行不同层次的总统信号缓冲、变换、隔离,进行不同层次的操作操作ISA、EISA、MCA 局部总线:扩充总线不能满足高性能设备局部总线:扩充总线不能满足高性能设备图形、视频、网络接口的要求,在系统总线图形、视频、网络接口的要求,在系统总线与扩充总线之间插入一层总线。由于它经桥接与扩充总线之间插入

26、一层总线。由于它经桥接器与系统总线直接相连,因此称之为局部总线器与系统总线直接相连,因此称之为局部总线PCI。总线操作总线操作总线一个操作过程是完成两个模块之间传总线一个操作过程是完成两个模块之间传送信息,启动操作过程的是主模块,另外送信息,启动操作过程的是主模块,另外一个是从模块。某一时刻总线上只能有一一个是从模块。某一时刻总线上只能有一个主模块占用总线。个主模块占用总线。总线的操作步骤:总线的操作步骤:主模块申请总线控制权,总线控制器进行主模块申请总线控制权,总线控制器进行裁决。裁决。主模块得到总线控制权后寻址从模块,主模块得到总线控制权后寻址从模块,从模块确认后进行数据传送。从模块确认后

27、进行数据传送。数据传送的错误检查。数据传送的错误检查。5.2 I/O 控制方式控制方式 程序程序I/O方式方式 中断驱动中断驱动I/O控制方式控制方式 DMA控制方式控制方式 I/O通道控制方式通道控制方式5.2.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

28、)完成?完成?NY下条指令下条指令从从输入机读输入机读字到字到控制器控制器数据寄存器数据寄存器5.2.2 中断驱动中断驱动I/O 控制方式控制方式 当某进程要启动某个当某进程要启动某个I/O设备工作时设备工作时,便由便由CPU向向相应的设备控制器发出一条相应的设备控制器发出一条I/O指令指令,然后立即返回继然后立即返回继续继续执行原来的任务。设备控制器便按该指令的要续继续执行原来的任务。设备控制器便按该指令的要求去控制指定的求去控制指定的I/O设备。此时设备。此时,CPU可以去做其它事可以去做其它事情与情与I/O设备并行工作。设备并行工作。例如例如,在输入时在输入时,当设备控制器收到当设备控制

29、器收到CPU 发来的发来的读命令后读命令后,便去控制相应的输入设备读数据。数据进便去控制相应的输入设备读数据。数据进入数据存放器后入数据存放器后,设备控制器通过设备控制器通过中断控制器和中断控制器和控制控制总线向总线向CPU发出中断信号发出中断信号,CPU响应中断响应中断,读读设备设备控控制器状态检查是否出错制器状态检查是否出错,假设无错假设无错,则通过数据总线则通过数据总线从从设备设备控制器中读出控制器中读出数据数据,写入存储器。写入存储器。P152 图图5-7bCPUI/OI/O CPUI/O CPUCPU 内存内存向向I/O控制器发读命令启动输入机控制器发读命令启动输入机读读I/O控制器

30、状态控制器状态检查状态检查状态就绪就绪出错出错从从I/O控制器中读字控制器中读字向存储器中写字向存储器中写字P152 图图5-7(b)完成?完成?NY下条指令下条指令从从输入机读输入机读字到字到控制器控制器数据寄存器数据寄存器CPU作其它事作其它事响应中断响应中断中断请求中断请求中断控制器执行的操作中断控制器执行的操作1.监视监视IRQ线线,检查出现的中断信号。检查出现的中断信号。2.如果在如果在IRQ线上出现了一个中断信号:线上出现了一个中断信号:a.把接受到的信号转换成一个对应的中断向量。把接受到的信号转换成一个对应的中断向量。b.将中断向量存入中断控制器的一个将中断向量存入中断控制器的一

31、个I/O端口端口,允许允许CPU读中断向量。读中断向量。c.控制器向处理器的控制器向处理器的INTR引脚发出一个中断。引脚发出一个中断。d.等待等待,收到收到CPU发出中断应答信号发出中断应答信号,将中断向量放到数据线上,清将中断向量放到数据线上,清INTR线。线。3.返回到第一步。返回到第一步。CPU 根据中断向量去执行中断效劳子程序根据中断向量去执行中断效劳子程序中断硬件机构采用级连的中断硬件机构采用级连的8259A实现实现Linux的中断机制的中断机制 中断控制器包含的存放器:中断控制器包含的存放器:一个状态存放器一个状态存放器I/O地址地址0 x20、0 xa0:实时记录设备的中断请求

32、情况。初始时全为实时记录设备的中断请求情况。初始时全为0 一个屏蔽存放器一个屏蔽存放器I/O地址地址0 x21、0 xa1:每位对应一个设备,每位对应一个设备,0-允许,允许,1-屏蔽屏蔽 通过读取状态存放器的值了解设备的中断情况通过读取状态存放器的值了解设备的中断情况 设备驱动程序建立联系设备驱动程序建立联系 Linux 为了将来自硬件设备的中断传递到相应的为了将来自硬件设备的中断传递到相应的设备驱动程序设备驱动程序,在驱动程序初始化的时在驱动程序初始化的时,就将其对应的就将其对应的中断程序进行了登记。中断程序进行了登记。通过调用函数通过调用函数 request_irq 将其中断信息添加将其

33、中断信息添加到结构为到结构为 irqaction 的数组中的数组中,从而使中断号和中断效从而使中断号和中断效劳子程序联系起来。劳子程序联系起来。request_irq 函数原形函数原形int request_irq unsigned int irq,/*中断请求号中断请求号 */void*handlerint,void*,struct pt_regs*,/*指向中断效劳子程序指向中断效劳子程序*/unsigned long irqflags,/*中断类型中断类型*/const char*devname,/*设备的名字设备的名字*/void*dev_id /*设备标识符设备标识符*/;中断描述符

34、表中断描述符表IDT 中断效劳程序及异常处理程序的入口地址依照中中断效劳程序及异常处理程序的入口地址依照中断断 源位置组成源位置组成IDT表表,入口地址就是中断门中断向量。入口地址就是中断门中断向量。Linux IDT表共有表共有 256个中断向量个中断向量,即即0至至255,其中其中0到到 31由由Intel公司留给异常事件处理程序。公司留给异常事件处理程序。CPU根据根据IDT表和中断源表和中断源,可转入相应的中断效劳程序可转入相应的中断效劳程序中断处理程序执行的四个基本操作中断处理程序执行的四个基本操作 在内核栈中保存在内核栈中保存IRQ的值和存放器的内容。的值和存放器的内容。为正在给为

35、正在给 IRQ 线效劳的线效劳的 PIC 发送一个应答发送一个应答,这将允许这将允许 PIC 进一步发出中断。进一步发出中断。执行共享这个执行共享这个IRQ的所有设备的中断效劳例程的所有设备的中断效劳例程ISR 跳到跳到ret_from_intr 的地址后中断结束。的地址后中断结束。把把IRQIRQ分配给分配给I/OI/O设备的一个例子设备的一个例子IRQIRQ 中断向量中断向量 硬件设备硬件设备 0 03232时钟时钟 1 13333键盘键盘 2 23434PICPIC级连级连 3 33535第二个串口第二个串口 4 43636第一个串口第一个串口 6 63838软盘软盘 8 84040系统

36、时钟系统时钟 11 114343网络接口网络接口 12 124444PS/2 PS/2 鼠标鼠标 13 134545数学协处理器数学协处理器 14 144646EIDE EIDE 磁盘控制器的一级链磁盘控制器的一级链 15 154747EIDE EIDE 磁盘控制器的二级链磁盘控制器的二级链5.2.3 DMAdirect memory access控制控制方式方式DMA控制方式的引入控制方式的引入 中断方式是以字节字为单位进行中断方式是以字节字为单位进行I/O的的,每每完成一个字节字完成一个字节字 CPU要处理一次中断要处理一次中断,这种方这种方法用于块设备效率极低法用于块设备效率极低,为了进

37、一步减少为了进一步减少CPU对对I/O的干预的干预,提高提高CPU与与I/O设备的并行读引入设备的并行读引入DMA控制控制方式。方式。DMA方式的特点为:方式的特点为:数据传送的基本单位是数据块。数据传送的基本单位是数据块。数据是直接在设备数据是直接在设备内存之间传送的。内存之间传送的。仅在传送一个或多个数据块的开始和结束时才仅在传送一个或多个数据块的开始和结束时才需要需要CPU对对I/O的干预的干预,传送工作本身是由传送工作本身是由DMA控控制器完成的。制器完成的。DMA控制器的组成控制器的组成1)主机与主机与DMA控制器的接口控制器的接口数据存放器数据存放器DR 内存地址存放器内存地址存放

38、器MAR数据计数器数据计数器DC 命令命令/状态存放器状态存放器CR 2)DMA控制器与块设备的接口控制器与块设备的接口3)I/O控制逻辑控制逻辑DRMARDCCRI/OI/O控控制制逻逻辑辑 块设备接口块设备接口控制器与控制器与内存内存CPUcoutDMA方式从磁盘读入数据块的工作流程方式从磁盘读入数据块的工作流程:P154 图图5-9 CPU将读命令发送到控制器的寄存器将读命令发送到控制器的寄存器CR将目标地址和数据计数送到将目标地址和数据计数送到MAR和和DC中中将磁盘的源地址送至它的将磁盘的源地址送至它的I/O控制逻辑上控制逻辑上启动启动DMA传送命令传送命令 先从磁盘读入数据字先从磁

39、盘读入数据字送到送到DR再挪用存储器再挪用存储器周期将数据送到内存周期将数据送到内存存储器地址增加存储器地址增加1字计数器字计数器DC减减1DC=0请求中断请求中断CPU做其他工作做其他工作CPU读读DMA的状态的状态CR继继续下条指令续下条指令响应响应中断中断NY DMA工作原理工作原理窃取总线控制权窃取总线控制权 存放输入数据的内存起始地址存放输入数据的内存起始地址、要传送的字节数送入要传送的字节数送入 DMA控制器的内存地址存放器和传送字节计数器控制器的内存地址存放器和传送字节计数器;中断允许位和启动位置成中断允许位和启动位置成1,启动设备。启动设备。发出传输要求进程进入等待状态发出传输

40、要求进程进入等待状态,其他进程占据其他进程占据CPU。DMA控制器不断窃取总线控制权控制器不断窃取总线控制权,数据不断写入内存。数据不断写入内存。传送完毕传送完毕,发出中断信号。发出中断信号。CPU接到中断信号转入中断处理程序处理。接到中断信号转入中断处理程序处理。中断处理结束中断处理结束,CPU返回原进程或切换到新的进程。返回原进程或切换到新的进程。DMA方式与中断的主要区别方式与中断的主要区别 中断方式的数据传送到存储器是由中断方式的数据传送到存储器是由CPU控制完成的。控制完成的。而而DMA方式的数据传送到存储器则不经过方式的数据传送到存储器则不经过CPU,由由DMA控制器直接完成。控制

41、器直接完成。中断方式在设备控制器的数据缓冲存放区满后中断方式在设备控制器的数据缓冲存放区满后,发中发中断请求断请求,CPU进行中断处理将缓冲区数据传送到内存。进行中断处理将缓冲区数据传送到内存。而而DMA方式则是在所要求传送的数据块全部传送到方式则是在所要求传送的数据块全部传送到内存结束时内存结束时,发中断请求发中断请求,CPU进行中断处理。进行中断处理。大大减少了大大减少了CPU进行中断处理的次数和时间。进行中断处理的次数和时间。DMA控制器按目标存储地址控制器按目标存储地址,从第一字从第一字 节开始节开始,反复进行数据传送窃取总线控制权反复进行数据传送窃取总线控制权,每传一字节每传一字节,

42、计数器值减计数器值减1;直到值为直到值为0时时,发出中断请求发出中断请求,通知通知CPU操操作完成。作完成。CPU提供提供命令命令被读块磁盘地址被读块磁盘地址目标存储地址目标存储地址待读取字节数待读取字节数DMA工作例如工作例如以硬盘为例以硬盘为例 CPU发出命令后去处理其它任务。发出命令后去处理其它任务。MARDCCR内存内存CPUcout磁盘磁盘接口接口 DR 内存地址内存地址计数器计数器命令命令/状态状态I/OI/O控控制制逻逻辑辑5.2.4 I/O通道控制方式通道控制方式1.通道控制方式的引入通道控制方式的引入 DMA方式传送的是连续的数据块。当需要一次读方式传送的是连续的数据块。当需

43、要一次读多个离散的数据块并将它们传送到不同的内存区域多个离散的数据块并将它们传送到不同的内存区域时。怎么办?时。怎么办?为了进一步减少为了进一步减少CPU对对I/O的干预引入通道控制方的干预引入通道控制方式式,它是它是DMA方式的开展。方式的开展。DMA方式由控制器的方式由控制器的I/O控制逻辑来执行读、写控制逻辑来执行读、写等等I/O操作操作,只能传送一个连续的数据块。而通道方只能传送一个连续的数据块。而通道方式则由通道内的通道程序来指挥控制器并由控制器式则由通道内的通道程序来指挥控制器并由控制器执行执行I/O操作操作,比较灵活比较灵活,能传送多个连续数据块。能传送多个连续数据块。2.通道程

44、序通道程序 通过执行通道程序通过执行通道程序,并与设备控制器共同完成对并与设备控制器共同完成对I/O设备的控制设备的控制,通道程序的每条指令含如下信息通道程序的每条指令含如下信息:操作码操作码,内存地址内存地址,计数计数,结束位结束位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

45、1 1 250 2820课后题课后题P 181 2,4,6,8以一个具体的实例全面描述中断处理过程以一个具体的实例全面描述中断处理过程如时钟中断、键盘中断等等。如时钟中断、键盘中断等等。以以ISA或或PCI总线的总线的DMA为例,说明为例,说明DMA的工作过程。的工作过程。以上说明可以结合具体的操作系统以上说明可以结合具体的操作系统5.3 缓冲管理缓冲管理为什么要使用缓冲?为什么要使用缓冲?由哪几种缓冲方式?由哪几种缓冲方式?缓冲区处在何处?缓冲区处在何处?缓冲区由谁管理?怎样管理?缓冲区由谁管理?怎样管理?5.3.1 为什么引入缓冲为什么引入缓冲 缓和缓和CPU与与 I/O设备速度不匹配的矛

46、盾设备速度不匹配的矛盾 减少对减少对CPU的中断频率,放宽对中断响的中断频率,放宽对中断响应时间的限制。应时间的限制。提高提高CPU和设备之间的并行性和设备之间的并行性5.3.2 I/O缓冲方式缓冲方式1.单缓冲单缓冲Single Buffer 块设备输入时块设备输入时,输入到缓冲区的时间为输入到缓冲区的时间为T,OS将数据从缓冲区传到用户区的时间为将数据从缓冲区传到用户区的时间为M,CPU处理处理这块数据的时间为这块数据的时间为C;显然显然T和和C是可以并行的。是可以并行的。T1M1C1T2M2C2T3M3C3T4工作区工作区缓冲区缓冲区输入输入(T)传送传送(M)I/O设备设备处理处理(C

47、)用户进程用户进程 字符设备输入输出时字符设备输入输出时,缓冲区用于暂存一行数据。缓冲区用于暂存一行数据。2.双缓冲双缓冲Doubel Buffer 为了加快为了加快I/O速度提高设备利用率速度提高设备利用率,又引入了双又引入了双缓冲机制缓冲对换缓冲机制缓冲对换 Buffer Swapping;如果如果CspeflagsCSeipediesiebpespebxedxecxeaxpushfpushamovl%esp,kernel_spmovl pcb-sp,%esppopairetstack pointerInterrupt Servicing1.CPU pushes eflags,CS,eip

48、 onto stack 2.Push process context onto stack pusha 3.Save stack 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-speflag

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

50、接口特定设备驱动程序接口,与设备进行通信。与设备进行通信。一、设备驱动程序基础一、设备驱动程序基础总线总线I/O空间空间I/O数据传送数据传送字符设备与块设备字符设备与块设备主设备号与次设备号主设备号与次设备号设备文件设备文件设备驱动程序接口设备驱动程序接口1.总线总线 CPU和和I/O设备是通过总线连接起来的。设备是通过总线连接起来的。总线定义了设备之间进行通讯的协议;总线定义了设备之间进行通讯的协议;遵循同一种协议的硬件可在同一条遵循同一种协议的硬件可在同一条 总线上协调工作。总线上协调工作。常用常用PC总线:总线:ISA、VESA、EISA、PCI等。等。2.I/O空间空间 计算机的计算

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

当前位置:首页 > 技术资料 > 其他杂项

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com