aupOS-20-设备管理与IO.ppt

上传人:自*** 文档编号:124496738 上传时间:2020-03-12 格式:PPT 页数:38 大小:649.52KB
返回 下载 相关 举报
aupOS-20-设备管理与IO.ppt_第1页
第1页 / 共38页
aupOS-20-设备管理与IO.ppt_第2页
第2页 / 共38页
aupOS-20-设备管理与IO.ppt_第3页
第3页 / 共38页
aupOS-20-设备管理与IO.ppt_第4页
第4页 / 共38页
aupOS-20-设备管理与IO.ppt_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《aupOS-20-设备管理与IO.ppt》由会员分享,可在线阅读,更多相关《aupOS-20-设备管理与IO.ppt(38页珍藏版)》请在金锄头文库上搜索。

1、设备管理与IO 2 胡燕 1 内容纲要 中断 IO缓冲 设备分配 Date2 中断的概念 中断源 引起中断发生的事件 中断请求 中断源向CPU发出的请求中断处理信号 中断响应 CPU收到中断请求后 转去执行相应的中断处理程序 中断优先级 为使系统能及时响应并处理发生的所有中断 系统根 据引起中断事件的重要性和紧迫程度 硬件将中断源 分为若干个级别 Date3 中断的分类 根据中断源产生的条件 可把中断分为 外中断和内中断 外中断是指来自外部设备的中断 外中断 在狭义上一般被称为中断 内中断主要指在处理机和内存内部产生的 中断 内中断一般称为陷阱 trap Date4 中断和陷阱的区别 陷阱通常

2、由处理机正在执行的现行指令引起 而 中断则是由与现行指令无关的中断源引起的 陷阱处理程序提供的服务为当前进程所用 而中 断处理程序提供的服务则不是为了当前进程的 CPU在执行完一条指令之后 下一条指令开始之 前响应中断 而陷阱则可能是在指令执行期间发 生并被处理 例如执行指令非法时 尽管被执行的非法指令不能执 行结束 但CPU仍可对其进行处理 陷阱处理程序通常被规定在各自的进程上下文中 执行 而中断处理程序则一定在系统上下文中执 行 Date5 软中断 软中断则是通信进程之间用来模拟硬中断 的一种信号通信方式 其中断源发中断请求或软中断信号后 CPU或 接收进程在适当的时机自动进行中断处理或完

3、 成软中断信号所对应的功能 在有些系统中 大部分的陷阱是转化为软中断 处理的 Date6 软中断 特点 其优先级一般低于系统调度程序的优先级 可以 用来执行不十分紧急的任务 用于实现系统调用 调试等工作 实例 除法溢出 0 int指令 单步调试中断 CPU的状态寄存器的某位置1的时候 每条指令执行后都会产生一个调试中断 Date7 INTEL i386的中断向量 0 31 不可屏蔽中断 32 47 可屏蔽中断 48 255 软中断 Linux采用0 x80作为系统调用所采用的 中断向量 用于陷入核心态 进行核心 处理 Date8 中断处理过程 CPU检查响应中断的条件是否满足 CPU响应中断的

4、条件是 有来自于中断源的中断请求 CPU允许中断 如果CPU响应中断 则CPU关中断 使其进入不可再次响应 中断的状态 保存被中断进程现场 分析中断原因 调用中断处理子程序 在多个中断请求同时 发生时 处理优先级最高的 执行中断处理子程序 对陷阱来说 在有些系统中则是通过 陷阱指令向当前执行进程发软中断信号后调用对应的处理子程 序执行 退出中断 恢复被中断进程的现场或调度新进程占据处理机 开中断 CPU继续执行 Date9 内容纲要 中断 IO缓冲 设备分配 Date10 缓冲的引入 需设置缓冲区缓解与外设速度不匹配 引入缓冲的必要性 引入缓冲的一个例子是网络通信 如果从远地终端 发来数据 串

5、行 仅用1个bit缓冲来接收 则必须在 每收到一位数据时便中断CPU一次 对于速率为 9 6 kb s 数据通信来说 意味着中断CPU的频率也 为9 6k次 Date11 1bit 100 s 8位缓冲 中断通知CPU CPU响应取走处理 800 s内 1bit 100 s 1位缓冲 中断通知CPU CPU响应取走处理 100 s内 端口 1位缓冲 8位缓冲 缓冲的引入 寄存器 Date12 u 进程读取数据块时 若已在缓冲区就立刻读 取 不阻塞进程 当缓冲区空时才阻塞进程 启 动磁带或磁盘数据块读入 这就是所谓的提前读 u 当进程输出数据块到磁带或磁盘时 只需写 入缓冲区 直到缓冲区满之后才

6、开始启动磁带或 磁盘 既减少了输出操作和中断次数 又提高了 传输速度 利用缓冲区实现的这种功能就称为延 迟写 引入缓冲技术 系统对设备读写可实行 提前读 和 延迟写 方式 缓冲的引入 引入缓冲的必要性 Date13 凡是数据到达速率与数据离去速率不同的地方都可 以设置缓冲区 根据I O控制方式 缓冲的实现方法有两种 一种是采用专用硬件缓冲器 例如I O设备 或控 制器中的数据缓冲寄存器 另一种方法是利用系统内存空间和软件方法实现 的缓冲技术 也称软件缓冲 主要讨论利用内存和软件实现的缓冲技术 缓冲的引入 引入缓冲的必要性 Date14 缓冲的种类 缓冲技术是利用空间来换取时间 加快系统I O数

7、 据处理速度 缓冲区的设置也根据设备的类型有关 块设备的缓冲区的大小应为块的大小 字符设备的缓冲区大小一般以一行大小设置 根据系统不同配置 一般可把缓冲技术分为单 缓冲 双缓冲和多缓冲以及缓冲池几种 缓冲的引入 Date15 操作系统用户进程 I O设备 进入 进入移动到 a 无缓冲 b 单缓冲 c 双缓冲 I O设备 I O设备 进入移动到 d 循环缓冲 I O设备 进入移动到 缓冲的种类 Date16 单缓冲 以块传输为例 假定T 为从块设备传输一块到缓冲区的时间 对其进行计算 或加工 时间为C n 无缓冲 数据直接进入用户区 一块处理时间显 然为 T C n 设置单缓冲区 从缓冲区将数据

8、传送到用户区时 间为 M 处理一块时间为 max T C M 假定 连续输入 n 块数据 且T C 不考虑最初输 入和最后的计算 中间任何一块处理时间均为 T M 或C M Date17 用户进程 输入时间T 移动时间M 计算时间C 设备输入 缓冲区 拷贝到用户区 用户区数据 用户进程计算 空满 t T CM 满满满 空 结束 对于T C C T 单缓冲 Date18 单缓冲下设备并行问题 单缓冲属于临界资源 不允许多个进程同时对一 个缓冲区操作 故设备之间不能达到并行操作 进一步说明 假定输入到缓冲块数据被立即打印 出去 此时C 为打印一个数据块时间 并且仍假定 T C 即输入的速度 输出的

9、速度 这时输入与输 出是串行操作的 即输入一个块数据时 输出等待 反之亦然 为使设备之间能够并行操作 就必须 引入双缓冲 单缓冲 Date19 双缓冲 解决两台外设之间 I O与计算之间并行操作问题 是设置双缓冲 假定输入输出设备速度相同都需T 时间 如下图 缓冲区1 缓冲区2 设备输入 设备输出 输入数据 输出数据 输入数据 t 输入数据 输出数据 T CPU在计算时 输入设备也可以进行输入 CPU将输入到一个缓冲区的数据取走的同时 输入设备可向 另一个缓冲区输入数据 Date20 双缓冲分析 双缓冲只是说明设备之间 CPU和设备并行操作简 单模型 不能用于实际并行操作 有两个原因 n 计算

10、机系统中外围设备较多 各设备差异很大 双缓冲下设备间完全并行操作很难实现 可存 在并行 但很不完全 n CPU速度远高于外设 尤其出现阵发性I O 操作 使得CPU与设备间并行难以实现 因而 双缓冲情况下匹配设备和CPU速度受到制约 n现代系统中一般使用多缓冲的循环缓冲或缓 冲池结构 双缓冲 Date21 循环缓冲 n双缓冲在并行时由于各自推进速度的差异使得并 行受到很大限制 n可利用多缓冲来平滑计算与输入输出设备 输入 设备与输出设备并行双方之间的数据流 n多缓冲通常组织成循环缓冲的形式 通常多个缓冲的大小相同 多缓冲组成 I O设备 进入移动到 Date22 E E C F F F Nex

11、t E Next F Current F 1 2 3 4 5 6 E E F F F F Next E Next F 1 2 3 4 5 6 a b 对用于输入的多缓冲分成三种类型 并有三个指针 空缓冲区E Next E 指示进程下一个可用缓冲区E 满缓冲区 F Next F 指示进程下一个可用缓冲区F 工作缓冲区 C Current指示进程正在使用缓冲区 循环缓冲 E 空 F 满满 进程可利用申请和释放两个过程使用循环缓冲区 申请一个缓冲区 对于计算进程 申请由Next F指示缓冲区F供计算使用提取数 据 复制到进程区 且作为当前工作缓冲区 Next F指针后移一个缓冲区 同 理对于输入进程

12、是将当前Next E作为工作缓冲区 Next E指针后移一个缓冲区 释放一个缓冲区 对于计算进程 释放已提取完数据缓冲区 由C改成E 对于 输入进程来说 已向当前空缓冲区输入完数据 应释放并将其改成缓冲区F 输入与计算并行操作中 应考虑两种同步情况 Next E追上Next F 意味输入进程输入数据速度大于计算进程处理数据速度 已将全部缓冲区装满 这时阻塞输入进程 这种情况称为系统受计算限制 Next F追上Next E 计算进程处理数据的速度大于输入进程的速度 这种情况 称为系统受输入限制 并行的一方速度超出了另一方不断工作所能完成的总量 缓冲区全满 多缓冲的 作用也就消失了 Date23

13、缓冲池 面向字符 块设备缓冲区都可以有两种属性 n 私用缓冲区 专用缓冲区 前面介绍的循环缓冲 就是针对某一特定设备的 会产生严重的问题 有大量I O操作进程因分配缓冲区不足造成阻塞 进程无I O请求使得所分配缓冲区资源浪费 n 公用缓冲区 为所有进程所共享 即当进程需要 进行I O时 需要向系统申请一个缓冲 系统就在 属于公共的缓冲区中进行分配 造成按需分配的管 理方式 需建立缓冲池管理 因此 为了提高缓冲区的利用率 通常不将缓冲区与某一具体设备固定的联系 在一起 而是将所有的缓冲区集中管理 Date24 缓冲池的组织 缓冲池由多个缓冲区组成 每个都可以用于输入 输出 可以分为三种类型队列

14、n 空缓冲队列emq 队首指针F emq 队尾指针 L emq n 满输入数据的输入缓冲队列inq 队首指针F inq 队尾指针L inq n 满输出数据的输出缓冲队列outq 队首指针 F outq 队尾指针L outq 缓冲池 F emq 空缓冲1空缓冲2空缓冲e L emq F inq 输入满1输入满2输入满i L inq F outq 输出满1输出满2输出满o L outq 缓冲区的组织 缓冲首部 用来标识该缓冲区和用于管理 缓冲体 用来存放数据 Date25 进程从三种队列中申请和取出缓冲区 进行存数 取数操作 然后再放入相应队列 这些缓冲区被称 为工作缓冲区 有4种工作缓冲区 n

15、用于收容设备输入数据的收容输入缓冲区hin n 用于提取设备输入数据的提取输入缓冲区sin n 用于收容CPU输出数据的收容输出缓冲区hout n 用于提取CPU输出数据的提取输出缓冲区sout 缓冲池 缓冲池的组织 缓冲区i hin 缓冲区j 缓冲区k缓冲区m sout sin hout 提取输入 收容输出 CPU 收容输入 输入机 提取输出 输出机 缓冲池 Date26 缓冲池管理 注意 由于缓冲队列是系统内各进程所公用的资源 是临界资源 在多个进程访问一个队列时应该互 斥 同时也需要同步 这是生产者与消费者问题的 变形 为每个队列设置一个互斥信号量S type 初值为1 队列缓冲区资源信

16、号量RS type 空缓冲区 输 入满和输出满三个队列初值分别为n 0 0 下面 给出过程get buf和put buf的描述 get buf 供进程申请缓冲区用的过程 或者操作 put buf 供进程将缓冲区放入相应缓冲区队列的过程 或 操作 Date27 其中 type 表示缓冲队列类型 number为缓冲区号 work buf 则表示工作缓 冲区类型 实际也对应一个 缓冲区号 过程get buf和put buf的描述 Date28 F emq L emq 进程请求输入时 缓冲池中缓冲区变化 空缓 冲2 空缓 冲e F inq L inq 输入 缓冲2 输入 缓冲1 输入 缓冲i 收容输入 输入机 hin 注 各队列1 2 为相对编号 进程请求 输入数据 number k 空缓 冲1 空缓 冲1 结束 输入 缓冲k 缓冲区工作方式 Date29 内容纲要 中断 IO缓冲 设备分配 Date30 设备分配 由于设备 控制器和通道资源的有限性 不是每 一个进程随时随地都能得到这些资源 进程必须首先向设备管理程序提出资源申请 然后 由设备分配程序根据相应的分配算法为进 程分配资源 如果申

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

当前位置:首页 > 中学教育 > 教学课件

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