[OS复习]设备管理1

来源:互联网 发布:js复选框全选取消全选 编辑:程序博客网 时间:2024/05/21 11:22

1.设备管理概述

设备管理的主要功能包括:设备分配、设备映射、设备驱动、I/O缓冲区管理

1.1设备分配

多道程序系统中的设备不允许用户直接使用,而是由操作系统统一调度和控制。设备分配功能是设备管理的基本任务。设备分配程序按照一定的策略,为申请设备的用户进程分配设备,记录设备的使用情况 

1.2设备映射

为了提高应用软件对运行平台的适应能力,方便实现应用软件I/O重定向,大多数现代操作系统均支持应用软件对设备的无关性,即通常所说的设备无关性,或者设备独立性。设备无关性:应用软件所引用的、用于实现I/O操作的设备与物理I/O系统中实际安装的设备没有固定的联系。
逻辑设备和物理设备 :
逻辑设备是指,应用软件所引用的用于实现I/O操作的设备。
物理设备则指,物理I/O系统中实际安装的设备。
从应用软件的角度看,逻辑设备是一类物理设备的抽象。从操作系统设备管理程序的角度看,物理设备则是某种逻辑设备的实例。
如果某系统支持设备无关性,那么该系统中应用软件所引用的逻辑设备与实际安装的物理设备没有固定的联系。事实上,在应用软件运行期间,操作系统的设备管理程序必须将该应用软件对逻辑设备的引用转换成对相关物理设备的引用。设备管理的这种功能称为逻辑设备到物理设备的映射功能,简称设备映射功能。

1.3设备驱动

又称设备处理,指对物理设备进行控制,以实现真正的I/O操作。设备驱动的主要任务是:接收上层软件发来的抽象服务请求,例如读/写命令,再把它转换为具体要求,通过一系列的I/O指令,控制设备完成请求的操作;同时,设备驱动程序还将设备发来的有关信号传送给上层软件,例如设备是否已损坏等。 
设备驱动程序与硬件密切相关,应为每一类设备配置一种驱动程序。设备驱动程序一般由设备开发厂商根据操作系统的要求组织编写,操作系统仅对与设备驱动的接口提出要求,一般不负责具体设备驱动程序的编写有时候,某些硬件无法在某种操作系统中使用,原因很可能就是没有专门的或通用的设备驱动程序,或者设备驱动程序设计有问题,使得设备无法正常工作

1.4I/O缓冲区的管理

为了缓和处理机与外部设备间速度不匹配的矛盾,提高处理机和外部设备间的并行性,现代操作系统大都在设备管理部分引入了缓冲技术。通常,缓冲区是指内存中的若干区域,用于缓存进程与外部设备间的数据传输。又称为I/O缓冲区。I/O缓冲区管理的任务是:组织I/O缓冲区,并为使用者提供获得和释放I/O缓冲区的手段。 

1.5通用设备管理分层模型 

将设备管理功能模块分为设备硬件无关以及设备硬件相关两个层次。
设备硬件无关层主要实现:I/O缓冲区管理以及设备映射功能。该层与设备用法有关,与设备硬件无关。一般地,根据设备的用法,该层也可视作虚拟存储系统、文件系统或通信系统的一部分。
设备硬件相关层将设备硬件无关层与设备硬件隔离开来。从设备硬件无关层的角度看,设备硬件相关层为其提供了一个相对简洁的I/O功能接口;该接口屏蔽了设备硬件复杂的操作细节。从设备硬件相关层的内部看,该层主要实现设备驱动功能。毫无疑问,该层与设备硬件密切相关。

支持中断的设备管理模型:

IOCS(I/O control system,I/O控制系统)。

2计算机I/O子系统的组成

2.1总线型I/O系统的结构


具有控制器的I/O系统结构:
传统的设备 = 机械部分 + 电子部分;电子部分在系统的控制下驱动机械部分运转,完成I/O操作。由于设备中电子部分比机械部分的速度快得多。为了降低硬件成本,将电子部分从设备中分离出来作为一个独立的部件,这就是控制器。分离之后的设备仅由机械部分构成,一个控制器可与多个设备相连,交替地或分时地控制与其相连的设备。例如,磁盘控制器可以控制多个磁盘驱动器。

2.2设备的控制

设备的寻址与操作:
从处理机的角度看,各种外部设备可以看作是由一组设备寄存器组成的。常见的设备寄存器有:操作方式寄存器、命令寄存器、数据寄存器、状态寄存器等。为了使CPU能够寻址这些设备寄存器,硬件平台引入了I/O端口地址的概念。I/O端口地址的编址方式有两种:(1)将设备寄存器与内存物理单元统一编址;(2)独立于内存物理地址为设备寄存器编址。无论一个设备是否由多个控制器控制,或者一个控制器控制了多少个设备,每一个设备都能通过这些寄存器的地址唯一确定
即插即用技术
随着外部设备种类增加,设备间极可能发生冲突。即设备使用的中断号、DMA、内存地址、端口地址可能因相同或重叠而导致设备无法正常工作。手工调整这些设备的相关参数要求用户具有较多的计算机硬件知识,并对系统配置的硬件有较全面的了解。 即插即用,顾名思义是指,插上了就可使用,不需要用户进行其它设置。“即插即用”技术取消了跳线和软件配置程序,当用户插入一个“即插即用”适配卡或设备时,“即插即用”功能就可以自动进行检测,配置相应的接口参数,并安装相应的驱动程序。1.对已安装硬件的自动和动态识别。包括系统初始安装时、两次系统启动之间以及运行时发生的硬件事件(如笔记本的对接/分离以及设备的插入/拔出)的响应;2.配合操作系统分配/再分配硬件资源 。3.加载相应的驱动程序。当系统中加入新设备时,如果操作系统中没有集成相应设备的驱动程序,则会要求用户指定驱动程序的位置并完成驱动程序的安装。

2.3设备驱动程序

设备驱动程序一般由设备制造商提供,不包含在操作系统中。但是,为了方便用户,操作系统软件包中通常会集成提供标准的、通用的或者流行的、常用设备厂商的设备驱动程序供用户选择。从系统分层的观点来讲,设备驱动程序可以是操作系统的一部分,也可以被认为是硬件设备的一部分。

2.4 I/O控制方式

在早期的计算机系统中,由于没有中断装置,处理机对于I/O设备的控制采取程序I/O方式,也称忙等待方式或循环测试方式。对于读操作,这种方式的基本工作过程为:
①处理机向设备(或设备控制器)发出一条I/O指令启动设备、输入数据,同时将状态寄存器中的“忙”标志置为1。
②处理机不断地循环测试忙标志,直到忙标志变为0;
③处理机通过I/O读指令将数据从数据寄存器中取出,送入内存中指定单元;
④若数据已读完,则结束本过程,否则转①,继续读下一个数据。
在程序I/O方式中,由于处理机的速度非常快,而设备的速度相对较慢,使得处理机的绝大部分时间都处于等待设备完成数据I/O的循环测试中,造成对CPU的极大浪费。
中断I/O方式
对于读操作,中断方式的基本工作过程为:
①处理机向设备(或设备控制器)发出一条I/O指令,启动设备,输入数据;
②处理机完成其它工作,设备准备数据;
③当设备准备好数据并将数据存入数据寄存器,向处理机发中断信号,告之数据已准备好;
④处理机响应中断请求,从数据寄存器中将数据取出,送入内存的指定单元;
⑤若数据已读完,结束。否则,转①,继续。
中断方式控制I/O的优点在于,设备与处理机并行,提高了处理机的利用率。性能优于程序控制I/O方式。
DMA方式
中断I/O比程序I/O方式高效,但以字/字节为传输单位。每完成一个字/字节的传输,设备均要向CPU请求一次中断。对于块设备而言,这种方式的效率还是显得有些低下。因为,频繁的、大量的中断所累积的开销很大。为了进一步减少处理机对I/O事务的干预,出现了 DMA(Direct Memory Access)直接存储器访问方式。 此时数据传输的基本单位是数据块;数据直接从设备送入内存,或者直接从内存送入设备;仅在传送一个或多个数据块的开始和结束时,才需要处理机的干预。与中断方式相比,DMA方式大大减少了数据I/O对处理机的占用,进一步提高了处理机的利用率,提高了处理机和I/O设备的并行操作能力。
I/O通道方式
通道相当于一个功能单纯的处理机,专门用于处理I/O操作。通道有自己的运控部件和指令系统,但没有专门的内存,而是通过“周期窃用”方式与主机共享内存。通道通过执行通道程序来完成I/O操作。通道程序是通道指令的有序序列,它由系统中的输入/输出进程根据用户进程的I/O要求来确定,可以是事先编制好的程序段,也可以动态产生。通道程序以及需要与设备交换的数据均放置在内存中。一条通道指令可以传送一组数据,一个通道程序可以传送多组数据。多组数据全部传送完毕后(即一个通道程序执行完毕),才向处理机发出一次中断。通道不仅可以传送数据,更重要的是它还完成对设备的控制。在通道的协助下,主机只需发出一个启动通道、执行通道程序的指令即可。主机仅与通道直接通信,不必考虑设备的具体控制以及如何完成数据传送等问题,从而大大减轻了主机的负担。

3设备分类

根据外部设备的用途不同,可以将其分为输入/输出型设备与存储型设备;根据外设传输的基本数据单位不同,可以将设备分为块型设备与字符型设备;按照资源管理的方式不同,可以将设备分为独占型设备和共享型设备。

3.1输入/输出型 VS 存储型设备

输入/输出型设备:键盘、鼠标、显示器、读卡机、扫描仪、打印机、绘图仪、数码相机等。存储型设备:磁带机、磁鼓机、磁盘机等。可用作输入,也可以用作输出。主要用于长期保存信息,但需要管理其上的存储空间。
可以在存储设备上可以建立文件系统,有组织、有结构地长期存储信息。 

3.2块型设备 VS 字符型设备

块型设备通常就是存储型设备。这类设备由若干长度相同的块构成。块的长度通常为2n个字节,如256B、512B、1024B等。对这类设备来说,块是存储分配的基本单位,也是I/O传输的基本单位。字符型设备通常就是输入/输出型设备。这类设备I/O传输的基本单位是字节。

3.3独占型 VS 共享型设备

独占型设备包括所有的字符型设备及磁带机。任意时间段内最多只能被一个进程占用。使用时,进程首先向系统申请,可能进入阻塞状态。当设备可用时,唤醒一个等待进程。使用完毕以后,进程必须释放设备。
共享型设备包括除磁带机以外的所有块型设备。I/O传输单位:块。宏观上,一个共享型设备可以被多个进程同时占用;微观上,多个进程交替使用同一设备。进程使用这类设备时,无须申请或释放设备,也不存在某个进程占用设备的问题。 

4.设备分配 

分配:设备、控制器和通道。需要记录与他们相关的信息。包括:资源标识、物理连接情况、占有进程、等待进程等。具体实现时,可以将其分为设备控制块、控制器控制块和通道控制块。这些控制块中包含的信息在不同的系统中会有所不同。

4.1设备无关性 

为了实现设备的无关性,操作系统要求进程申请设备时,应当指明所需设备的类别(或者逻辑设备名),不能指定某一设备的具体编号。系统根据进程的请求以及资源分配情况在相应类别的设备中选择一个空闲的物理设备,并将其分配给申请者。 
其优点主要表现在:
提高设备的利用率。从根本上讲,申请者只关心使用设备的结果,不在乎到底使用哪一个设备。假设申请者指定具体设备,被指定的设备可能正在被使用,因而申请无法满足。而此时,其他同类设备可能空闲。这将造成资源的浪费和进程的不必要等待;程序与设备无关。假设申请者指定具体设备,而被指定的设备已损坏或未联机,则要么程序无法正常工作,要么修改程序。

4.2系统设备表SDT

根据上述实现要求,系统通常将相同类型设备的UCB记录在一张表中,称作UCB表。
将逻辑设备名、设备数、设备等待队列以及UCB表的起始地址登记在另一个表中,该表通常称作系统设备表(SDT) 。

4.3设备分配算法

先来先服务—根据进程对某设备提出请求的先后次序,将这些进程排成一个设备请求队列。设备分配程序总是把设备分配给队首的进程。
优先级高者优先服务—根据进程优先级的高低,将优先级高的进程排在设备等待队列的前面。对于优先级相同的进程,则按先来先服务的原则进行排队,设备分配程序总是把设备分配给排在队首的进程。
独占型设备的分配 :
进程使用独占设备的过程:申请、使用、释放。1 进程申请设备2 系统分配设备3 进程发送使用命令4 系统将转到设备驱动模块完成一次I/O传输5 进程释放设备6 系统回收设备。当进程的一次设备申请成功,直到发出释放命令期间,一直独占设备。 
共享型设备的分配 :
进程使用共享型设备不需要申请,当然也就不存在占用或释放设备的问题。但是,I/O期间只能有一个进程使用设备。因此,进程使用共享型设备之前,有一个隐含的申请命令;使用完毕以后,有一个隐含的释放命令,以实现一次基本I/O传输期间的排它性,保证操作的正常进行。使用共享型设备的过程中,进程完全有可能进入阻塞等待状态。 

0 0
原创粉丝点击