第4章设备管理14.1设备管理子系统概述4.1.1设备管理的主要功能1.设备的分配在多道程序系统中,用户不能直接使用设备,由操作系统统一调度和控制。第4章设备管理22.设备映射为了增加软件对运行平台的适应性,现代大多数据操作均支持应用软件对设备的无关性。设备的无关性是指软件所需的设备与具体的设备没有直接的联系。第4章设备管理3为了实现设备的无关性,引上入了丙个基本概念:逻辑设备:对某一类物理设备的抽象;物理设备:某一个具体的物理设备;在应用软件中指定逻辑设备,操作系统再根据用户的指定选定具体的物理设备进行操作。第4章设备管理43.设备驱动设备驱动程序与具本的硬件密切相关,负责对设备的具体操作。4.I/O缓冲区管理由于外设的速度较CPU慢很多,为了提高CPU的利用率,系统引入了I/O缓冲区管理。第4章设备管理54.1.2设备管理分层模型大多数现代操作系统对设备的管理都采用分层的管理模型。用户进程设备硬件无关层设备硬件相关层设备硬件第4章设备管理64.1.3I/O控制方式1.程序I/O方式由用户程序直接控制对外设的输入输出操作。2.中断方式程序控制方式有一个严重的缺点:独占CPU,使CPU的速度降到外设的水平,不能充分发挥CPU的性能,为了克服这个第4章设备管理7缺点,引入了中断控制传输方式。中断控制方式,也称中断传送方式。当外设准备好后,向CPU发出中断请求,使CPU中断现行程序的执行,转去执行为外设服务的输入或输出程序,执行完对外设的输入或输出操作后,CPU再继续执行原来的程序。第4章设备管理83.DMA方式DMA(DirectMemoryAccess)即直接存储器存取方式,它是在不需要CPU介入的情况下,由专门的硬件(DMA控制器)直接控制数据的传送。DMA方式适合于高速外设与内存之间的批量数据传送,例如磁盘与内存之间的数据交换。第4章设备管理94.I/O通道方式通道方式通过执行通道程序控制外设与内存进行数据交换。CPUMemory通道I/O接口外设外设①通知“通道”启动②执行程序②执行通道程序第4章设备管理104.2设备分配1.设备控制块UCB4.2.1相关的数据结构每个设备都有一个UCB,它是设备存在的标志,UCB的信息主要有:(1)设备标识;第4章设备管理11(2)设备状态;(3)相连的控制器;(4)重试次数(I/O出错时);(5)占有设备的进程;(6)设备等待队列;(7)通路等待队列;第4章设备管理122.控制器控制块CUCB3.通道控制块CCB4.系统设备表(SDT)4.2.2设备分配算法1.设备分配算法(1)先来先服务(2)优先级高者优先服务第4章设备管理132.独占设备的分配独占性设备是指在一个时间段内只能有一个进程占有并使用。进程使用独占性设备过程为:申请、使用、释放。3.共享型设备的分配第4章设备管理144.3I/O缓冲技术为了提高系统的I/O性能,通常要采用I/O缓冲区,例如:打印缓冲区、磁盘缓冲区。1.使用缓冲区(1)缓解处理器与设备之间不匹配的矛盾第4章设备管理15(2)实现设备与处理器一定程度上的并行(3)减少设备的中断频率,放宽对中断响应的限制;引入缓冲区技术后,系统可以利手提前读和延迟写技术改善系统性能;2.缓冲存储器类型:硬件缓冲和软件缓冲第4章设备管理163.缓冲区组织形式单缓冲双缓冲循环缓冲缓冲池第4章设备管理17操作系统通常提供两种缓冲池:一种用于块设备:通常较大一种用于字符设备:通常较小缓冲区属于操作系统的空间,用户不能直接访问。第4章设备管理184.缓冲技术的实现缓冲区由系统管理,用户要使用向系统请请。(1)输入设备数据从输入设备到缓冲由设备驱动程序完成,缓冲区到用户由操作系统完成。第4章设备管理19(2)输出设备数据从用户到缓冲区由操作系统完成,从缓冲区到输出设备由设备驱动程序完成。(3)输入/输出设备第4章设备管理204.4虚拟设备虚拟设备:从具体设备中抽象出来的设备。1.虚拟设备技术的工作原理用户虚拟设备物理设备共享独立第4章设备管理212.虚拟设备的实现当用户需要进行I/O操作时,系统为其分配一个I/O缓冲区,用户的I/O操作都是针对这个I/O缓冲区进行的,这样的缓冲区有多个,系统再调用实际的设备对每个缓冲区进行I/O操作。第4章设备管理223.Spooling系统SimultaneousPeripheralOperationsOn-Line中文直译:联机情况下同时进行的外围设备操作,通常称其为“假脱机”操作。其主要原理:低速的外设先将数据高速设备,然后再进入系统。第4章设备管理234.5磁盘设备的管理4.5.1磁盘设备1.寻道时间2.转速3.传输延时4.缓存第4章设备管理244.5.2磁盘调度算法1.先来先服务原则FCFS这是最简单最公平的调度算法,但效率低下。2.最短寻道时间优先算法SSFT3.扫描算法SCAN第4章设备管理25扫描算法也是称电梯算法。先将与磁头移动方向一致的数据读完,再反方向读取。4.N步扫描算法N-SCAN4.5.3磁盘高速缓存第4章设备管理264.6Linux的设备管理Linux中对设备的管理主要采用两种方式:轮询(Polling):周期性地查询设备的工作状态;中断(Interrupt):第4章设备管理27Linux将设备分为块设备、字符设备、网络接口设备三类。Linux中,每台设备都有一个主设备号和一个从设备号。主设备号:描述与设备对应的设备驱动程序。从设备号:描述一个驱动程序控制的不同设备。第4章设备管理284.6.1Linux驱动程序的设计框架1.设备的注册和注销对字符设备用register_chardev()函数;对块设备用register_blkdev()函数;第4章设备管理292.对设备的操作(1)设备的打开与释放在Linux中将设备当作文件对待,故也用Open()函数,例如,lp_open()、hd_open()。释放设备函数release(),例如,lp_release()、tty_release()。第4章设备管理30(2)设备的读写操作在Linux中采用相应设备的读写函数进行操作,例如对于虚终端,vcs_read()、vcs_write()。(3)设备的控制通过ioctl()函数,例如,cdrom_ioctl()。第4章设备管理31