操作系统教程——Linux实例分析 教学课件 ppt 作者 孟庆昌 第1-8章 第6章 设备管理

上传人:E**** 文档编号:89361621 上传时间:2019-05-24 格式:PPT 页数:87 大小:1.14MB
返回 下载 相关 举报
操作系统教程——Linux实例分析 教学课件 ppt 作者 孟庆昌 第1-8章 第6章 设备管理_第1页
第1页 / 共87页
操作系统教程——Linux实例分析 教学课件 ppt 作者 孟庆昌 第1-8章 第6章 设备管理_第2页
第2页 / 共87页
操作系统教程——Linux实例分析 教学课件 ppt 作者 孟庆昌 第1-8章 第6章 设备管理_第3页
第3页 / 共87页
操作系统教程——Linux实例分析 教学课件 ppt 作者 孟庆昌 第1-8章 第6章 设备管理_第4页
第4页 / 共87页
操作系统教程——Linux实例分析 教学课件 ppt 作者 孟庆昌 第1-8章 第6章 设备管理_第5页
第5页 / 共87页
点击查看更多>>
资源描述

《操作系统教程——Linux实例分析 教学课件 ppt 作者 孟庆昌 第1-8章 第6章 设备管理》由会员分享,可在线阅读,更多相关《操作系统教程——Linux实例分析 教学课件 ppt 作者 孟庆昌 第1-8章 第6章 设备管理(87页珍藏版)》请在金锄头文库上搜索。

1、第6章 设备管理,6.1 概述 6.2 缓冲技术(Buffering) 6.3 设备分配技术 6.4 I/O软件构造原则 6.5 磁盘调度和管理 6.6 Linux系统的设备管理 习题,6.1 概 述,6.1.1 设备分类 1. 存储设备 存储设备也称为外存或后备存储器、 辅助存储器。 它们主要是计算机用来存储信息的设备, 虽然它们的存储速度较内存慢, 但比内存容量大得多, 价格也相对便宜。 存储设备通常包括磁盘、 CD-ROM、 磁带等。 特别是磁盘, 在现代计算机系统中得到广泛应用, 多数处理过程都是基于磁盘系统的。,磁盘提供了基本的联机信息(程序和数据)的存储。 大多数程序, 像编译程序

2、、 汇编程序、 编辑程序、 格式化程序以及用户程序, 等等, 都是以文件形式存放在磁盘上, 在使用时才调入内存的。 在这类设备上存储的信息, 在物理上往往是按字符块组织的, 每一块有固定的大小, 并且有自己的磁盘地址。 常用块的大小从512字节到32 768字节。,2. 输入/输出设备 它们又可分为输入和输出两类。 输入设备是计算机用来接受来自外部世界信息的设备, 例如终端键盘输入、 卡片输入机、 鼠标等。 输出设备是将计算机加工处理好的信息送向外部世界的设备, 例如终端屏幕显示或打印输出部分、 激光打印机、 卡片输出机等。 而modem设备既可以输入, 也可以输出。,6.1.2 设备管理的功

3、能 设备的种类繁多, 而其物理特性和使用方式各不相同, 所以设备管理程序在整个操作系统中占很大比重。 设备管理要达到的目标主要是: (1) 向用户提供使用方便而且独立于设备的界面。 (2) 提高各种外设的使用效率。 (3) 在设计上, 对各种外设尽可能采用统一的管理方法, 使得设备管理系统简练、 可靠且易于维护。,为了实现上述目标, 操作系统的I/O管理子系统主要实现如下功能: (1) 监视设备状态。 (2) 进行设备分配。 (3) 完成IO操作。 (4) 缓冲管理与地址转换。,6.1.3 通道技术 1. 输入/输出系统结构 比较典型的输入/输出系统具有四级结构: 内存、 通道、 控制器和外部

4、设备。 如图6-1所示。 外部设备通常由机械和电子两部分组成。 由于许多设备往往不是同时使用的, 因此为降低成本常将电子部分从设备中独立出来构成一个部件, 称为控制器。 一个控制器可交替地控制几台同类设备。,图6-1 I/O系统四级结构,2. 通道的类型 虽然各种IO通道的基本功能是相同的, 但其形式和规模却相差很大。 有的很简单, 有的甚至用CPU作为IO通道。 根据信息交换的方式, 通道可以分成三种类型: 字节多路通道、 选择通道和成组多路通道。 (1) 字节多路通道。字节多路通道以字节作为信息输送的单位, 它往往服务于多台低速的IO设备, 例如卡片输入机、 打印机等。,(2) 选择通道。

5、 选择通道在同一时间里只能为一台设备服务, 能连续地传输一批数据, 故传输速率很高。 (3) 成组多路通道。 成组多路通道结合了字节多路通道分时操作和选择通道高速传送的优点, 被广泛用于连接高速和中速的设备。图6-2中描述了IBM 370系统的结构, 它包括了上述三种类型的通道。,图6-2 IBM 370系统结构,6.1.4 设备控制器 在大多数微型机和小型机中都使用单总线实现CPU与控制器之间的通信, 如图6-3所示。 控制器是IO设备的电子部分, 它协调和控制一台或多台IO设备的操作, 并实现设备操作与整个系统操作的同步。 在小型机和微型机上, 控制器往往以印刷电路卡的形式插入计算机中。

6、很多控制器可以管理2台、 4台甚至8台同样的设备。 操作系统总是与控制器打交道, 而不是与设备直接作用。,图6-3 利用总线连接CPU、 内存、 控制器和I/O设备,6.2 缓冲技术(Buffering),6.2.1 缓冲技术的引入 计算机系统中各个部件间速度的差异是很大的。 CPU的速度是以微秒甚至毫微秒量级计算的, 而外设一般的处理速度是以毫秒甚至秒量级计算的。 在不同时刻, 系统中各部分的负荷也常常很不均衡。,缓冲技术同样适用于输出的情况, CPU把产生的记录放入缓冲区, 输出设备从中取出来输出它们。 实际上, 缓冲区不仅限于CPU和I/O设备之间, 凡是数据到达速率和离去速率不同的地方

7、都可设置缓冲区。,6.2.2 缓冲区的设置 1. 单缓冲 如果数据到达率与离去率相差很大, 则可采用单缓冲方式。 2. 双缓冲 当信息的输入和输出速率相同(或相差不大)时, 可利用双缓冲区, 实现二者的并行。 如图6-4所示。 3. 多缓冲 对于阵发性的输入、 输出, 双缓冲区往往不够使用, 并且不能获得令人满意的CPU和IO设备的并行操作。,图6-4 双缓冲工作示例,6.3 设备分配技术,6.3.1 设备分配技术 1. 与设备分配相关的因素 各种设备是系统掌管的资源。 在一般系统中, 进程个数往往多于设备数, 从而引起进程对设备的竞争。,(1) IO设备的固有属性。 (2) 系统所采用的分配

8、算法。 (3) 设备分配应防止死锁发生。 (4) 用户程序与实际使用的物理设备无关。,2. 设备分配技术 根据设备的使用性质可将设备分为独占设备、 共享设备和虚拟设备三种。 (1) 独占设备是不能被多个进程同时共用的设备, 即在一段时间内, 该设备只允许一个进程独占。 (2) 共享设备是可由若干个进程同时共享的设备, 这类设备具有高速、 大容量、 可直接存取等特点, 例如磁盘机。 (3) 虚拟设备是利用某种技术把独占设备改造成可由多个进程共享的设备。,针对这三种设备采用三种分配技术: 独占分配、 共享分配和虚拟分配。 1) 独占分配 独占分配技术是把独占设备固定地分配给一个进程, 直至该进程完

9、成I/O操作并释放它为止。 2) 共享分配 共享分配技术通常适用于高速、 大容量的直接存取存储设备, 如磁盘机和可读写CD-ROM等, 这类设备就是共享设备。,3) 虚拟分配 虚拟分配技术往往是利用共享设备去模拟独占设备, 从而使独占设备成为可共享的、 快速I/O的设备。,3. 设备分配算法 设备分配算法就是按照什么原则把设备分给进程。 对设备的分配算法与进程的调度算法有相似之处, 但比较简单。 常用的算法有先来先服务和优先级高的优先服务。 1) 先来先服务 当有多个进程对同一设备提出IO请求时, 按照进程对设备提出请求的先后次序, 将这些进程排成一个设备请求队列。,2) 优先级高的优先服务

10、这种算法的设备IO请求队列按请求IO操作的进程优先级的高低排列, 高优先级进程排在设备队列前面, 低优先级进程排在后面。,6.3.2 SPOOLing系统 脱机方式是这样的: 用一台专用的外围计算机去高速地读卡片, 并把相应的信息记录在磁带上, 外围机可以使用两台或多台卡片输入机。,这种技术多用于早期的批处理系统。 虽然它解决了慢速外设与快速主机的匹配问题, 但是存在很多缺点, 主要是: 需要人工干预, 产生人工错误的机会多, 且效率低; 周转时间慢; 无法实现优先级调度。,图6-5 SPOOLing系统,6.4 IO软件构造原则,6.4.1 I/O软件目标 设计IO软件的目标主要有四个方面:

11、 第一是与设备无关性。 这是关键概念, 它希望所编写的用户程序既可在软盘文件系统中使用, 又可在硬盘文件系统中使用。 就是说, 用户程序应与实际使用的物理设备无关, 由操作系统考虑因实际设备不同而需要使用不同的设备驱动程序等问题。,与设备无关性的实现, 首先要有统一命名。第二是出错处理。第三是同步(封锁)传输与异步(中断驱动)传输。第四是对共享设备与独占设备的管理。,为了实现这些目标, 可把I/O软件构成分为如下四个层次, 如图6-6所示。 (1) 中断处理程序; (2) 设备驱动程序; (3) 与设备无关的操作系统软件; (4) 用户层I/O软件。,图6-6 I/O软件构成分为如下四个层次图

12、,6.4.2 中断处理程序 中断处理程序在I/O软件系统的最底层。 当输入就绪、 输出完成或者出错时, 设备控制器就向CPU发出中断信号。 CPU接到中断请求后, 如果中断优先级高于运行程序的优先级, 则响应中断, 然后把控制权转交给中断处理程序。 中断处理程序分析中断原因, 并依据中断原因调用相应的处理程序。,6.4.3 设备驱动程序 1. 处理I/O请求的步骤 系统如何完成用户提出的I/O请求呢? 这包括: 用户进程发出I/O请求系统接受这个I/O请求设备驱动程序具体完成I/O操作I/O完成后, 用户进程重新开始执行。 在UNIX系统中, 处理用户提出的I/O请求的主要过程如图6-7所示。

13、,图6-7 I/O请求处理过程示意图,(1) 用户进程发出I/O请求。 I/O请求发自于用户进程, 例如, 用户编写的C程序中可以使用标准的I/O库函数, 如printf, scanf等。 (2) 执行到与IO请求相对应的系统调用后, 转去执行操作系统的核心程序, 此时进程的状态由用户态转到核心态。 (3) 设备驱动程序是控制设备动作的核心模块, 如设备的打开、 关闭、 读、 写等, 用来控制设备上数据的传输。 (4) IO完成后, 由通道(或设备)产生中断信号。,2. 设备驱动程序功能 以上主要是UNIX系统中对IO请求的处理过程, 而在很多其他系统中, 都为每台设备建立了一个设备驱动进程,

14、 由这个进程具体负责和管理该台设备的输入/输出工作。 设备驱动进程运行的程序就是各类设备相应的设备驱动程序, 也就是说, 设备驱动进程严格执行设备驱动程序中规定的各种功能。 一般来说, 设备驱动程序应有以下功能:,(1) 接受来自上层、 与设备无关软件的抽象读/写请求, 并将该I/O请求排在请求队列的队尾, 还要检查I/O请求的合法性(如参数是否合法)。 (2) 取出请求队列中队首请求, 将相应设备分配给它。 (3) 向该设备控制器发送命令, 启动该设备工作, 完成指定的I/O操作。 (4) 处理来自设备的中断。,3. 设备驱动程序在系统中的位置 设备生产厂商不仅制造设备, 而且要提供该设备的

15、驱动程序代码。 操作系统的设计者会提供某种方式把这些驱动程序安装到系统中。 为此, 系统的体系结构应能满足安装外来驱动程序的需要。 这就意味着, 设计者对驱动程序做什么以及它们与操作系统其他部分是如何交互作用等都给出了良好的定义。 图6-8示出了设备驱动程序在系统中的逻辑位置。,图6-8 设备驱动程序在系统中的逻辑位置,4. 设备驱动程序的特点 各种设备的驱动程序存在很大差别, 如硬盘驱动程序与打印机驱动程序就属于不同类别的驱动程序, 前者属于块设备驱动程序, 后者属于字符设备驱动程序。 但所有驱动程序又有一些共同特点:,(1) 驱动程序的主要作用是: 实现请求I/O的进程与设备控制器之间的通

16、信, 将上层的I/O请求经加工后送给硬件控制器, 启动设备工作; 并把设备控制器中有关寄存器的信息上传给请求I/O的进程, 如设备状态、 I/O操作完成情况等。,(2) 驱动程序与设备特性密切相关。 通常, 每个设备驱动程序只处理一种设备类型, 至多是一类紧密相关的设备。 (3) 驱动程序可动态安装或加载。 (4) 驱动程序与I/O控制方式相关。 (5) 驱动程序与硬件密切相关。 (6) 不允许驱动程序使用系统调用。,5. 驱动程序的框架 1) 设备驱动程序与外界的接口 计算机中有各种各样的设备, 每种设备都有自己的驱动程序, 因而设备驱动程序的代码在内核中所占比例较大。 (1) 驱动程序与操作系统内核的接口。 (2) 驱动程序与系统引导的接口。 (3) 驱动程序与设备的接口。,2) 设备驱动程序的组成 按照所完成的功能, 设备驱动程序的代码有以下几个部分。 (1) 驱动程序的注册与注销。 (2) 设备的打开与释放。 (3) 设备的读/写操作。 (4) 设备的控制操作。 (5) 设备的中断和轮询处理。,6.4.4 与设备

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号