




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第六章输入输出系统6.1I/O系统系统的功能、模型和接口的功能、模型和接口6.2I/O设备和设备控制器设备和设备控制器6.3中断机构和中断处理程序中断机构和中断处理程序6.4设备驱动程序设备驱动程序6.5与设备无关的与设备无关的I/O软件软件6.6用户层用户层I/O软件软件6.7 缓冲区管理缓冲区管理6.8 磁盘存储器的性能和调度磁盘存储器的性能和调度6.1I/O系的系的功能、模型和功能、模型和接口接口6.1.1 I/O系统的基本功能1)隐藏物理设备的细节)隐藏物理设备的细节2)与设备无关性)与设备无关性 用户命令只需提供逻辑设备名用户命令只需提供逻辑设备名3)提高处理机和)提高处理机和I/O
2、设备的利用率设备的利用率 尽可能让尽可能让CPU和和I/O设备并行操作设备并行操作4)对)对I/O设备进行控制设备进行控制可编程可编程I/O,中断中断I/O,DMA,通道通道I/O5)确保对设备的正确共享)确保对设备的正确共享 独占设备、共享设备独占设备、共享设备6)错误错误处理处理 临时性错误:重新操作临时性错误:重新操作永久性错误:向上层软件报告永久性错误:向上层软件报告1.方便用户使用方便用户使用I/O设备设备2.提高提高CPU和和I/O设备利用率设备利用率3.方便用户共享设备方便用户共享设备 6.1.2 I/O系统的层次结构和模型I/O软件的目标:软件的目标: 1 1) )解决解决由于
3、外部设备与由于外部设备与CPU速度不匹配所引起的问题,提高主速度不匹配所引起的问题,提高主机和外设的并行工作能力,提高系统机和外设的并行工作能力,提高系统效率效率 2) 2)方便用户对方便用户对设备的操作和设备的操作和管理管理1.I/O软件的层次结构软件的层次结构用户层软件设备独立性软件设备驱动程序中断处理程序硬件I/O应答产生I/O请求、格式化I/O、Spooling映射、保护、分块、缓冲、分配设置设备寄存器,检查寄存器状态执行I/O操作(1) 用户层软件:实现与用户交互的接口,用户可直接调用户层软件:实现与用户交互的接口,用户可直接调用在用户层提供的、与用在用户层提供的、与I/O操作有关的
4、库函数,对设备进操作有关的库函数,对设备进行操作。行操作。 ( (2) 2) 设备独立性软件:负责实现与设备驱动器的统一接设备独立性软件:负责实现与设备驱动器的统一接口、设备命名、设备的保护以及设备的分配与释放等,口、设备命名、设备的保护以及设备的分配与释放等,同时为设备管理和数据传送提供必要的存储空间。同时为设备管理和数据传送提供必要的存储空间。( (3) 3) 设备驱动程序:与设备驱动程序:与硬件直接相关硬件直接相关,负责具体实现系,负责具体实现系统对设备发出的操作指令,驱动统对设备发出的操作指令,驱动I/OI/O设备工作的驱动程序。设备工作的驱动程序。(4) 中断处理程序:用于保存被中断
5、进程的中断处理程序:用于保存被中断进程的CPU环境,转环境,转入相应的中断处理程序进行处理,处理完后再恢复被中入相应的中断处理程序进行处理,处理完后再恢复被中断进程的现场后返回到被中断进程断进程的现场后返回到被中断进程。2.I/O2.I/O系统中各种模块之间的层次视图系统中各种模块之间的层次视图1 1)I/OI/O系统的上下接口系统的上下接口 (1)I/O (1)I/O系统接口系统接口 (2)(2)软硬件接口软硬件接口 2)I/O系统分层系统分层6.1.3 I/O系统接口1.块设备接口块设备接口 1)块设备:数据的存取和传输以)块设备:数据的存取和传输以数据块数据块为单位,速度为单位,速度快可
6、寻址快可寻址 2)隐藏磁盘)隐藏磁盘二维结构二维结构 块接口将磁盘扇区从块接口将磁盘扇区从0到到n-1编号编号 3)将抽象命令映射为低层操作)将抽象命令映射为低层操作2.流设备接口流设备接口 1)字符设备:)字符设备:数据的存取和传输数据的存取和传输以以字符字符为为单位,单位,速度速度低不可寻址,多是低不可寻址,多是独占设备需互斥共享独占设备需互斥共享 2)用)用put,get操作进行顺序存取操作进行顺序存取 3)采用统一的)采用统一的in-control指令来管理字符设备指令来管理字符设备3.网络通信接口网络通信接口6.2 I/O设备和设备控制器6.2.16.2.1I/OI/O设备设备1 1
7、I/OI/O设备的类型设备的类型I/O设备的性能指标设备的性能指标: 设备使用特性、数据传输速率、设备使用特性、数据传输速率、数据的传输单位、设备共享属性等。数据的传输单位、设备共享属性等。1)1)按设备的使用特性分类按设备的使用特性分类第一类第一类: :存储设备存储设备( (外存):存取速度慢,容量大价格外存):存取速度慢,容量大价格便宜。便宜。 第二类:输入第二类:输入/ /输出设备:输出设备: 输入设备:用来接收外部信息,如键盘、鼠标、扫输入设备:用来接收外部信息,如键盘、鼠标、扫描仪等。描仪等。 输出设备:用于将计算机加工处理后的信息送向外输出设备:用于将计算机加工处理后的信息送向外部
8、的设备,如打印机、绘图仪等。部的设备,如打印机、绘图仪等。 交互式设备:集成上述两类设备,如显示器交互式设备:集成上述两类设备,如显示器 2 2) )按传输速率分类按传输速率分类 低速低速设备设备:几个字节至数百个字节:几个字节至数百个字节/S/S。如键盘、鼠。如键盘、鼠标器、语音的输入和输出等设备。标器、语音的输入和输出等设备。 中中速设备速设备:数千个字节至数十万个字节:数千个字节至数十万个字节/S/S。如行式。如行式打印机、打印机、 激光打印机等。激光打印机等。 高速高速设备设备:数百个千字节至千兆字节:数百个千字节至千兆字节/ /。如磁带机、。如磁带机、磁盘机、光盘机等。磁盘机、光盘机
9、等。 2 2设备与控制器之间的接口设备与控制器之间的接口缓冲转换器控制逻辑信号数据数据信号线状态信号线控制信号线至设备控制器I/O设备1 1) )数据信号线数据信号线用于用于在设备和设备控制器之间传送数据信号。在设备和设备控制器之间传送数据信号。2 2) )控制信号线控制信号线由由设备控制器向设备控制器向I/OI/O设备发送控制信号时的通路。设备发送控制信号时的通路。 规定规定了设备将要执行的操作,如读操作了设备将要执行的操作,如读操作( (指由设备向指由设备向控制器传送数据控制器传送数据) )或写操作或写操作( (从控制器接收数据从控制器接收数据) ),或执,或执行磁头移动等操作。行磁头移动
10、等操作。3 3) )状态信号线状态信号线 用于用于传送指示设备当前状态的信号。传送指示设备当前状态的信号。 设备设备的当前状态有正在读的当前状态有正在读(或写或写);设备已读;设备已读(写写)完成,完成,并准备好新的数据传送。并准备好新的数据传送。 6.2.26.2.2设备控制器设备控制器1 1设备控制器的基本功能设备控制器的基本功能 1 1) ) 接收和识别命令接收和识别命令CPU可以向控制器发送多种不同的命令,设备控制可以向控制器发送多种不同的命令,设备控制器应能接收并识别这些命令器应能接收并识别这些命令。控制寄存器:用来控制寄存器:用来存放接收的命令和参数,并存放接收的命令和参数,并对其
11、命令对其命令进行译码进行译码。 2) 2) 数据交换数据交换CPUCPU与控制器之间、控制器与设备之间的数据交换。与控制器之间、控制器与设备之间的数据交换。在控制器中须设置数据寄存器。在控制器中须设置数据寄存器。 3 3) ) 标识和报告设备的状态标识和报告设备的状态控制器应记下设备的状态供控制器应记下设备的状态供CPUCPU了解了解。 状态寄存器:反映设备的某一种状态。状态寄存器:反映设备的某一种状态。 4) 4) 地址识别地址识别系统中的每一个设备都有一个地址,设备控制器必系统中的每一个设备都有一个地址,设备控制器必须能够识别它所控制的每个设备的地址。须能够识别它所控制的每个设备的地址。
12、在控制器中应配置地址译码器。在控制器中应配置地址译码器。 5 5) ) 数据缓冲数据缓冲I/OI/O设备的速率较低而设备的速率较低而CPUCPU和内存的和内存的速率高速率高,故在控,故在控制器中必须设置一缓冲器制器中必须设置一缓冲器。 输出输出: :缓冲器缓冲器暂存由主机高速传来的暂存由主机高速传来的数据;数据; 输入输入: :暂暂存从存从I/OI/O设备送来的数据,待接收到一批数设备送来的数据,待接收到一批数据后,据后,再高速再高速地传送给主机。地传送给主机。 6 6) ) 差错控制差错控制对对由由I/OI/O设备传送来的数据进行差错检测设备传送来的数据进行差错检测。 若若发现传送中出现了错
13、误发现传送中出现了错误,CPUCPU报告报告,重新传送。,重新传送。2 2设备控制器的组成设备控制器的组成 1 1) ) 设备控制器与处理机的接口设备控制器与处理机的接口用于用于实现实现CPU与设备控制器之间的通信与设备控制器之间的通信。 共有共有三类信号线三类信号线: : 数据线、地址线和控制线数据线、地址线和控制线。 数据线数据线: :传输数据和设备状态信息传输数据和设备状态信息 地址线:传送给地址线:传送给I/OI/O逻辑进行地址译码逻辑进行地址译码 控制线:传送控制命令控制线:传送控制命令 2 2) ) 设备控制器与设备的接口设备控制器与设备的接口在在一个设备控制器一个设备控制器上可以
14、上可以连接一个或多个设备连接一个或多个设备。 控制器控制器中便有一个或多个设备接口,一个接口连接一中便有一个或多个设备接口,一个接口连接一台设备台设备。 每个每个接口中都存在接口中都存在数据、控制和状态数据、控制和状态三种类型的信号三种类型的信号。 控制器控制器中的中的I/OI/O逻辑根据处理机发来的地址信号去选择逻辑根据处理机发来的地址信号去选择一个设备接口。一个设备接口。 3 3) I/O) I/O逻辑逻辑用于用于实现对设备的控制实现对设备的控制。 通过通过一组控制线与处理机一组控制线与处理机交互:交互: (1) (1)处理机利用处理机利用该逻辑向控制器发送该逻辑向控制器发送I/O命令命令
15、; (2) (2)I/O逻辑对收到的命令进行译码逻辑对收到的命令进行译码。6.2.3 6.2.3 内存映像内存映像I/OI/O数据寄存器控制/状态寄存器数据线I/O逻辑控制器与设备接口1控制器与设备接口i数据状态控制数据状态控制地址线控制线CPU与控制器接口控制器与设备接口6.2.46.2.4I/OI/O通道通道 1 1I/OI/O通道通道(I/O Channel)(I/O Channel)设备的引入设备的引入 在在CPU和设备控制器之间又增设了和设备控制器之间又增设了通道其通道其主要主要目的:目的:建立建立独立的独立的I/O操作,使操作,使一些原来由一些原来由CPU处理的处理的I/O任务任务
16、转由通道来转由通道来承担承担进一步进一步把把CPU从繁杂的从繁杂的I/O任务中解脱任务中解脱出来出来。 设置设置了通道后,了通道后,CPU只需向通道发送一条只需向通道发送一条I/O指令。指令。通道在收到该指令后,便从内存中取出本次要执行的通通道在收到该指令后,便从内存中取出本次要执行的通道程序,然后执行该通道程序,仅当通道完成了规定的道程序,然后执行该通道程序,仅当通道完成了规定的I/O任务后,才向任务后,才向CPU发中断信号。发中断信号。 I/O通道是一种特殊的通道是一种特殊的处理机:能处理机:能执行执行I/O指令,并指令,并通过通道通过通道(I/O)程序来控制程序来控制I/O操作操作。 但
17、但I/O通道又与一般的处理机通道又与一般的处理机不同不同: 1. 1.指令类型指令类型单一单一,主要,主要局限于与局限于与I/O操作有关的指令操作有关的指令; 2. 2. 通道通道没有自己的内存没有自己的内存,通道,通道与与CPU共享内存共享内存。2 2通道类型通道类型1) 1) 字节多路通道字节多路通道(Byte Multiplexor Channel)(Byte Multiplexor Channel)按字节交叉方式工作,通常含有许多按字节交叉方式工作,通常含有许多非分配型子通非分配型子通道,道,这些子通道这些子通道按时间片轮转按时间片轮转方式共享主通道。不适于方式共享主通道。不适于连接高
18、速设备。连接高速设备。控制器A控制器B控制器C控制器D控制器NA1A2A3子通道AB1B2B3子通道BC1C2C3子通道CN1N2N3子通道NA1B1C1A2B2C2设备 2 2) ) 数组选择通道数组选择通道(Block Selector Channel)(Block Selector Channel) 数据传送是按数据传送是按数组数组方式进行。方式进行。 用于连接用于连接多台高速设备,多台高速设备,但只但只含有含有一个分配型子一个分配型子通通道:道:在在一段时间内只能执行一道通道一段时间内只能执行一道通道程序,某程序,某台设备占台设备占用了该通道后,便一直由它独占,即使是它无数据传送,用了
19、该通道后,便一直由它独占,即使是它无数据传送,通道被闲置,也不允许其它设备使用该通道,直至该设通道被闲置,也不允许其它设备使用该通道,直至该设备传送完毕释放该通道备传送完毕释放该通道。通道利用率。通道利用率很低很低。 3 3) ) 数组多路通道数组多路通道(Block Multiplexor Channel)(Block Multiplexor Channel)采用多路复用技术,含有采用多路复用技术,含有多个非分配型子通道多个非分配型子通道,既,既具有很高的数据传输速率,又能获得令人满意的通道利具有很高的数据传输速率,又能获得令人满意的通道利用率用率。 广泛广泛地用于连接多台高、中速的地用于连
20、接多台高、中速的外围设备。外围设备。 3 3“瓶颈瓶颈”问题问题解决解决“瓶颈瓶颈”问题的最有效的方法:增加设备到主问题的最有效的方法:增加设备到主机间的通路而不增加通道机间的通路而不增加通道设备1设备2设备3设备4设备5设备6设备7控制器1控制器2控制器3控制器4通道1通道2存储器I/O设备控制器1控制器2通道1通道2存储器I/O设备I/O设备I/O设备6.3 中断机构和中断处理程序6.3.1 中断简介中断简介1.中断和陷入中断和陷入 1)中断:)中断:CPU对对I/O设备发来的中断信号的一种响应。设备发来的中断信号的一种响应。是由外部设备引起的,又称外中断。是由外部设备引起的,又称外中断。
21、 2)陷入:由)陷入:由CPU内部事件引起的中断如非法指令、地内部事件引起的中断如非法指令、地址越界等。又称内中断。址越界等。又称内中断。2.中断向量表和中断优先级中断向量表和中断优先级 1)中断向量表:记录中断号及对应的中断处理程序入)中断向量表:记录中断号及对应的中断处理程序入口地址口地址 2)中断优先级:磁盘中断,打印机,键盘)中断优先级:磁盘中断,打印机,键盘3.对多中断源处理方式对多中断源处理方式 1)屏蔽中断)屏蔽中断 2)嵌套中断)嵌套中断6.3.26.3.2中断处理程序中断处理程序 1 1测试是否有未响应的中断信号测试是否有未响应的中断信号CPUCPU执行完当前指令后要测试是否
22、有未响应的中断执行完当前指令后要测试是否有未响应的中断信号,若无则执行下个指令,否则停止当前进程执行转信号,若无则执行下个指令,否则停止当前进程执行转去执行中断处理程序。去执行中断处理程序。 2. 2. 保护被中断进程的保护被中断进程的CPUCPU环境环境由由硬件自动将处理机状态字硬件自动将处理机状态字PSWPSW和程序计数器和程序计数器(PC)(PC)中的内容,保存在中断保留区中的内容,保存在中断保留区( (栈栈) )中。中。PSW程序状态字PC(N1)程序计数器R0Rn寄存器开始返回用户程序中断服务子例程PSWPC(N1)中断栈TTM线指针YNN1R0Rn3 3转入相应的设备处理程序转入相
23、应的设备处理程序 由由处理机对各个中断源进行测试,以处理机对各个中断源进行测试,以确定引起本次确定引起本次中断的中断的I/O设备设备,然后,然后将将相应的设备中断处理程序的入相应的设备中断处理程序的入口地址口地址装入到程序计数器中装入到程序计数器中,转向,转向中断处理程序中断处理程序。4 4中断处理中断处理 不同设备有不同设备有不同的中断处理程序不同的中断处理程序。 首先判别中断首先判别中断是正常完成是正常完成中断还是中断还是异常结束中断异常结束中断。 若是若是前者,中断程序便进行结束处理前者,中断程序便进行结束处理; 若是若是异常结束中断,则根据发生异常的原因做相应异常结束中断,则根据发生异
24、常的原因做相应的处理。的处理。 5 5恢复被中断进程的现场恢复被中断进程的现场 将将保存在中断栈中的被中断进程的现场信息取出,保存在中断栈中的被中断进程的现场信息取出,并装入到相应的寄存器并装入到相应的寄存器中,包括中,包括该程序下一次要执行的该程序下一次要执行的指令的地址指令的地址N+1N+1、处理机状态字、处理机状态字PSWPSW。 处理机处理机再执行本程序时,便从再执行本程序时,便从N+1N+1处开始,最终返回处开始,最终返回到被中断的程序。到被中断的程序。 唤醒被阻塞的驱动程序进程对被中断进程的CPU环境进行保护分析中断原因,转入相应的中断处理程序终端中断处理程序打印机中断处理程序磁盘
25、中断处理程序恢复被中断进程的CPU现场返回被中断的进程,继续执行中断请求信号6.4 设备驱动程序6.4.1 设备驱动程序概述设备驱动程序概述(设备处理程序)设备处理程序) 是是I/O进程进程与与设备控制器设备控制器之间的通信程序之间的通信程序,常,常以以进程的形式存在,进程的形式存在,故简称故简称设备设备驱动进程驱动进程。 主要任务:主要任务: 1. 1.接收接收上层软件发来的抽象上层软件发来的抽象I/O要求要求,转换,转换为具为具体要求体要求后发送后发送给设备控制器,启动设备去执行给设备控制器,启动设备去执行; 2. 2.将将由设备控制器发来的信号传送给上层软件。由设备控制器发来的信号传送给
26、上层软件。 1 1. .设备驱动程序设备驱动程序的功能的功能 ( (1) 1) 接收由接收由设备独立性软件设备独立性软件发来的命令和参数,并将发来的命令和参数,并将命令中的命令中的抽象要求转换为具体要求抽象要求转换为具体要求,例如,将磁盘块号转,例如,将磁盘块号转换为磁盘的盘面、磁道号及扇区号。换为磁盘的盘面、磁道号及扇区号。 ( (2) 2) 检查用户检查用户I/OI/O请求的合法性请求的合法性,了解,了解I/OI/O设备的状态,设备的状态,传递有关参数,设置设备的工作方式。传递有关参数,设置设备的工作方式。 (3) 发出发出I/O命令命令。若设备空闲立即启动完成操作;若。若设备空闲立即启动
27、完成操作;若忙则忙则将请求者的请求块挂在设备队列上等待。将请求者的请求块挂在设备队列上等待。 ( (4 4) )及时及时响应由控制器或通道发来的中断请求,并根据响应由控制器或通道发来的中断请求,并根据其中断类型调用相应的中断处理程序进行处理。其中断类型调用相应的中断处理程序进行处理。补:补:( (5 5) )对于对于设置有通道的计算机系统,驱动程序还设置有通道的计算机系统,驱动程序还应能够根据用户的应能够根据用户的I/OI/O请求,自动地构成通道程序。请求,自动地构成通道程序。 2.设备驱动程序的特点(了)设备驱动程序的特点(了) 3.设备处理方式(了)设备处理方式(了) 1)为每一类设备设置
28、一个进程,专门执行这一类设备的)为每一类设备设置一个进程,专门执行这一类设备的I/O操作操作 2)整个系统设置一个)整个系统设置一个I/O进程,专门执行所有各类设备的进程,专门执行所有各类设备的I/O操作操作 3)只为各类设备设置相应)只为各类设备设置相应驱动程序驱动程序6.46.42 2 设备驱动程序设备驱动程序的处理过程的处理过程不同类型的设备应有不同的不同类型的设备应有不同的设备驱动程序。设备驱动程序。 大体上分成大体上分成两两部分:部分: 1 1)驱动)驱动I/OI/O设备工作的设备工作的驱动程序;驱动程序; 2 2)设备)设备中断处理程序,以处理中断处理程序,以处理I/OI/O完成后
29、的工作。完成后的工作。设备驱动程序的主要任务是设备驱动程序的主要任务是启动指定设备启动指定设备。但在启。但在启动之前,还必须完成必要的准备工作,如检测设备状态动之前,还必须完成必要的准备工作,如检测设备状态是否为是否为“忙忙”等。在完成所有的准备工作后,才最后向等。在完成所有的准备工作后,才最后向设备控制器发送一条启动命令。设备控制器发送一条启动命令。 1 1) ) 将抽象要求转换为具体要求将抽象要求转换为具体要求通常在每个设备控制器中都含有通常在每个设备控制器中都含有若干个寄存器,分若干个寄存器,分别用于暂存命令、数据和参数等别用于暂存命令、数据和参数等。 例如例如,将抽象要求中的盘块号转换
30、为磁盘的盘面、,将抽象要求中的盘块号转换为磁盘的盘面、 磁道号及扇区。这一转换工作只能由驱动程序来完成磁道号及扇区。这一转换工作只能由驱动程序来完成, 在在OS中只有驱动程序才同时了解抽象要求和设备中只有驱动程序才同时了解抽象要求和设备控制器中的寄存器情况;也只有它才知道命令、控制器中的寄存器情况;也只有它才知道命令、 数据数据和参数应分别送往哪个寄存器。和参数应分别送往哪个寄存器。 2 2) ) 检查检查I/OI/O请求的合法性请求的合法性对于任何输入设备,都是只能完成一组特定的功能,对于任何输入设备,都是只能完成一组特定的功能,若该设备不支持这次的若该设备不支持这次的I/OI/O请求,则认
31、为这次请求,则认为这次I/OI/O请求非请求非法法。系统。系统应予以拒绝应予以拒绝。 3 3) ) 读出和检查设备的状态读出和检查设备的状态在启动某个设备进行在启动某个设备进行I/OI/O操作时,其前提条件应是操作时,其前提条件应是该设备正处于空闲状态。否则只能等待。该设备正处于空闲状态。否则只能等待。 4) 4) 传送必要的参数传送必要的参数例如例如在启动磁盘进行读在启动磁盘进行读/ /写之前,应先将本次要传写之前,应先将本次要传送的字节数和数据应到达的主存始址,送入控制器的相送的字节数和数据应到达的主存始址,送入控制器的相应寄存器中。应寄存器中。5) 5) 工作方式的设置工作方式的设置有些
32、设备可具有多种工作方式,典型情况是利用有些设备可具有多种工作方式,典型情况是利用RS-232RS-232接口进行异步通信。在启动该接口之前,应先按接口进行异步通信。在启动该接口之前,应先按通信规程设定参数:波特率、奇偶校验方式、停止位数通信规程设定参数:波特率、奇偶校验方式、停止位数目及数据字节长度等。目及数据字节长度等。 6) 6) 启动启动I/OI/O设备设备在完成上述各项准备工作之后,驱动程序可以向控在完成上述各项准备工作之后,驱动程序可以向控制器中的命令寄存器传送相应的控制命令制器中的命令寄存器传送相应的控制命令。驱动程序发出驱动程序发出I/OI/O命令后,基本的命令后,基本的I/OI
33、/O操作是在设备操作是在设备控制器的控制下进行的控制器的控制下进行的。 此时此时驱动驱动( (程序程序) )进程把自己阻塞起来,直到中断到进程把自己阻塞起来,直到中断到来时才将它唤醒。来时才将它唤醒。 6.4.3I/O控制方式控制方式 1 1. .程序程序I/OI/O方式方式早期无早期无中断机构,处理机对中断机构,处理机对I/O设备的控制采取程序设备的控制采取程序I/O方式方式,或称为,或称为忙忙等待等待方式方式: :处理机处理机向控制器发出一向控制器发出一条条I/O指令启动输入设备输入数据时指令启动输入设备输入数据时,把,把状态寄存器中的状态寄存器中的忙忙/闲标志闲标志busy置为置为1,然
34、后不断然后不断地循环测试地循环测试busy。 当当busy=1时,表示输入机尚未输完一个字时,表示输入机尚未输完一个字(符符),处理,处理机应继续对该标志进行机应继续对该标志进行测试测试; ; 当当busy=0,表明输入机已将输入数据送入控制器的数,表明输入机已将输入数据送入控制器的数据寄存器中据寄存器中。向I/O控制器发读命令读I/O控制器的状态检查状态?从I/O控制器中读入字向存储器中写字传送完成?未就绪就绪出错CPUI/OI/OCPUI/OCPUCPU内存完成未完向I/O控制器发读命令读I/O控制器的状态检查状态?从I/O控制器中读字向内存中写字传送完成?就绪出错CPUI/OI/OCPU
35、I/OCPUCPU内存完成未完中断CPU做其它事向I/O控制器发布读块命令CPUDMACPU做其它事读D MA控制器的状态中断DMACPU下一条指令(a) 程序I/O方式(b) 中断驱动方式(c) DMA方式下一条指令下一条指令2 2中断驱动中断驱动I/OI/O控制方式控制方式现代计算机系统中现代计算机系统中,广泛,广泛采用中断驱动采用中断驱动(Interrupt (Interrupt Driven)Driven)方式:当方式:当某进程要启动某个某进程要启动某个I/OI/O设备工作时,便设备工作时,便由由CPUCPU向相应的设备控制器发出一条向相应的设备控制器发出一条I/OI/O命令,然后立即
36、命令,然后立即返回继续执行原来的任务。设备控制器于是按照该命令返回继续执行原来的任务。设备控制器于是按照该命令的要求去控制指定的要求去控制指定I/OI/O设备。此时,设备。此时,CPUCPU与与I/OI/O设备并行设备并行操作操作。 一旦一旦数据进入数据寄存器,控制器便通过控制线向数据进入数据寄存器,控制器便通过控制线向CPUCPU发送中断发送中断信号,由信号,由CPUCPU检查输入过程中是否出错,若检查输入过程中是否出错,若无错,便向控制器发送取走数据的信号,然后再通过控无错,便向控制器发送取走数据的信号,然后再通过控制器及数据线将数据写入内存指定单元中制器及数据线将数据写入内存指定单元中。
37、在在I/OI/O设备输入每个数据的过程中,由于无需设备输入每个数据的过程中,由于无需CPUCPU干干预,因而可使预,因而可使CPUCPU与与I/OI/O设备并行工作。仅当输完一个数设备并行工作。仅当输完一个数据时,才需据时,才需CPUCPU花费极短的时间去做些中断处理花费极短的时间去做些中断处理。 CPU CPU和和I/OI/O设备都处于忙碌状态,从而提高了整个系设备都处于忙碌状态,从而提高了整个系统的资源利用率及吞吐量统的资源利用率及吞吐量。3.3.直接直接存储器访问存储器访问(DMA)I/O(DMA)I/O控制方式控制方式1)DMA(Direct 1)DMA(Direct Memory A
38、ccess)Memory Access)控制方式的引入控制方式的引入虽然中断驱动虽然中断驱动I/OI/O比程序比程序I/OI/O方式更有效,但须注意,方式更有效,但须注意,它仍是以字它仍是以字( (节节) )为单位进行为单位进行I/OI/O的,的,每当完成一个字每当完成一个字( (节节) )的的I/OI/O时,控制器便要向时,控制器便要向CPUCPU请求一次中断请求一次中断。 中断驱动中断驱动I/OI/O方式时的方式时的CPUCPU是以字是以字( (节节) )为单位进行干为单位进行干预的。预的。如果如果将这种方式用于块设备的将这种方式用于块设备的I/OI/O,显然是极其,显然是极其低效的。例如
39、,为了从磁盘中读出低效的。例如,为了从磁盘中读出1 KB1 KB的数据块,需要的数据块,需要中断中断CPU 1KCPU 1K次。为了进一步减少次。为了进一步减少CPUCPU对对I/OI/O的干预而引入的干预而引入了直接存储器访问了直接存储器访问方式。方式。该方式的特点是:该方式的特点是:(1) (1) 数据传输的数据传输的基本单位是数据块基本单位是数据块,即在,即在CPUCPU与与I/OI/O设备之间,每次传送至少一个数据块;设备之间,每次传送至少一个数据块; (2) (2) 所传送的数据是从所传送的数据是从设备直接送入内存设备直接送入内存的,或者的,或者相反;相反;(3) (3) 仅在传送一
40、个或多个数据块的开始和结束时,仅在传送一个或多个数据块的开始和结束时,才需才需CPUCPU干预干预,整块数据的传送是在控制器的控制下完,整块数据的传送是在控制器的控制下完成的。成的。可见,可见,DMADMA方式较之中断驱动方式,又是成百倍地方式较之中断驱动方式,又是成百倍地减少了减少了CPUCPU对对I/OI/O的干预,进一步提高了的干预,进一步提高了CPUCPU与与I/OI/O设备的设备的并行操作程度。并行操作程度。 2)DMA2)DMA控制器的组成控制器的组成DMADMA控制器由三部分组成:控制器由三部分组成:主机与主机与DMADMA控制器的接口控制器的接口;DMADMA控制器与块设备的接
41、口控制器与块设备的接口;I/OI/O控制逻辑控制逻辑。 主要主要介绍主机与控制器之间的接口。介绍主机与控制器之间的接口。 DRMARDCCRI/O控制逻辑主机控制器接口控制器与块设备接口count内存CPU命令系统总线DMA控制器四四类寄存器:类寄存器:( (1) 1) 命令命令/ /状态寄存器状态寄存器(CR(CR) ):接收:接收CPUCPU发来的发来的I/OI/O命令,或命令,或有关控制信息,或设备的状态。有关控制信息,或设备的状态。( (2) 2) 内存地址寄存器内存地址寄存器(MAR)(MAR)。在输入时,它存放把数据从。在输入时,它存放把数据从设备传送到内存的起始目标地址;在输出时
42、,它存放由设备传送到内存的起始目标地址;在输出时,它存放由内存到设备的内存源地址。内存到设备的内存源地址。( (3) 3) 数据寄存器数据寄存器(DR(DR) ):暂:暂存从设备到内存,或从内存到存从设备到内存,或从内存到设备的数据。设备的数据。( (4) 4) 数据计数器数据计数器(DC)(DC)。存放本次。存放本次CPUCPU要读或写的字要读或写的字( (节节) )数。数。 3)DMA3)DMA工作过程工作过程 以以从磁盘读入数据为从磁盘读入数据为例例 CPUCPU向向磁盘控制器发送一条读磁盘控制器发送一条读命令;命令; 该该命令被送到其中的命令寄存器命令被送到其中的命令寄存器(CR)(C
43、R)中;中; 数据数据读入的内存起始目标读入的内存起始目标地址送入地址送入内存地址寄存器内存地址寄存器(MARMAR)中)中; 要要读数据的字读数据的字( (节节) )数则送入数据计数器数则送入数据计数器(DC)(DC)中;中; 将将磁盘中的磁盘中的源地址送源地址送至至DMADMA控制器的控制器的I/OI/O控制控制逻辑;逻辑; 启动启动DMADMA控制器进行数据控制器进行数据传送;传送; 此后此后,整个数据传送过程便由,整个数据传送过程便由DMADMA控制器进行控制。控制器进行控制。当当DMADMA控制器已从磁盘中读入一个字控制器已从磁盘中读入一个字( (节节) )的数据并送的数据并送入数据
44、寄存器入数据寄存器(DR)(DR)后,再挪用一个存储器周期,将该字后,再挪用一个存储器周期,将该字( (节节) )传送到传送到MARMAR所指示的内存单元中。接着便对所指示的内存单元中。接着便对MARMAR内容内容加加1 1,将,将DCDC内容减内容减1 1。若减。若减1 1后后DCDC内容不为内容不为0 0,表示传送未,表示传送未完,便继续传送下一个字完,便继续传送下一个字( (节节) );否则,由;否则,由DMADMA控制器发出控制器发出中断请求。图中断请求。图5-95-9是是DMADMA方式的工作流程。方式的工作流程。 设置M AR和DC初值启动DMA传送命令挪用存储器周期传送数据字存储
45、器地址增1字计数寄存器减1DC0?请求中断在继续执行用户程序的同时,准备又一次传送否是4.I/O4.I/O通道控制方式通道控制方式1 1)I/OI/O通道控制方式的引入通道控制方式的引入虽然虽然DMADMA方式比起中断方式来已经显著地减少了方式比起中断方式来已经显著地减少了CPUCPU的干预,即已由以字的干预,即已由以字( (节节) )为单位的干预减少到以数据块为单位的干预减少到以数据块为单位的干预,但为单位的干预,但CPUCPU每发出一条每发出一条I/OI/O指令,也只能去读指令,也只能去读( (或写或写) )一个连续的数据块。而当我们需要一次去读多个一个连续的数据块。而当我们需要一次去读多
46、个数据块且将它们分别传送到不同的内存区域,或者相反数据块且将它们分别传送到不同的内存区域,或者相反时,则须由时,则须由CPUCPU分别发出多条分别发出多条I/OI/O指令及进行多次中断处指令及进行多次中断处理才能完成。理才能完成。 I/OI/O通道方式是通道方式是DMADMA方式的发展,它可进一步减少方式的发展,它可进一步减少CPUCPU的干预,即把对一个数据块的读的干预,即把对一个数据块的读( (或写或写) )为单位的干预减为单位的干预减少为对一组数据块的读少为对一组数据块的读( (或写或写) )及有关的控制和管理为单及有关的控制和管理为单位的干预。同时,又可实现位的干预。同时,又可实现CP
47、UCPU、通道和、通道和I/OI/O设备三者的设备三者的并行操作,从而更有效地提高整个系统的资源利用率。并行操作,从而更有效地提高整个系统的资源利用率。例如,当例如,当CPUCPU要完成一组相关的读要完成一组相关的读( (或写或写) )操作及有关控制操作及有关控制时,只需向时,只需向I/OI/O通道发送一条通道发送一条I/OI/O指令,以给出其所要执指令,以给出其所要执行的通道程序的首址和要访问的行的通道程序的首址和要访问的I/OI/O设备,通道接到该指设备,通道接到该指令后,通过执行通道程序便可完成令后,通过执行通道程序便可完成CPUCPU指定的指定的I/OI/O任务。任务。 2 2通道程序
48、通道程序通道是通过执行通道程序,并与设备控制器共同实通道是通过执行通道程序,并与设备控制器共同实现对现对I/OI/O设备的控制的。通道程序是由一系列通道指令设备的控制的。通道程序是由一系列通道指令( (或称为通道命令或称为通道命令) )所构成的。通道指令与一般的机器指所构成的。通道指令与一般的机器指令不同,在它的每条指令中都包含下列诸信息:令不同,在它的每条指令中都包含下列诸信息:(1) (1) 操作码。操作码规定了指令所执行的操作,如操作码。操作码规定了指令所执行的操作,如读、写、控制等操作。读、写、控制等操作。(2) (2) 内存地址。内存地址标明字符送入内存内存地址。内存地址标明字符送入
49、内存( (读操读操作作) )和从内存取出和从内存取出( (写操作写操作) )时的内存首址。时的内存首址。(3) (3) 计数。该信息表示本条指令所要读计数。该信息表示本条指令所要读( (或写或写) )数据数据的字节数。的字节数。 (4) (4) 通道程序结束位通道程序结束位P P。该位用于表示通道程序是否。该位用于表示通道程序是否结束。结束。P=1P=1表示本条指令是通道程序的最后一条指令。表示本条指令是通道程序的最后一条指令。(5) (5) 记录结束标志记录结束标志R R。R=0R=0表示本通道指令与下一条表示本通道指令与下一条指令所处理的数据是同属于一个记录;指令所处理的数据是同属于一个记
50、录;R=1R=1表示这是处表示这是处理某记录的最后一条指令。理某记录的最后一条指令。 下面示出了一个由六条通道指令所构成的简单的通下面示出了一个由六条通道指令所构成的简单的通道程序。该程序的功能是将内存中不同地址的数据写成道程序。该程序的功能是将内存中不同地址的数据写成多个记录。其中,前三条指令是分别将多个记录。其中,前三条指令是分别将813813892892单元中单元中的的8080个字符和个字符和1034103411731173单元中的单元中的140140个字符及个字符及5830583058895889单元中的单元中的6060个字符写成一个记录;第个字符写成一个记录;第4 4条指令是单条指令
51、是单独写一个具有独写一个具有300300个字符的记录;第个字符的记录;第5 5、6 6条指令共写含条指令共写含500500个字符的记录。个字符的记录。 操 作 P R 计 数 内 存 地 址 WRITE 0 0 80 813 WRITE 0 0 140 1034 WRITE 0 1 60 5830 WRITE 0 1 300 2000 WRITE 0 0 250 1650 WRITE 1 1 250 2720 6.5与设备无关的与设备无关的I/O软件软件 为了提高OS的可适应性和可扩展性,在现代OS中都毫无例外地实现了设备独立性,也称为设备无关性。6.5.1 6.5.1 与设备无关软件的基本概
52、念与设备无关软件的基本概念 1.1.早期以早期以物理设备名物理设备名使用设备使用设备 2.2.引入引入逻辑设备名逻辑设备名 逻辑设备、物理设备逻辑设备、物理设备 使用逻辑设备名的优点:使用逻辑设备名的优点: 1) 1)设备设备分配时的灵活性分配时的灵活性 2) 2) 易于实现易于实现I/OI/O重定向重定向 3.逻辑设备名到物理设备名的转换逻辑设备名到物理设备名的转换 ( LUT表)表)6.5.2 与设备无关的软件与设备无关的软件 为了为了实现设备独立性,必须再在驱动程序之上设置实现设备独立性,必须再在驱动程序之上设置一层软件,称为一层软件,称为设备独立性软件设备独立性软件。 设备设备独立性软
53、件的主要功能:执行所有独立性软件的主要功能:执行所有设备公有设备公有操操作作。 向用户层向用户层( (或文件层或文件层) )软件提供统一接口软件提供统一接口。无论何种。无论何种设备,它们向用户所设备,它们向用户所提供的提供的接口应该是相同的。例如,接口应该是相同的。例如,对各种设备的读操作,在应用程序中都使用对各种设备的读操作,在应用程序中都使用readread;而;而对对各种设备的写操作,也都使用各种设备的写操作,也都使用writewrite。 缓冲管理缓冲管理 差错控制差错控制:暂时性错误、永久性错误。由于在:暂时性错误、永久性错误。由于在I/OI/O操操作中的绝大多数错误都与设备无关,故
54、主要由设备驱动作中的绝大多数错误都与设备无关,故主要由设备驱动程序处理,而设备独立性软件只处理那些设备驱动程序程序处理,而设备独立性软件只处理那些设备驱动程序无法处理的错误;无法处理的错误; 对独立设备的分配与回收对独立设备的分配与回收; 提供独立于设备的逻辑块提供独立于设备的逻辑块6.5.3设设 备备 分分 配配 1.1.设备设备分配中的数据结构分配中的数据结构1 1)设备控制)设备控制表表(DCT)(DCT)系统为每一个设备都配置了一张设备控制表,用于系统为每一个设备都配置了一张设备控制表,用于记录本设备的记录本设备的情况。情况。 设备类型:type设备标识符:deviceid设备状态:等
55、待/不等待 忙/闲指向控制器表的指针重复执行次数或时间设备队列的队首指针DCT 1DCT 2DCT n设备控制表集合(1) 设备队列队首指针。凡因请求本设备而未得到满足的进程,其PCB都应按照一定的策略排成一个队列,称该队列为设备请求队列或简称设备队列。其队首指针指向队首PCB。在有的系统中还设置了队尾指针。(2) 设备状态。当设备自身正处于使用状态时,应将设备的忙/闲标志置“1”。若与该设备相连接的控制器或通道正忙,也不能启动该设备,此时则应将设备的等待标志置“1”。 (3) 与设备连接的控制器表指针。该指针指向该设备所连接的控制器的控制表。在设备到主机之间具有多条通路的情况下,一个设备将与
56、多个控制器相连接。此时,在DCT中还应设置多个控制器表指针。(4) 重复执行次数。由于外部设备在传送数据时,较易发生数据传送错误,因而在许多系统中,如果发生传送错误,并不立即认为传送失败,而是令它重新传送,并由系统规定设备在工作中发生错误时应重复执行的次数。在重复执行时,若能恢复正常传送,则仍认为传送成功。仅当屡次失败,致使重复执行次数达到规定值而传送仍不成功时,才认为传送失败。 2 2)控制器)控制器控制表、通道控制表和系统设备表控制表、通道控制表和系统设备表(1) 控制器控制表(COCT)。(2) 通道控制表(CHCT)。(3) 系统设备表(SDT)系统范围的数据结构,其中记录了系统中全部
57、设备的情况。(c) 系统设备表SDT控制器标识符:controllerid控制器状态:忙/闲与控制器连接的通道表指针控制器队列的队首指针控制器队列的队尾指针通道标识符:channelid通道状态:忙/闲与通道连接的控制器表首址通道队列的队首指针通道队列的队尾指针(a) 控制器表COCT(b) 通道表CHCT表目1表目i设备类设备标识符DCT驱动程序入口2.2.设备设备分配时应考虑的因素分配时应考虑的因素 设备的固有属性;设备的固有属性; 设备分配算法;设备分配算法; 设备分设备分配时的安全性;配时的安全性; 设备独立性设备独立性。 1 1)设备)设备的固有属性的固有属性第一第一种独占性种独占性
58、:采用独享分配策略采用独享分配策略 第二第二种共享性:种共享性:可同时分配给多个进程使用,此可同时分配给多个进程使用,此时须注意对这些进程访问该设备的先后次序进行合理时须注意对这些进程访问该设备的先后次序进行合理的调度的调度。 第三第三种可种可虚拟虚拟设备:一设备:一台可虚拟设备是可共享的台可虚拟设备是可共享的设备,可以将它同时分配给多个进程使用,并对这些设备,可以将它同时分配给多个进程使用,并对这些访问该访问该(物理物理)设备的先后次序进行控制。设备的先后次序进行控制。 2 2)设备)设备分配算法分配算法(1) 先来先服务。将这些进程排成一个设备请求队列,设先来先服务。将这些进程排成一个设备
59、请求队列,设备分配程序总是把设备首先分配给队首进程。备分配程序总是把设备首先分配给队首进程。 (2) 优先级高者优先。将优先权高的进程排在设备队列前优先级高者优先。将优先权高的进程排在设备队列前面,对于优先级相同的面,对于优先级相同的I/O请求,则按先来先服务原则排队。请求,则按先来先服务原则排队。 3 3)设备)设备分配中的安全性分配中的安全性 1 1) ) 安全分配方式安全分配方式每当进程发出每当进程发出I/O请求后,便进入阻塞状态,直到其请求后,便进入阻塞状态,直到其I/O操作完成时才被唤醒。这种分配方式已经摒弃了造成死锁的操作完成时才被唤醒。这种分配方式已经摒弃了造成死锁的四个必要条件
60、之一的四个必要条件之一的“请求和保持请求和保持”条件,从而使设备分配条件,从而使设备分配是安全的。其缺点是进程进展缓慢,即是安全的。其缺点是进程进展缓慢,即CPU与与I/O设备是串设备是串行工作的行工作的。 2) 不安全分配方式进程在发出I/O请求后仍继续运行,需要时又发出第二个I/O请求、 第三个I/O请求等。仅当进程所请求的设备已被另一进程占用时,请求进程才进入阻塞状态。3.3.独占独占设备的分配程序设备的分配程序 1 1)基本)基本的设备分配程序的设备分配程序(1) 分配设备首先根据I/O请求中的物理设备名,查找系统设备表(SDT),从中找出该设备的DCT,再根据DCT中的设备状态字段,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 天燃气考试试题及答案
- 民族志叙事策略-洞察及研究
- 自动测量员考试题及答案
- 东山企业排污管理办法
- 个体工商建账管理办法
- 纸箱用处理管理办法
- 中央高校科研管理办法
- 装卸搬运业管理办法
- 东莞科技业务管理办法
- 东北养牛繁育管理办法
- 办公楼安防系统方案
- 健康与社会照护第三届全省职业技能大赛健康与社会照护项目技术文件
- 《外科无菌术》课件
- 2024-2030年中国铷铯及其化合物行业深度调研及投资战略分析报告
- 《幼学琼林》全文原文及注释译文
- 工程地质岩芯描述细则及范例
- Unit 2 Travelling Around Reading and Thinking 课件高中英语人教版(2019)必修第一册
- (高级)航空油料特设维修员(三级)理论考试题库-上(单选题)
- 山东省岩棉板外墙外保温系统应用技术规程
- 大学宿管部部长竞选稿
- 周围神经损伤(InjuryofPeripheralNerve)
评论
0/150
提交评论