BootingPostBIOSPartitionbootprogramLoaderOSROMRAMPOWERONCMOSAdaptedfrom:OperatingSystems(3rdEdition,GaryNutt)第五章设备管理MANAGINGI/ODEVICES1、没有I/O设备的计算机就像一个没有轮子的汽车I/O管理的重要性2.I/O性能经常成为系统性能的瓶颈(1)CPU性能不等于系统性能,响应时间也是一个重要因素(2)CPU性能越高,与I/O差距越大弥补:更多的进程(3)进程切换多,系统开销大3.操作系统庞大复杂的原因之一是:资源多、杂,并发,均来自I/O4.理解I/O的工作过程与结构是理解操作系统的工作过程与结构的关键5.I/O技术很实用6.与其他功能联系密切,特别是文件系统5.1I/O系统的组成5.2I/O控制方式5.3缓冲管理5.4设备分配5.5设备驱动5.6磁盘存取设备管理本章内容5.1I/O系统的组成5.1.1I/O设备分类1.按使用特性分存储型设备输入型设备(外设主机)输出型设备(主机外设)输入输出型设备2.按信息交换的单位分块设备——以数据块为单位存储、传输信息字符设备——以字符为单位存储、传输信息3.按外部设备的从属关系分系统设备——指操作系统生成时,登记在系统中的标准设备(如终端、打印机、磁盘机等)3.按外部设备的从属关系分用户设备——指在系统生成时,未登记在系统中的非标准设备。对于这类设备的处理程序由用户提供,并将其纳入系统,由系统代替用户实施管理。如A/D,D/A转换器,CAD所用专用设备4.按传输速率:低速(KB/s)中速高速(100KB/s)5.按资源分配角度分独占设备——在一段时间内只能有一个进程使用的设备,一般为低速I/O设备。(如打印机,磁带等)共享设备——在一段时间内可有多个进程共同使用的设备,多个进程以交叉的方式来使用设备,其资源利用率高。(如硬盘)虚设备——在一类设备上模拟另一类设备,常用共享设备模拟独占设备,用高速设备模拟低速设备,被模拟的设备称为虚设备。(将慢速的独占设备改造成多个用户可共享的设备,提高设备的利用率)为了提高资源利用率,如SPOOLing技术就使用了虚设备技术——用硬盘模拟输入输出设备。SPOOLing技术为解决独立设备数量少,速度慢,不能满足众多进程的要求,而且在进程独占设备期间,设备利用率比较低而提出的一种设备管理技术5.1.2设备控制器设备组成•I/O设备一般由机械和电子两部分组成•把这两部分分开处理,以提供更加模块化,更加通用的设计1.设备机械部分是设备本身2.设备控制器–电子部分叫做设备控制器或适配器。–在小型和微型机中,它常采用印刷电路卡插入计算机中控制器卡上通常有一个插座,通过电缆与设备相连控制器和设备之间的接口是一个标准接口,它符合ANSI、IEEE或ISO这样的国际标准I/O模块的一般结构I/O逻辑数据寄存器状态/控制寄存器外部设备界面接口外部设备界面接口…...系统接口外设接口数据线地址线控制线数据状态控制数据状态控制数据信号线设备到控制器的接口I/O设备状态信号线控制信号线控制逻辑转换器缓冲到设备控制器5.1.2设备控制器•控制器是CPU与I/O设备之间的接口;•接收从CPU发来的命令,并控制I/O设备工作。•控制器是一个可编址设备,例如PC中硬盘控制器的I/O端口地址为1F0~1F7。•从物理上看,控制器是一块接口卡或主板上的一个功能模块。1.设备控制器的组成数据线控制器与设备接口CPU与控制器接口控制器与设备接口1地址线控制线I/O控制逻辑控制器与设备接口i数据控制控制/状态R数据寄存器状态数据控制状态......I/O设备的编址:为了CPU便于对I/O设备进行寻址和选择,必须给众多的I/O设备进行编址,也就是给每一台设备规定一些地址码,称为设备号或设备代码.有两种寻址方法⑴专设I/O指令.例指令IN完成输入,指令OUT完成输出操作.其地址码指出I/O设备的设备代码.这是I/O空间独立于存储器空间的情况,即设备码的编码和存储器的存储单元的编码是平行存在的.⑵利用访存(取数/存数)指令完成I/O功能.使用这种方法时,从主存的地址空间中分出一部分地址码作为I/O的设备代码,当访问到这些地址时,表示被访的不是主存储器,而是I/O设备寄存器(例如,设备的数据缓冲器或设备的状态寄存器).这时I/O空间和存储器空间是合在一起的,即I/O设备和存储单元是统一编址的.80X86是有专门的I/O指令,直接寻址设备码可达512个.输入输出设备占用地址数地址码(16进制)硬盘控制器16320~32FH软盘控制器83F0~3F7H单色显示器/并行打印机163B0~3BFH彩色图形显示器163D0~3DFH异步通信控制器83F8~3FFH•操作系统将命令写入控制器寄存器中,以实现输入/输出例如:IBMPC的软盘控制器可接收15条命令,READ、WRITE、FORMAT、SEEK、RECALIBRATE,命令可以带参数。它们被一起送入控制器的寄存器中•当控制器接受一条命令后,可独立于CPU完成指定操作,CPU可以转去执行其它运算。•命令完成时,控制器产生一个中断,CPU响应中断,控制转给操作系统。•CPU通过读控制器寄存器中的信息,获得操作结果和设备状态2.设备控制器的功能•地址识别:识别I/O端口地址,使I/O操作与设备对应。•接收和识别命令指挥设备执行接收CPU通过I/O总线发来的命令和参数,存储在控制器中相应的控制寄存器中,并对它进行译码识别,转换成适当的电信号,通过控制器与设备的接口向设备发送,指挥设备执行特定的操作。•接收和记录设备的状态接收从设备发来的电信号,进行转换和解释,变为设备的状态信息,将此结果记录在控制器的状态寄存器上,供CPU了解。•数据交换、数据缓冲、差错控制实现CPU↔控制器↔设备的数据交换,从而实现了CPU到设备的数据传递和设备到CPU的数据传递。举例:典型的设备控制器是磁盘控制器,它从I/O总线上接收发来的诸如“写这个数据块”之类的高级命令,并对它进行译码识别,转换成诸如“把磁头定位在正确的磁道上”和“把数据写入这个磁道”之类的低级磁盘操作的电信号,指挥磁盘驱动器执行这些操作,每执行一步都要将磁盘驱动器的发来的电信号进行转换和解释,变为设备的数据状态信息,将此结果记录在控制器的状态寄存器上,供CPU了解。CPU根据此状态信息确定下一步如何操作。•枢轴柱面扇柱面磁道扇区磁头移动臂梁5.1.3I/O通道•引入通道的目的:为了使CPU从I/O事务中解脱出来,同时为了提高CPU与设备,设备与设备之间的并行工作能力•原理:执行通道程序,向控制器发出命令,并具有向CPU发中断信号的功能。一旦CPU发出指令,启动通道,则通道独立于CPU工作。一个通道可连接多个控制器,一个控制器可连接多个设备,形成树形交叉连接通道程序:I/O处理机:由运算和控制逻辑,累加器,寄存器构成,有指令系统,由通道程序控制。通道程序:•由通道指令组成;•由CPU按数据传送的不同要求自动生成;•放在主存中;•其在主存中的起始地址通知I/O处理机:目态(目态程序)管态(I/O管理程序)通道(运行通道程序)请求I/O转管指令编制通道程序启动通道组织I/O操作I/O操作结束向CPU发出中断请求响应I/O中断请求登记或例外情况处理CPUt•管理程序根据用户提供的参数(设备号、交换信息的起址、交换的字节数)编制通道程序;•将其放在内存的相应缓冲区中,起址CAW置于通道寄存器中;•执行“启动I/O”指令(SIO)使通道进入通道选择期(选择通道、子通道、设备控制器及设备),寻找并启动相应的外部设备。•通道被启动后,CPU退出管态,返回目态继续执行目标程序,而通道则按照通道程序的要求组织整个I/O操作,进入数据传输期,开始控制内存与设备之间的直接数据交换,直到数据传输结束(或出现非正常结束)才由CPU处理。•系统中还可以同时有多个通道分别运行自己的通道程序,控制所属的I/O操作,实现通道与通道、设备与设备之间的全方位并行。通道类型•字节多路通道:连接大量慢速外围设备而设置的,它可以分时地执行多个通道程序•当一个通道程序控制某台设备传送一个字节后,通道硬件就控制转去执行另一个通道程序,控制另一台设备传送信息•主要连接以字节为单位的低速I/O设备。如打印机,终端。以字节为单位交叉传输,当一台传送一个字节后,立即转去为另一台传送字节通道类型选择通道•选择通道:以成组方式工作的,即每次传送一批数据,故传送速度很高。在这段时间内只能为一台设备服务。当这台设备数据传输完成后,再选择与通道连接的另一台设备。•主要连接磁盘,磁带等高速I/O设备。通道类型•成组多路通道:它结合了选择通道传送速度高和字节多路通道能进行分时并行操作的优点。它先为一台设备执行一条通道指令,然后自动转接,为另一台设备执行一条通道指令。•主要连接高速设备。数据多路通道实际上是对通道程序采用多道程序设计的硬件实现。3.解决瓶颈问题通道往往成为I/O的瓶颈如图:(p149图5-4)存储器通道1通道2控制器1控制器2控制器3控制器4设备1设备2设备3设备4设备5设备6设备7存储器通道1通道2控制器1控制器2设备1设备2设备3设备4改单通路为多通路解决瓶颈问题(p150图5-5)•总线:将计算机系统中的各个子系统(CPU、内存、外设等)相互连接,且连接是共享的–好处:低成本(一线多用)、灵活性(易于增加设备,)–总线的缺点:本身形成了通讯瓶颈,限制I/O吞吐量–总线分类:数据总线、地址总线、控制总线•引入原因:在设备与主机的硬连接上,引入总线,节省连线并提供配置扩充与改变时的灵活性;5.1.4总线系统•定义总线上连接计算机各个部件的通信线路和相关的控制电路。是微处理器芯片对外引线信号的延伸或映射,是微处理器与片外存储器及I/0接口传输信息的通路。系统总线信号按功能可分为三类:地址总线(Where):指出数据的来源与去向。地址总线的位数决定了存储空间的大小。数据总线(What)提供模块间传输数据的路径,数据总线的位数决定微处理器结构的复杂度及总体性能。控制总线(When):提供系统操作所必需的控制信号,对操作过程进行控制与定时。•微机中常用总线:①ISA总线:工业标准总线,也叫AT总线,数据16位②EISA总线:扩展的工业标准总线与ISA总线兼容,数据线32位③VESA总线:1991年推出的32位局部总线。④PCI总线:局部总线标准,数据线32-64位。PC系统总线发展•PC/XT总线是8位总线标准•AT总线提高到16位,增加了C,D插座CPU与控制器间通讯:•单总线模型(微机、小型机)•多总线模型(中、大型机)控制器与设备接口磁盘控制器打印机控制器磁盘驱动器打印机内存CPU•扩充总线:亦称设备总线,用于系统I/O扩充。与系统总线工作频率不同,经接口电路对系统总统信号缓冲、变换、隔离,进行不同层次的操作(ISA、EISA、MCA)•局部总线:扩充总线不能满足高性能设备(图形、视频、网络)接口的要求,在系统总线与扩充总线之间插入一层总线。由于它经桥接器与系统总线直接相连,因此称之为局部总线(PCI)。总线操作•总线一个操作过程是完成两个模块之间传送信息,启动操作过程的是主模块,另外一个是从模块。某一时刻总线上只能有一个主模块占用总线。•总线的操作步骤:主模块申请总线控制权,总线控制器进行裁决。主模块得到总线控制权后寻址从模块,从模块确认后进行数据传送。数据传送的错误检查。5.2I/O控制方式•程序I/O方式•中断驱动I/O控制方式•DMA控制方式•I/O通道控制方式5.2.1程序I/O方式CPUI/OI/OCPUCPU忙等循环检测I/OCPUCPU内存向I/O控制器发读命令启动输入机,置busy=1读I/O控制器状态busy检查状态就绪busy=0未就绪busy=1出错从I/O控制器中读入字向存储器中写字P152图5-7(a)完成?NY下条指令从输入机读字到控制器数据寄存器5.2.2中断驱动I/O