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传输期间的排它性,保证操作的正常进行。使用共享型设备的过程中,进程完全有可能进入阻塞等待状态。 

[OS复习]设备管理1相关推荐

  1. OS复习——设备管理习题

    OS复习--设备管理习题 在I/O系统中引入缓冲的主要原因是什么?某文件占10个磁盘块,现要把该文件的磁盘块逐个读入主存缓冲区,并送用户区进行分析.一个缓冲区与磁盘块大小相等.把一个磁盘块读入缓冲区的 ...

  2. [OS复习]设备管理4

    1.引入磁盘调度的例子 假定:一个硬盘的扇区长度为512个字节,磁道长度为32个扇区,平均寻道时间为20ms,传输速率为1MB/s,转速为3600rpm.显然, 如果一个长度为128K个字节的文件存放 ...

  3. [OS复习]设备管理3

    1.磁盘设备的管理 1.1磁盘的性能和安全性 磁盘是计算机系统最重要的外部存储设备之一 .影响磁盘性能和数据安全性的主要因素: 1.磁盘性能参数:转速.寻道时间.磁盘缓存: 2.磁盘控制器:IDE.S ...

  4. [OS复习]设备管理2

    1.I/O缓冲技术 1.1缓冲技术的引入 缓解处理机与设备间速度不匹配的矛盾:实现设备与处理机一定程度的并行操作:减少设备的中断频率,放宽对中断响应时间的限制. 1.2提前读与延后写 指用户进程从 I ...

  5. [OS复习]进程管理2

    问题:多个进程竞争内存资源 1.解决方法 方案一:采用交换技术,换出一部分进程到外存,以腾出内存空间 方案二:采用虚拟存储技术,每个进程只能装入一部分程序和数据(存储管理部分) 2.对换技术(交换技术 ...

  6. [OS复习]文件管理

    1.复习要点提要 文件管理系统.文件的基本概念操作.文件目录.文件的逻辑组织与访问.文件记录与数据块的关系.文件共享.文件存储空间与空闲空间的管理 预先提出的问题: 什么是文件?文件由什么组成?文件如 ...

  7. [OS复习]进程管理5

    线程 1.多线程 操作系统中引入进程的目的: 为了描述和实现多个程序的并发执行,以改善资源利用率及提高系统的吞吐量. 操作系统引入线程的目的: 这是为了减少程序并发执行时系统所付出的额外开销(减少管理 ...

  8. [OS复习]操作系统综述2

    1.操作系统的功能 操作系统的主要任务: (1)管理处理机 (2)存储器管理(内存) (3)管理输入/输出设备(外设) (4)管理数据文件(文件) (5)提供接口服务 1.1 接口功能: 指操作系统为 ...

  9. [OS复习]文件管理2

    1.文件目录 1.1文件目录的内容 基本信息:文件名.文件类型.文件组织等: 地址信息:卷(存储文件的设备).起始地址,(起始物理地址).文件长度(以字节.字或块为单位)等. 访问控制信息:文件所有者 ...

最新文章

  1. C++11中头文件thread的使用
  2. Exercise Physiology (运动生理学)
  3. 自我认为挺全面的【Web Service渗透测试总结】
  4. 有三AI一周年了,说说我们的初衷,生态和愿景
  5. java websocket netty_基于netty实现的websocket
  6. linux驱动之I2C
  7. css:实现文本两行或多行文本溢出显示省略号
  8. Linux 下用来查询安装包信息的RPM选项
  9. shell 基本命令linux,Linux基础知识:shell基础命令
  10. python面试题之什么是PEP8规范
  11. 《分布式系统:概念与设计》一2.3.1 体系结构元素
  12. oracle数据的闪回——删库跑路?老铁别想了!
  13. CoreOS在儿童节发布了自己的分布式存储Torus
  14. html、css合并表格边框
  15. 导出多个sheet的Excel以及在服务器上压缩文件然后再导出(在这里是压缩一个excel后导出)
  16. ios 开发常用第三方框架
  17. 「高频面试题」浏览器从输入url到页面展示中间发生了什么
  18. 人工智能导论系列目录
  19. 第一部分 思科九年 一(3)
  20. 计算机应用第四单元,计算机应用基础第四单元WORD练习题

热门文章

  1. 【网摘】Oracle Dedicated server 和 Shared server(专用模式 和 共享模式) 说明
  2. 免费下载精美网站模板的25个网站推荐
  3. CMD下提示“命令不是内部或外部命令”解决方法
  4. poj 1935(搜索+回溯)
  5. nyoj-228(士兵杀敌五) hdu-1556 Color the ball
  6. nyoj-138-找球号(二)----hash算法之除留余数法+vector
  7. Bzoj4568: [Scoi2016]幸运数字
  8. Python入门记录
  9. [Xcode 实际操作]七、文件与数据-(3)创建文本文件、属性列表文件、图片文件
  10. 网络安全概念是什么?互联网时代它为何如此重要?