设备管理 第7章 设备管理.

Slides:



Advertisements
Similar presentations
7.1 内置对象概述及分类 JSP 视频教学课程. JSP2.2 目录 1. 内置对象简介 1. 内置对象简介 2. 内置对象分类 2. 内置对象分类 3. 内置对象按功能区分 3. 内置对象按功能区分 4. 内置对象作用范围 4. 内置对象作用范围.
Advertisements

高校教师、高级项目经理 任铄 QQ : 第一章 操作系统引论 1.1 操作系统的目标和作用 1.2 操作系统的发展过程 1.3 操作系统的基本特性 1.4 操作系统的主要功能 1.5 OS 结构设计.
阻塞操作. 在 linux 里,一个等待队列由一个 wait_queue_head_t 类型的结构来描述 等待队列的初始化: static wait_queue_head_t testqueue; init_waitqueue_head(&testqueue);
Linux 系统. 操作系统发展需求 1 没有操作系统 2 简单批处理操作系统 3 多道程序设计的批处理 4 多道程序设计的分时操作系统 5 多处理机并行系统 6 网络操作系统 7 分布式操作系统.
NAT与ICMP交互.
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
实验四 利用中规模芯片设计时序电路(二).
第三节    缓冲管理 缓冲技术实现基本思想 当一个进程执行写操作输出数据时,先向系统申请一个主存区域──缓冲区,然后,将数据高速送到缓冲区。若为顺序写请求,则不断把数据填到缓冲区,直到它被装满为止。此后,进程可以继续它的计算,同时,系统将缓冲区内容写到I/O设备上。 当一个进程执行操作输入数据时,先向系统申请一个主存区域──缓冲区,系统将一个物理记录的内容读到缓冲区域中,然后根据进程要求,把当前需要的逻辑记录从缓冲区中选出并传送给进程。
实用操作系统概念 张惠娟 副教授 1.
第五章 设备管理 5.1 I/O系统 5.2 I/O控制方式 5.3 缓冲管理 5.4 设备分配 5.5 设备处理 5.6 磁盘存储器管理.
基于解释性语言的手机跨平台架构 Sloan Yi. Qt MTK.
Oracle数据库 Oracle 子程序.
设备管理.
全国计算机等级考试 二级基础知识 第二章 程序设计基础.
在PHP和MYSQL中实现完美的中文显示
计算机基础知识 丁家营镇九年制学校 徐中先.
Kvm异步缺页中断 浙江大学计算机体系结构实验室 徐浩.
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
Hadoop I/O By ShiChaojie.
存储系统.
把COM口设置到没有使用的 COM1 – COM4
中国科学技术大学计算机系 陈香兰 Fall2013 第九讲 设备管理 中国科学技术大学计算机系 陈香兰 Fall2013.
大学计算机基础 典型案例之一 构建FPT服务器.
走进编程 程序的顺序结构(二).
网络常用常用命令 课件制作人:谢希仁.
临界区软件互斥软件实现算法.
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
Windows网络操作系统管理 ——Windows Server 2008 R2.
第十章 IDL访问数据库 10.1 数据库与数据库访问 1、数据库 数据库中数据的组织由低到高分为四级:字段、记录、表、数据库四种。
逆向工程-汇编语言
PaPaPa项目架构 By:Listen 我在这.
临界区软件互斥软件实现算法 主讲教师:夏莹杰
CPU结构和功能.
Windows 7 的系统设置.
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
Java语言程序设计 清华大学出版社 第8章 输入输出流(1).
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
第六章 设备管理 Devices Management
第二章 登录UNIX操作系统.
内容摘要 ■ 课程概述 ■ 教学安排 ■ 什么是操作系统? ■ 为什么学习操作系统? ■ 如何学习操作系统? ■ 操作系统实例
C语言程序设计 主讲教师:陆幼利.
微机系统的组成.
本节内容 随机读取 视频提供:昆山爱达人信息技术有限公司.
实验七 安全FTP服务器实验 2019/4/28.
项目二:HTML语言基础.
本节内容 Win32 API中的宽字符 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
信号量(Semaphore).
iSIGHT 基本培训 使用 Excel的栅栏问题
第二章 操作系统用户界面 重点和难点: 1 作业的基本概念和建立 2 用户接口的概念和类型 3 系统调用的概念和过程.
第八章 总线技术 8.1 概述 8.2 局部总线 8.3 系统总线 8.4 通信总线.
本节内容 文件系统 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
Visual Basic程序设计 第13章 访问数据库
苏教版小学信息技术3年级第2课 认识计算机.
第六章设备管理 本章重点: 1.掌握设备管理的功能和任务; 2.掌握设备的分类方法; 3.掌握I/O控制的实现;
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
本节内容 C语言的汇编表示 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
实验目的:掌握数据的顺序存储结构及它们在计算机中的操作。 实验内容:
第六章 Excel的应用 五、EXCEL的数据库功能 1、Excel的数据库及其结构 2、Excel下的数据排序 (1)Excel的字段名行
基于列存储的RDF数据管理 朱敏
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
本节内容 动态链接库 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
本节内容 进程 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
李元金 计算机与信息工程学院 第 18 讲 设备管理(2) 李元金 计算机与信息工程学院 1/
5.1 I/O系统 5.2 I/O控制方式 5.3 缓冲管理 5.4 设备分配 5.5 设备处理 5.6 磁盘存储器管理
工业机器人入门使用教程 ESTUN机器人 主讲人:李老师
DSP技术与应用 电子与信息技术系.
多个Activity的使用 本讲大纲: 1、使用Bundle在Activity之间交换数据 2、调用另一个Activity并返回结果
Presentation transcript:

设备管理 第7章 设备管理

设备管理——主要内容 设备管理概述 缓冲技术 设备分配 I/O控制 1

设备管理——设备管理概述 设备管理概述

1. 设备分类 (1) 存储设备 (2) 输入输出设备 (3) 通信设备 设备管理——设备管理概述 1. 设备分类 (1) 存储设备 存储设备又称块设备,是存储信息的设备,如:磁盘、 磁鼓 (以块为单位传输信息) 。 (2) 输入输出设备 输入输出设备又称字符设备,能将信息从计算机外部输 入到机内,或反之,如:键盘、显示器、打印机 (以字 符为单位传输信息) 。 (3) 通信设备 通信设备负责计算机之间的信息传输,如调制解调器、 网卡等。 2

2. 设备管理的目标 (1) 提高设备利用率 (2) 方便用户的使用 设备管理——设备管理概述 ① 合理分配设备 2. 设备管理的目标 (1) 提高设备利用率 ① 合理分配设备 ② 提高设备与CPU、各外部设备之间的并行性 (2) 方便用户的使用 提供使用方便且独立于设备的界面 ① 统一:对各种不同的设备提供一致的界面 ② 独立于设备:用户使用的设备与物理设备无关 3

3. 设备管理功能 (1) 状态跟踪 (2) 设备分配与回收 (3) 设备控制 设备管理——设备管理概述 动态地记录各种设备的状态。 3. 设备管理功能 (1) 状态跟踪 动态地记录各种设备的状态。 (2) 设备分配与回收 ① 静态分配 —— 应用程序级 程序进入系统时进行分配,退出系统时收回全部资源。 ② 动态分配 —— 进程级 进程提出设备申请时进行分配,使用完毕后立即收回。 (3) 设备控制 实施设备驱动和中断处理的工作。 4

4. 设备独立性 (1) 设备独立性概念 设备管理——设备管理概述 ① 什么是设备独立性 所谓设备独立性是指,用户在程序中使用的设备与实际使 4. 设备独立性 (1) 设备独立性概念 ① 什么是设备独立性 所谓设备独立性是指,用户在程序中使用的设备与实际使 用的设备无关,也就是在用户程序中仅使用逻辑设备名。 ② 逻辑设备名 逻辑设备名,是用户自己指定的设备名 (或设备号),它是 暂时的、可更改的。 ③ 物理设备名 物理设备名,是系统提供的设备的标准名称,它是永久 的、不可更改的。 5

(2) 两种类型的设备独立性 设备管理——设备管理概述 ① 一个程序独立于分配给它的某种类型的具体设备 系统可以根据设备的使用情况,动态地分配给程序某类设 备中的任一台物理设备,程序都能正确地执行。 ② 程序应尽可能与它所使用的I/O设备类型无关 在输入 (或输出)信息时,信息可以从不同类型的输入 (或 输出)设备上输入 (或输出),若要改变输入 (或输出) 设备 的类型,程序只需进行最少的修改。 6

(3) 设备独立性的实现 设备管理——设备管理概述 ① 在高级语言中用软通道实现 使用高级语言提供的指派语句,通过指派一个逻辑设备名 (通道号)来定义一个设备或文件。 如:fd = open(“/dev/lp” ,mode) ② 在批处理系统中,用联接说明语句来定义 如:OUTPUT1 = LPT ③ 在交互系统中,用指派命令来定义 如:PDP系列机上的RT11系统 ASSIGN 设备物理名 设备逻辑名 7

4. 设备控制块 (4) 设备独立性的优点 (1) 什么是设备控制块 (DCB ) 设备管理——设备管理概述 方便用户 改善设备利用率 提高系统的可扩展性和可适应性 4. 设备控制块 (1) 什么是设备控制块 (DCB ) 系统为每一台设备都配置了一个用来记录设备的硬件特 性、连接和使用情况的一组数据,称为设备控制块。 8

(2) 设备控制块的内容 设备管理——设备管理概述 ① 设备名 设备的系统名,即设备的物理名。 ② 设备属性 描述设备现行状态的一组属性。 ③ 命令转换表 转换表包含设备特定的I/O例程地 址,不具备相应功能的设备在其 例程地址上可以填“-1”。 设备名 设备属性 指向命令转换表的指针 在I/O总线上的设备地址 设备状态 当前用户进程指针 I/O请求队列指针 设备控制块dcb 9

设备管理——缓冲技术 缓存技术

1. 缓冲概念 (1) 什么是缓冲 (2) 缓冲类别 设备管理——缓冲技术 缓冲是两种不同速度的设备之间传输信息时平滑传输过程 的常用手段。 1. 缓冲概念 (1) 什么是缓冲 缓冲是两种不同速度的设备之间传输信息时平滑传输过程 的常用手段。 (2) 缓冲类别 ① 缓冲器 缓冲器是用来暂时存放数据的一种存储装置,它容量较 小,存取速度快。 ② 软件缓冲 在I/O操作期间用来临时存放I/O数据的一块存储区域。 10

(3) 为什么要引入缓冲 设备管理——缓冲技术 ① 处理数据流的生产者与消费者间的速度差异 如:从调制解调器收到一个文件,并保存到硬盘上。 ② 协调传输数据大小不一致的设备 如:在计算机网络中用来处理消息的分段和重组。 ③ 应用程序的拷贝语义 如:操作系统为保证系统调用write的正确语义 (应用程 序要写入磁盘的数据就是write系统调用发生时的版本)。 方法:在系统调用返回前将应用程序缓冲区复制到内 核缓冲区。 11

2. 利用缓冲技术如何进行I/O操作 (1) 进程活动期间,请求从某字符设备读入数据 ① 进程请求从输入设备进行读操作的图示 设备管理——缓冲技术 2. 利用缓冲技术如何进行I/O操作 (1) 进程活动期间,请求从某字符设备读入数据 ① 进程请求从输入设备进行读操作的图示 ② 输入设备 BUF 进程  ① ③ 图中的操作②与 操作③需要同步 利用缓冲进行读操作 12

ⅰ 当用户要求在某个设备上进行读操作时,首先从系统 中获得一个空的缓冲区 (图中标注的操作①); 设备管理——缓冲技术 ② 进程请求从输入设备进行读操作的步骤 ⅰ 当用户要求在某个设备上进行读操作时,首先从系统 中获得一个空的缓冲区 (图中标注的操作①); ⅱ 将一个物理记录送到缓冲区中 (图中标注的存在②) ; ⅲ 当用户请求这些数据时,系统将依据逻辑记录特性从 缓冲区中提取并发送到用户进程存储区中 (图中标注的 操作③) ; ⅳ 当缓冲区空而进程又要从中取用数据时该进程被迫等 待。此时,操作系统需要重新送数据填满缓冲区,进 程才能从中取数据继续运行。 要注意操作②与操作③的同步关系 13

(2) 进程活动期间,请求从输出设备输出数据 设备管理——缓冲技术 (2) 进程活动期间,请求从输出设备输出数据 ① 进程请求从输出设备进行写操作的图示 输出设备 BUF 进程  ② ③ ① 图中的操作②与 操作③需要同步 利用缓冲进行写操作 14

ⅰ 当用户要求进行写操作时,首先从系统中获得一个空 的缓冲区 (图中标注的操作①) ; 设备管理——缓冲技术 ② 进程请求从输出设备进行写操作的步骤 ⅰ 当用户要求进行写操作时,首先从系统中获得一个空 的缓冲区 (图中标注的操作①) ; ⅱ 将一个逻辑记录从进程存储区传送到缓冲区中 (图中标 注操作②) ; ⅲ 当缓冲区写满时,系统将缓冲区的内容作为物理记录 文件写到设备上,使缓冲区再次为空 (图中标注的操作 ③) ; ⅳ 只有在系统还来不及腾空缓冲区之前,进程又企图输 出信息时,它才需要等待。 要注意操作②与操作③的同步关系 15

3. 常用的缓冲技术 (1) 双缓冲 设备管理——缓冲技术 buf2 。 输入数据时,如何利用双缓冲 输出数据时,如何利用双缓冲 3. 常用的缓冲技术 双缓冲、环形缓冲、缓冲池 (1) 双缓冲 在双缓冲方案下,为输入或输出分配两个缓冲区buf1 、 buf2 。 输入数据时,如何利用双缓冲 输出数据时,如何利用双缓冲 缓冲区既用于输入,也用于输出数据时,如何利用 双缓冲 16

设备管理——缓冲技术 (2) 利用双缓冲输入数据 输入设备 BUF1 进程  ① ② ③ BUF2 双缓冲读入数据的操作 17

设备管理——缓冲技术 (3) 利用双缓冲输出数据 输出设备 BUF1 进程  ① ② ③ BUF2 双缓冲输出数据的操作 18

(4) 双缓冲同时用于输入/输出数据的操作 设备管理——缓冲技术 输入设备 BUF1 ① ② ③ BUF2 输出设备 19

4. UNIX系统的缓冲区管理 (1) UNIX系统缓冲管理的目的 (2) UNIX系统缓冲管理的思路 设备管理——缓冲技术 加快系统响应、增强系统吞吐量 减少对磁盘的I/O操作次数 (2) UNIX系统缓冲管理的思路 当进程要从磁盘读数据时,首先考虑从高速缓冲中读 预先缓存 当进程要写数据到磁盘时,先写入高速缓冲中 延迟发送 20

(3) 缓冲管理数据结构 设备管理——缓冲技术 ① 缓冲区的组成 ⅰ 缓存数组 —— 含有磁盘上的数据的存储器数组 ⅱ 缓存首部 —— 描述缓冲区特性的数据结构 ② 缓存首部结构 21

设备管理——缓冲技术 缓存首部结构 ⅰ 设备号dev ⅱ 块号blkno ⅲ 状态flag——描述了缓冲区当前的状态 缓冲区所包含的信息所属设备的设备号 ⅱ 块号blkno 由设备号指出的设备上相对于第0块的块号 ⅲ 状态flag——描述了缓冲区当前的状态 忙标志BUSY:缓冲区当前正“忙” 有效位AVE:缓冲包含的数据有效 延迟写DELWR :核心在某缓冲区重新分配出去之前必须把缓冲区内容写到磁盘上 写标志WRITE: 核心当前正把缓冲区的内容写到磁盘 读标志READ:核心当前正从磁盘往缓冲区写信息 等待位 WAIT: 一个进程当前正在等候缓冲区变为空闲 缓存首部结构 设备号 dev 块号 blkno 状态 flag 指向数据区域的指针 传送字节数 返回的I/O出错信息 b_forw 设备缓冲区队列前向指针 b_back 设备缓冲区队列后向指针 av_forw 空闲缓冲区队列前向指针 av_back 空闲缓冲区队列后向指针 缓冲首部结构 22

与某类设备有关的所有缓冲区组成的队列称为设备缓 冲区队列,简称b链。 ⅱ 空闲缓冲区队列 可供重新分配使用的缓冲区组成的队列称为空闲缓冲 设备管理——缓冲技术 ③ 缓冲区队列结构 ⅰ 设备缓冲区队列 与某类设备有关的所有缓冲区组成的队列称为设备缓 冲区队列,简称b链。 ⅱ 空闲缓冲区队列 可供重新分配使用的缓冲区组成的队列称为空闲缓冲 区队列,简称av链。 av_forw av_back 空闲缓冲区队列  23

设备管理——缓冲技术 ④ 缓冲区队列指针 ⅰ b 链指针 ⅱ av 链指针 b_forw : 指向设备缓冲区队列上的下一个缓冲区的指针 b_back 设备缓冲区队列  ④ 缓冲区队列指针 ⅰ b 链指针 b_forw : 指向设备缓冲区队列上的下一个缓冲区的指针 b_back : 指向设备缓冲区队列上的上一个缓冲区的指针 ⅱ av 链指针 av_forw :指向空闲缓冲区队列上的下一个缓冲区的指针 av_back : 指向空闲缓冲区队列上的上一个缓冲区的指针 24

(4) UNIX缓冲管理算法 设备管理——缓冲技术 ① 缓冲读、写示意图 预先缓存 延迟发送 缓冲读 用户 数据区 磁盘 高速缓冲 用户进程 缓冲写 高速缓冲 用户 数据区 用户进程 磁盘 延迟发送 缓冲读、写示意图 25

ⅰ 一个buf被分配用于读/写某设备上的块时 置B_ BUSY=1,位于b链上,不在av链上; ⅱ 当读/写操作结束时 设备管理——缓冲技术 ② UNIX缓冲管理算法 ⅰ 一个buf被分配用于读/写某设备上的块时 置B_ BUSY=1,位于b链上,不在av链上; ⅱ 当读/写操作结束时 释放该buf,置B_BUSY=0,仍留在b链上,并送入av链 尾; ⅲ 若进程需要的信息在buf中时 在该设备的b链上找到,置B_BUSY=1;从av链上摘 除,使用完后,又送入av链,链入队尾。 26

当需要一个空闲buf时,总是取空闲buf队列(av链) 的首 元素;一个使用过的buf释放时,插入到空闲buf队列 (av链)的队尾。 设备管理——缓冲技术 ⅳ 对空闲buf空队列的处理 当需要一个空闲buf时,总是取空闲buf队列(av链) 的首 元素;一个使用过的buf释放时,插入到空闲buf队列 (av链)的队尾。 实现了精确的最久未使用淘汰算法 (LRU算法) ⅴ 对延迟写的处理 当一个具有延迟写标记的buf移到av链头,要用于分配 时,立即进行写操作。从av链上摘除,使用完后又送 入av头部。 27

设备管理——设备分配 设备分配

1. 独享分配 (1) 独享设备 ① 让一个作业在整个运行期间独占使用的设备 (2) 独享分配 设备管理——设备分配 1. 独享分配 常用的设备分配技术:独享分配、共享分配和虚拟分配 (1) 独享设备 ① 让一个作业在整个运行期间独占使用的设备 ② 特点 ⅰ 临界资源 ⅱ 费时的I/O操作或需人工干预 (2) 独享分配 在一个作业执行前,将它所要使用的设备分配给它;当 它结束撤离时,将分配给它的这类设备收回。 28

2. 共享分配 (1) 共享设备 (2) 独享分配 设备管理——设备分配 ① 由多个作业、进程共同使用的设备称为共享设备。 ② 特点 2. 共享分配 (1) 共享设备 ① 由多个作业、进程共同使用的设备称为共享设备。 ② 特点 ⅰ 旋转设备,可直接或随机访问 ⅱ 便于共享,转接简单,耗费较少 (2) 独享分配 在一个作业执行前,将它所要使用的设备分配给它;当 它结束撤离时,将分配给它的这类设备收回。 29

3. 虚拟分配 (1) 虚拟技术 (2) 虚拟设备 设备管理——设备分配 备的技术,是将独占设备转化为共享设备的技术。 3. 虚拟分配 (1) 虚拟技术 所谓虚拟技术,是在一类物理设备上模拟另一类物理设 备的技术,是将独占设备转化为共享设备的技术。 (2) 虚拟设备 通常把用来代替独占型设备的那部分外存空间 (包括有关 的控制表格)称为虚拟设备。 30

设备管理——设备分配 虚宽行1 虚宽行2 进程A 进程B 进程C 进程D 输入井 输出井 输入机 打印机 虚输入机1 虚输入机2 虚拟设备示意图 (3) 虚拟分配 当进程需要与独占型设备交换信息时,系统将分配磁盘空间,并建立相应的数据结构,这种分配方法称为设备的虚拟分配。 31

4. SPOOLING系统 (1) 设计思想 设备管理——设备分配 ① 预输入 输入井存放。当应用程序 (或进程) 需要数据时,可直接从 在应用程序需要数据前,OS已将所需数据预先输入到辅存 输入井存放。当应用程序 (或进程) 需要数据时,可直接从 辅存中读入主存。 ② 缓输出 在应用程序执行时,将输出数据写入辅存输出井中。当应 用程序 (或进程)执行完毕 (或需要数据时) ,由操作系统将 数据输出。 32

(2) 什么是SPOOLING系统 (3) SPOOLING系统的优点 ① 提供虚拟设备 设备管理——设备分配 利用通道和中断技术,在主机控制之下,由通道完成输入 输出工作。系统提供一个软件系统 (包括预输入程序、缓 输出程序、井管理程序、预输入表、缓输出表)。它提供 输入收存和输出发送的功能,使外部设备可以并行操作。 这一软件系统称为SPOOLING系统。 (3) SPOOLING系统的优点 ① 提供虚拟设备 ② 外围设备同时联机操作 ③ 加快作业处理速度 33

(4) 实现SPOOLING系统的基础 设备管理——设备分配 ① 大容量的辅存空间 ② 硬件基础 ③ 数据结构 在辅存上需开辟两个较大的输入井和输出井,用以存放大量应用程序的输入信息和输出信息。 ② 硬件基础 通道装置、中断系统 ③ 数据结构 预输入表、缓输出表:描述辅存输入井和输出井的状态变化。 如: 输入信息从哪台设备输入,存放在辅存输入井什么位置;输出信息存放在辅存输出井什么位置,从哪台输出设备输出。 34

ⅱ 缓输出程序 控制信息从辅存输出到独占设备 ⅲ 井管理程序 控制用户程序和辅存之间的信息交换 设备管理——设备分配 ④ 所需的软件程序 ⅰ 输入程序 控制信息从独占设备输入到辅存 ⅱ 缓输出程序 控制信息从辅存输出到独占设备 ⅲ 井管理程序 控制用户程序和辅存之间的信息交换 输入机1 输入机2 程序1 程序2 打印机 磁盘输入井 磁盘输出井 主存 SPOOLING系统工作示意图 35

设备管理——设备控制 设备控制

1. 输入/输出控制方式 2. I/O子系统 设备管理——设备控制 能化程度的高低,将I/O设备的控制方式分为四类。 循环测试I/O方式 1. 输入/输出控制方式 CPU通过I/O控制器与物理设备打交道。按照I/O控制器智 能化程度的高低,将I/O设备的控制方式分为四类。 循环测试I/O方式 I/O中断方式 DMA方式 通道方式 2. I/O子系统 36

(1) 图示 设备管理——设备控制 内核 内核I/O子系统 SCSI 设备驱动器 键盘 鼠标 PCI总线 软盘 … 设备控制器 设备 PCI 软件 硬件 一个典型的PC总线结构 37

(2) I/O子系统的特点 设备管理——设备控制 ① 在应用层为用户提供 I/O应用接口 对设备的控制和操作则由内核I/O子系统来实施。 ② 每个通用设备类型都通过一组标准函数 (及接口)来访问 具体的差别被I/O子系统中的内核模块(称为设备驱动程序) 所封装,这些设备驱动程序一方面可以定制以适合各种设 备,另一方面也提供了一组标准的接口。 设备驱动程序层的作用是为内核I/O子系统隐藏设备控制器 之间的差异。将I/O子系统与硬讲分离,简化了操作系统 开发人员的任务,也有利于设备的设计与制造。 38

(3) I/O控制的功能 (4) 设备处理程序 设备管理——设备控制 ① 解释用户的I/O系统调用 ② 设备驱动 ③ 中断处理 设备处理程序是能直接控制设备运转的程序,它根据各类 设备的特点和性能来编写。每一类设备有一个相应的设备 处理程序,能控制同类中多台物理设备同时工作。 39

(5) 控制I/O核心模块的方式 设备管理——设备控制 ① 以设备处理进程的方式 ⅰ 为每一类设备设置一个设备处理进程 (对应的程序就是 设备处理程序); ⅱ 当有I/O请求来到时该进程被唤醒,进行设备驱动工作; 当没有I/O请求时,该进程睡眠。 由I/O控制模块的接口程序负责解释用户的I/O系统调用,将其转换成 I/O控制模块认识的命令形式后,将I/O请求发给对应的设备处理进程。 ② 将设备与文件一样对待 将设备与文件一样对待,使用文件系统的系统调用命令进 行设备的读、写。 40

3. 输入/输出控制的例 (1) 用户进程请求I/O的系统功能调用 设备管理——设备控制 3. 输入/输出控制的例 (1) 用户进程请求I/O的系统功能调用 系统功能调用的形式为: doio(ldev,mode,amount,addr); ldev: 逻辑设备名 mode: 操作模式 amount:传输数据的数目 addr: 传送地址 41

(2) I/O接口程序 (I/O过程) 设备管理——设备控制 ① 将逻辑设备转换为物理设备 ⅰ 获得 I/O系统调用中给出的逻辑设备名 (ldev); ⅱ 根据逻辑设备描述器,将逻辑设备名转换为物理设备名。 ② 合法性检查 ⅰ 获得 I/O系统调用中给出的操作模式mode; ⅱ 根据DCB中命令转换表中允许的操作,检查操作的合 法性。 ③ 形成I/O请求块,发消息给对应的设备处理进程 ⅰ 根据请求的参数形成I/O请求块 (IORB); ⅱ 将I/O请求块 (IORB)挂到对应的设备请求队列。 42

(3) I/O接口程序的描述 设备管理——设备控制 输入:设备的逻辑名 ldev 操作类型 mode 传送数据数目 amount 算法 doio 输入:设备的逻辑名 ldev 操作类型 mode 传送数据数目 amount 传数数据地址 addr 输出:如果传送出错,则带错误码返回,否则正确返回 43

设备管理——设备控制 { while (该进程的逻辑设备描述器队列不空) { if (与ldev相联结的物理设备找到) break; / *找到* / } if (该进程的逻辑设备描述器队列为空) return(错误码); / * 设备逻辑名错* / 检查参数与该设备特性是否一致; if (不一致) return (错误码); / * 传送参数错 * / 构造iorb; 把iorb插入到该设备的请求队列中; 唤醒因等待I/O请求块而睡眠的进程; } 44

(3) 设备处理进程 设备管理——设备控制 process io { l: while (设备请求队列不空) { 取一个iorb; 提取请求的详细信息; 启动I/O操作; sleep (事件:I/O完成) /* I/O操作* / /* 等I/O完成后,进入中断处理程序,并在那里唤醒设备处理进程* / if (出错) 将错误信息写在该设备的dcb中; 传送数据到目的地; 唤醒请求此I/O操作的进程; 删除iorb; } sleep (事件:因无I/O请求); goto l ; 45

4. 请求I/O的进程、I/O过程、设备处理进程、中断处理程序之间的同步关系 设备管理——设备控制 4. 请求I/O的进程、I/O过程、设备处理进程、中断处理程序之间的同步关系 中断处理程序  doio(ldev,mode, amount,addr); /* 等I/O完成*/ 标识设备; 执行出错检查; 构成iocb; 将iocb送入设备请求队列; 唤醒因等待I/O请求块而睡眠的I/O进程; 取iocb; 如无iocb则等待; 启动I/O操作; /*等I/O完成*/ 唤醒等待I/O的进程; I/O设备 中断服务; 唤醒I/O处理 进程; 用户进程 I/O过程 I/O处理进程 启动 设备 中断信号 控制关系 同步关系 用户进程调用外部设备的过程 46

设备管理——小结 第7章 设备管理 小结

UNIX缓冲管理中的空闲缓冲区的淘汰算法 设备管理——小结 设备管理的基本概念 I/O管理的功能 设备独立性 定义 优点 设备控制块 定义 缓冲技术 什么是缓冲,引入缓冲的目的 常用的缓冲技术 双缓冲技术 UNIX缓冲管理中的空闲缓冲区的淘汰算法 47

请求I/O的进程、I/O过程、设备处理进程、中断处理程序之间的同步关系 设备管理——小结 设备分配 常用的设备分配技术 独享设备 独享分配 定义 共享设备 共享分配 定义 虚拟设备 虚拟技术 定义 Spooling系统 定义 I/O控制 I/O控制的主要功能 请求I/O的进程、I/O过程、设备处理进程、中断处理程序之间的同步关系 48