7操作系统设备管理

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第七章设备管理概述I/O硬件特点I/O软件的组成有关技术设备处理I/O管理示意应用程序文件管理设备驱动程序控制寄存器数据寄存器状态寄存器设备控制器应用编程接口硬件接口一、概述1、I/O的特点CPU与I/O的速度差别大→尽量使两者交叠运行→减少由于速度差异造成的整体性能开销(1)I/O性能经常成为系统性能的瓶颈(2)操作系统庞大复杂的原因之一:资源多、杂,并发,均来自I/O外设种类繁多,结构各异输入输出数据信号类型不同速度差异很大(3)与其他功能联系密切,特别是文件系统(1)按功能特性分存储型设备输入输出型设备(交互型设备)数据通信设备2、设备的分类(2)按数据组织分块设备以数据块为单位存储、传输信息传输速率较高、可寻址(随机读写)字符设备以字符为单位存储、传输信息传输速率高、不可寻址设备的分类(续1)(3)按资源分配角度分独占设备在一段时间内只能有一个进程使用的设备,一般为低速I/O设备(如打印机,磁带等)共享设备在一段时间内可有多个进程共同使用的设备,多个进程以交叉的方式来使用设备,其资源利用率高(如硬盘)设备的分类(续2)虚设备在一类设备上模拟另一类设备,常用共享设备模拟独占设备,用高速设备模拟低速设备,被模拟的设备称为虚设备目的:将慢速的独占设备改造成多个用户可共享的设备,提高设备的利用率(实例:SPOOLing技术,利用虚设备技术——用硬盘模拟输入输出设备)设备的分类(续3)SPOOLing技术为解决独立设备数量少,速度慢,不能满足众多进程的要求,而且在进程独占设备期间,设备利用率比较低而提出的一种设备管理技术另一种资源转换技术设备的分类(续4)(1)按照用户的请求,控制设备的各种操作,完成I/O设备与内存之间的数据交换,最终完成用户的I/O请求设备分配与回收记录设备的状态根据用户的请求和设备的类型,采用一定的分配算法,选择一条数据通路执行设备驱动程序,实现真正的I/O操作设备中断处理:处理外部设备的中断缓冲区管理:管理I/O缓冲区3.设备管理的目标和任务(2)建立方便、统一的独立于设备的接口方便性:向用户提供使用外部设备的方便接口,使用户编程时不考虑设备的复杂物理特性统一性:对不同的设备采取统一的操作方式,在用户程序中使用的是逻辑设备逻辑设备与物理设备、屏蔽硬件细节(设备的物理细节,错误处理,不同I/O的差异性)设备管理的目标和任务(续1)设备独立性(设备无关性)目的:提高操作系统的可适应性和可扩展性从用户角度:用户在编制程序时,使用逻辑设备名,由系统实现从逻辑设备到物理设备(实际设备)的转换,并实施I/O操作从系统角度:设计并实现I/O软件时,除了直接与设备打交道的低层软件之外,其他部分的软件不依赖于硬件好处:设备分配时的灵活性易于实现I/O重定向(3)充分利用各种技术(通道,中断,缓冲,异步I/O等)提高CPU与设备、设备与设备之间的并行工作能力,充分利用资源,提高资源利用率并行性均衡性(使设备充分忙碌)设备管理的目标和任务(续3)(4)保护设备传送或管理的数据应该是安全的、不被破坏的、保密的设备管理的目标和任务(续4)1.设备组成I/O设备一般由机械和电子两部分组成把这两部分分开处理,以提供更加模块化,更加通用的设计二、I/O硬件特点设备组成(续1)(1)物理设备机械部分是设备本身(物理装置)(2)设备控制器电子部分叫做设备控制器或适配器完成设备与主机间的连接和通信在小型和微型机中,它常采用印刷电路卡插入计算机主板上的总线插槽通过若干接口寄存器或接口缓冲区与CPU通信设备组成(续2)电子部分完成的工作(端口)地址译码按照主机与设备之间约定的格式和过程接受计算机发来的数据和控制信号向主机发送数据和状态信号将计算机的数字信号转换成机械部分能识别的模拟信号,或反之实现设备内部硬件缓冲、数据加工等提高性能或增强功能2.设备接口操作系统将命令写入控制器的接口寄存器(或接口缓冲区)中,以实现输入/输出,并从接口寄存器读取状态信息或结果信息例如:IBMPC的软盘控制器可接收15条命令,READ、WRITE、FORMAT、SEEK、RECALIBRATE,命令可以带参数,它们被一起送入控制器的寄存器中当控制器接受一条命令后,可独立于CPU完成指定操作,CPU可以转去执行其它运算。命令完成时,控制器产生一个中断,CPU响应中断,控制转给操作系统。CPU通过读控制器寄存器中的信息,获得操作结果和设备状态控制器与设备之间的接口常常是一个低级接口。例如磁盘,可以按每个磁道8扇区,每个扇区512个字节进行格式化。然而,实际从驱动器出来的却是一连串的位流,以一个头标(preamble)开始,然后是一个扇区的4096位(512×8),最后是检查和或错误校验码(Error—C一C:ECC)。头标是在对磁盘格式化时写上的,它包括柱面和扇区数,扇区的大小和类似的一些数据控制器的任务是把串行的位流转换为字节块,并进行必要的错误修正。首先,控制器按位进行组装,然后存入控制器内部的缓冲区中形成以字节为单位的块。在对块验证检查和并证明无错误时,再将它复制到内存中设备接口(续1)接口电路中:多个寄存器每个寄存器有唯一的一个地址,该地址称为I/O端口地址I/O指令形式与I/O地址是相互关联的主要有两种形式:内存映像编址(内存映像I/O模式)I/O独立编址(I/O专用指令)3.I/O端口地址存储映像编址分配给系统中所有端口的地址空间与内存的地址空间统一编址主机把I/O端口看作一个存储单元,对I/O的读写操作等同于对存储器的操作优点凡是可对存储器操作的指令都可对I/O端口操作不需要专门的I/O指令I/O端口可占有较大的地址空间缺点:占用内存空间I/O独立编址分配给系统中所有端口的地址空间是完全独立的,与内存的地址空间没有关系主机使用专门的I/O指令对端口进行操作优点外部设备不占用内存的地址空间程序设计时,易于区分是对内存操作还是对I/O端口操作缺点:对I/O端口操作的指令类型少,操作不灵活例子:8086/8088,分配给I/O端口的地址空间64K,0000H~0FFFFH,只能用IN和OUT指令对其进行读写操作1、直接I/O(轮询)由CPU负责在机器内存与设备控制器数据寄存器之间进行数据传送2、中断驱动I/O为了减少设备驱动程序不断地询问控制器状态寄存器的开销当I/O操作结束后,由设备控制器主动通知设备驱动程序3、DMA4、通道4.I/O控制方式I/O控制方式(续1)设备驱动程序控制寄存器数据寄存器状态寄存器设备控制器从设备上读数据……数据应用程序系统接口硬件接口①②③④⑤⑥I/O控制方式(续2)设备驱动程序控制寄存器数据寄存器状态寄存器设备控制器从设备上读数据……数据应用程序设备处理程序中断处理程序设备状态表①②③④⑤⑥⑦⑧⑧⑨I/O软件设计的基本思想——分层把软件组织成为一系列的层较低层软件考虑硬件的特性,并向较高层软件提供接口较高层软件不依赖于硬件,并向用户提供一个友好的、清晰的、简单的、功能更强的接口三、I/O软件的组成1.I/O软件的层次I/O软件各层的功能(1)用户进程层执行输入输出系统调用,对I/O数据进行格式化,为假脱机输入/输出作准备(2)独立于设备的软件实现设备的命名、设备的保护、成块处理、缓冲技术和设备分配(3)设备驱动程序设置设备寄存器、检查设备的执行状态(4)中断处理程序负责I/O完成时,唤醒设备驱动程序进程,进行中断处理(5)硬件层实现物理I/O的操作2.设备驱动程序与设备密切相关的代码放在设备驱动程序中,每个设备驱动程序处理一种设备类型每一个控制器都设有一个或多个设备寄存器,用来存放向设备发送的命令和参数。设备驱动程序负责释放这些命令,并监督它们正确执行设备驱动程序(续1)一般,设备驱动程序的任务是接收来自与设备无关的上层软件的抽象请求,并执行这个请求在设备驱动程序的进程释放一条或多条命令后,系统有两种处理方式,多数情况下,执行设备驱动程序的进程必须等待命令完成,这样,在命令开始执行后,它阻塞自已,直到中断处理时将它解除阻塞为止。而在其它情况下,命令执行不必延迟就很快完成3.设备独立的软件虽然I/O软件中一部分是设备专用的,但大部分软件是与设备无关的。设备驱动程序与设备独立软件之间的确切界限是依赖于具体系统的设备独立的软件(续1)设备独立的软件(续2)1.独立于设备的软件的基本任务是实现所有设备都需要的功能,并且向用户级软件提供一个统一的接口2.如何给文件和设备这样的对象命名是操作系统中的一个主要课题。独立于设备的软件负责把设备的符号名映射到正确的设备驱动上3.设备保护系统如何防止无权存取设备的用户存取设备呢?设备独立的软件(续3)4.不同的磁盘可以采用不同的扇区尺寸。向较高层软件掩盖这一事实并提供大小统一的块尺寸,这正是设备独立软件的一个任务。它可将若干扇区合成一个逻辑块。这样,较高层的软件只与抽象设备打交道,独立于物理扇区的尺寸而使用等长的逻辑块5.缓冲技术6.设备分配7.出错处理4.用户空间的I/O软件尽管大部分I/O软件都包含在操作系统中,但仍有一小部分是由与用户程序连接在一起的库过程,甚至完全由运行于核外的程序构成。系统调用,包括I/O系统调用,通常由库过程实现这些过程所做的工作只是将系统调用时所用的参数放在合适的位置,由其它的I/O过程实际实现真正的操作四、设备相关技术1.Spooling(虚拟设备)技术一个虚拟设备一个资源转换技术(用空间,如输入,输出等换取CPU时间)解决问题:在进程所需物理设备不存在或被占用时使用该设备假若进程打开打印机特殊文件后几小时内无所事事,其他进程什么都打印不了!解决方案:创建值班(精灵)进程(daemon)、SPOOLing目录进程首先生成要打印的文件,放入SPOOLing目录值班进程:唯一获准使用打印机特殊文件的进程用以打印SPOOLing目录里的文件通过禁止对特殊文件的直接使用、提高了使用效率打印机的SPOOLing值班进程网络的SPOOLing值班进程SPOOLing技术今天仍被广泛使用网络文件传送先把文件送到网络SPOOLing目录,然后网络值班进程把它取出并传递到目标地址Internet电子邮件系统为了寄邮,调用电子邮件程序待发信存在SPOOLing中供以后传输注意:SPOOLing只提高设备利用率,缩短用户程序执行时间,并不提高CPU利用率(1)定义:通道是独立于CPU的专门负责数据输入/输出传输工作的处理机,对外部设备实现统一管理,代替CPU对输入/输出操作进行控制,从而使输入,输出操作可与CPU并行操作。可以执行通道程序(2)引入通道的目的为了使CPU从I/O事务中解脱出来,同时为了提高CPU与设备,设备与设备之间的并行工作能力2.通道技术字节多路通道字节多路通道以字节为单位传输信息,它可以分时地执行多个通道程序。当一个通道程序控制某台设备传送一个字节后,通道硬件就控制转去执行另一个通道程序,控制另一台设备传送信息主要连接以字节为单位的低速I/O设备,如打印机,终端以字节为单位交叉传输,当一台传送一个字节后,立即转去为另一台传送字节(3)分类分类(续1)选择通道选择通道是以成组方式工作的,即每次传送一批数据,故传送速度很高。选择通道在一段时间内只能执行一个通道程序,只允许一台设备进行数据传输分类(续2)当这台设备数据传输完成后,再选择与通道连接的另一台设备,执行相应的通道程序主要连接磁盘,磁带等高速I/O设备选择通道分类(续3)成组多路通道它结合了选择通道传送速度高和字节多路通道能进行分时并行操作的优点。它先为一台设备执行一条通道指令,然后自动转接,为另一台设备执行一条通道指令主要连接高速设备这样,对于连接多台磁盘机的数组多路通道,它可以启动它们同时执行移臂定位操作,然后,按序交叉地传输一批批数据。数据多路通道实际上是对通道程序采用多道程序设计的硬件实现(4)硬件连接结构通道:执行通道程序,向控制器发出命令,并具有向CPU发中断信号的功能。一

1 / 89
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功