第5章 设备管理【南理工王晓峰老师版权所有】

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

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

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

资源描述

第5章设备管理•操作系统中负责I/O设备管理的部分称为I/O系统,完成设备管理功能,对OS影响非常大。与处理机管理、存储器管理密切相关,设备管理因此常常作为操作系统内核的一部分。•设备管理的主要对象:I/O设备,设备控制器和I/O通道。•设备管理的基本任务:完成用户提出的I/O请求,提高I/O效率,提高I/O设备的利用率。•设备管理的主要功能:缓冲区管理,设备分配,设备处理,虚拟设备,实现设备独立性。•I/O设备种类多操作差异大,设备管理是操作系统中最繁杂且与硬件最紧密相关的部分。5.1I/O系统概述•I/O系统的组成主要包括:I/O设备、设备控制器及相关接口、总线等,大型主机还包括I/O通道。5.1.1I/O设备•1、I/O设备的类型•(1)按传输速率分类•低速:键盘、鼠标、语音输入输出设备。•中速:行式打印机、激光打印机。•高速:磁盘、磁带、光盘。•(2)按信息交换单位分类(信息组织方式):•块设备:信息的存取以数据块为单位,如磁盘(适合DMA方式)•字符设备:信息的存取以字符为单位,如打印机、交互式终端。•(3)按设备共享属性分类:•独占:如打印机•共享:如磁盘•虚拟:通过虚拟技术将一台独占设备变换为若干台逻辑设备,供多个进程同时使用。•2、设备与控制器之间的接口•设备不直接同计算机连接,一般是通过专用的电缆线连接控制器与设备。•两者传递的信号主要是三类:•(1)数据信号:控制器到设备(输出)、设备到控制器(输入)•(2)控制信号:控制器到设备•(3)状态信号:设备到控制器•在小型机和微型机中,控制器一般直接做成印刷电路板插入计算机(在微机中习惯称为卡,如图形加速卡,网卡)5.1.2I/O管理目标•设备管理要达到的主要目标是:•1.提供统一界面、方便用户使用–使用逻辑操作和逻辑设备名掩盖设备的物理细节。–程序对设备的独立性:在源程序和目标程序中都使用设备符号名(逻辑设备名);提供设备管理与文件系统的统一接口;向程序提供设备重定向功能。•2.发挥系统的并行性,提高I/O设备使用效率。•采用各种软硬结合的技术使设备、CPU、用户程序、人这四者达到最高程度的并行•采用的技术有:中断技术、缓冲技术、设备共享和假脱机技术。•3.实现设备的正确、安全使用——设备保护•技术:掩盖细节的高级接口;命名与权限管理;只有特权指令才能使用设备硬件接口。5.1.3I/O管理功能•1.缓冲区管理•计算机系统中各个部件速度的差异很大。中央处理机的速度以纳秒计,外部设备的处理速度则以毫秒甚至秒计。在不同时刻,系统各部分的负荷也常常很不均衡。为充分发挥并行性,引入缓冲技术。•2.外围设备的分配•按照设备的类型(独享、共享或虚拟)和系统中所采用的分配算法,决定把一个I/O设备分配给哪一个要求该类设备的进程。•在大、中系统中,分配设备的同时,还应分配相应的控制器和通道,以保证I/O设备与CPU之间有传递信息的通路;凡未分配到所需设备或控制器或通道的进程,应放入相应的等待队列。设备分配程序就是用来实现这一功能的。•3.设备处理•设备处理程序又叫设备驱动程序。•4.虚拟设备及实现设备独立性5.1.4I/O应用接口•I/O系统必须采用某种技术使I/O设备可以按统一的标准方式对待。•采用的方式有:抽象、包装与软件分层•可以从不同的I/O设备中抽象出一些通用类型。每个通用类型都可以通过一组标准函数(即接口)来访问。具体的差别被内核模块(设备驱动程序)所封装。•不同设备有自己的驱动程序,但提供了一组标准接口。•设备驱动程序层为内核I/O子系统隐藏设备控制器之间的差异,从而简化了OS开发人员的任务,也有利于硬件制造商。•每种OS都有自己的设备驱动程序接口。故一个特定设备可能有多种设备驱动程序。•而I/O系统调用又为上层应用程序包装了硬件细节。5.1.5设备管理的总体结构•划分为四层:•①设备中断处理程序;•中断处理程序是设备驱动程序中的一部分•②设备驱动程序;•③与设备无关的操作系统软件(设备无关层)•负责将逻辑设备名转换为物理设备名,实现设备的分配和回收,进行缓冲区管理。•④用户级软件(指用户空间的I/O软件)•用户与设备管理模块的接口,负责解释用户的应用请求,并将这种请求转化为具体的输入/输出操作。•相关层(较低的层)用于将硬件特征与无关层(较高的层)隔离开,而无关层(较高的层)则参与向用户提供一个友好、清晰而规范的接口。•从功能上看,无关层是I/O管理的主要部分,从代码量看,驱动层是I/O管理的主要部分。内核I/O结构LifeCycleofAnI/ORequest5.1.6I/O控制方式•询问方式,又称程序直接控制方式。•中断方式•DMA方式•通道技术5.2内核I/O子系统•内核I/O子系统是建立在硬件和设备驱动程序之上的。提供与I/O有关的服务,如调度、缓冲、高速缓冲、假脱机、错误处理等。5.2.1I/O调度•I/O调度是指OS根据一定算法按照一定的顺序为系统中的I/O请求提供服务。从而改善系统性能,使进程公平地共享设备。•OS通过为每个设备维护一个请求队列来实现调度。•I/O调度根据需要重新安排队列顺序以改善系统总体效率和应用程序的平均响应时间。5.2.2缓冲管理•缓冲区是用来保存在两个设备之间或在设备和应用程序之间所传输数据的内存区域。•1.引入缓冲区的原因•(1)处理数据的生产者和消费者速度不匹配。如从调制解调器上收到文件并保存到硬盘上。•(2)协调传输数据大小不一致的设备。•如计算机网络上,发送方消息被分成若干包,接收方在缓冲区中重组数据。•(3)减少对CPU的中断频率•(4)提高CPU和I/O设备之间的并行性•2.单缓冲(singlebuffer):•当用户进程发出I/O请求时,OS便在主存中为之分配一个缓冲区。•一个缓冲区,CPU和外设轮流使用,一方处理完之后接着等待对方处理。•3.双缓冲(doublebuffer):•为了加快输入和输出速度,引入双缓冲区。•设备输入时,先将数据送入第一缓冲区,装满后再转向第二缓冲区。•此时OS可以从第一缓冲区移出数据,送入用户进程所在内存。•两个缓冲区,CPU和外设都可以连续处理而无需等待对方。要求CPU和外设的速度相近。•4.循环缓冲•环形缓冲(circularbuffer):多个缓冲区,CPU和外设的处理速度可以相差较大。可参见“生产者-消费者问题”,•以上的缓冲区仅适用于特定的I/O进程和计算进程,属于专用缓冲区。系统较大时,会有多个专用缓冲区,消耗大量内存空间,利用率低,目前广泛使用公用缓冲池,池中设置了多个供若干进程共享的缓冲区。•5.缓冲池•(1)缓冲池的组成•既可用于输入,又可用于输出,缓冲池中有三类缓冲区:•①空闲缓冲区队列emq•②输入缓冲区队列inq:由装满输入数据的缓冲区链成的队列。•③输出缓冲区队列outq:由装满输出数据的缓冲区链成的队列。inqueueemptyqueueoutqueueBufferPoolDeviceCPU•(2)对缓冲池的操作:•①收容输入——设备输入数据•②提取输入——计算进程读入数据•③收容输出——计算进程输出数据•④提取输出——向设备输出数据。•上述操作访问各个缓冲区队列时,需要进行相应的互斥操作。5.2.3设备分配与回收•当进程向系统提出I/O请求时,只要是可能和安全的,设备分配程序便按照一定的策略把设备分配给请求进程。•有的系统中还要分配相应的控制器和通道。1设备分配中的数据结构•(1)设备控制表(DCT,DeviceControlTable)•每个设备一张,描述设备特性和状态。反映设备的特性、设备和控制器的连接情况。DCT的内容主要包括:–设备标识:用来区别不同的设备;–设备类型:反映设备的特性;如:块设备或字符设备;–设备配置:I/O地址等;–设备状态:忙/闲,等待/不等待;(若与设备链接的控制器或通道忙,则等待)–等待队列:等待使用该设备的进程队列;–与设备连接的控制器表指针。•(2)系统设备表(SDT,SystemDeviceTable)•系统内一张,反映系统中设备资源的状态,记录所有设备的状态及其设备控制表的入口。SDT表项的主要组成:–DCT指针:指向相应设备的DCT;–设备使用进程标识:正在使用该设备的进程标识;–DCT信息:为引用方便而保存的DCT信息,如:设备标识、设备类型等;•(3)控制器控制表(COCT,COntrollerControlTable)•每个设备控制器一张,描述I/O控制器的配置和状态。如DMA控制器所占用的中断号、DMA数据通道的分配。•(4)通道控制表(CHCT,CHannelControlTable)•每个通道一张,描述通道工作状态。控制器标识符控制器状态:忙/空闲与控制器连接的通道指针等待控制器的进程队列指针系统设备表设备控制表控制器控制表1通道控制表设备控制表1控制器控制表2控制器控制表n设备控制表npcbpcbpcbpcb(5)表格之间的关系pcbpcb2设备分配时应考虑的因素•设备分配的原则是合理使用外设(公平和避免死锁),提高设备使用率。•(1)考虑设备的固有属性•独享设备:打印机等。进程使用完自己释放,一般不能剥夺;•共享设备:磁盘、网卡等。多个进程并发使用,需合理调度;•虚拟设备:虚拟打印机等。可有多个进程使用,但FCFS。•(2)设备分配算法•与进程调度类似,但简单一些;–先来先服务(FCFS):按I/O请求的先后顺序,排成I/O请求命令队列;按FCFS分配设备;–基于优先级:依据进程的优先级,指定I/O请求的优先级,优先级高的排在设备队列的队首;同优先级则FCFS;按优先级高低分配设备。•(3)设备分配中的安全性•①安全分配方式•进程发出I/O请求后阻塞,完成后唤醒,即进程运行时不占有任何设备资源,摈弃了“请求保持”条件。缺点:CPU与I/O设备是串行工作。•②不安全分配方式•进程发出I/O请求后仍继续运行,又可发出I/O请求,仅当进程所请求的设备已被另一进程占用时,进程才进入阻塞状态。优点:多个设备并行操作;缺点:可能造成死锁。3设备的独立性•(1)设备独立性(Deviceindependence)的概念•设备独立性指除了直接与设备打交道的底层软件之外,其它部分的软件并不依赖于硬件。可以提高软件的设计效率。•为了实现设备独立性:引入物理设备、逻辑设备•应用程序使用逻辑设备名调用设备;OS实际执行时,使用物理设备名。•OS负责将逻辑设备名转换为物理设备名。•(2)设备独立性带来如下好处:•①设备分配时的灵活性•进程请求设备时,OS可从一类设备中选择空闲的分配,不会因特定设备忙而阻塞。•②实现I/O重定向•I/O重定向:实现I/O操作的设备可以更换,而不必改变应用程序。•如,调试程序时先输出到屏幕,最后再打印•(3)逻辑设备名到物理设备名映射的实现•①逻辑设备表(LUT)•当进程用逻辑设备名请求I/O设备时,系统为它分配相应的物理设备,并在LUT中建立一个表目。•②LUT的设置可采用两种方式•整个系统一张,不能有相同逻辑设备名。•每个用户一张,放入PCB中逻辑设备名物理设备名驱动程序入口地址/dev/tty00031038•4.基本的设备分配程序•(1)分配设备•(2)分配控制器•(3)分配通道系统设备表设备控制表控制器控制表1通道控制表设备控制表1控制器控制表2控制器控制表n设备控制表npcbpcbpcbpcbpcbpcb5.2.4SPOOLing技术•利用假脱机技术(SPOOLing,SimultaneousPeripheralOperationOnLine,也称为虚拟设备技术)可把独享设备转变成具有共享特征的虚拟设备,从而提高设备利用率。•1、什么是SPOOLing•引入:在多道程序系统中,专门利用一道程序(SPOOLing程序)来完成对设备的I/O操作。无需使用外围I/O处理机。ApplicationAApplicationBSPOOLingProgramDeviceVirtualI/OActualI/O•让主机直接控制I/O称为联机I/O;让另一台“外围机”代替主机控制I/

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

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

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

×
保存成功