




已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
设备管理与IO 2 胡燕 2020 3 27 2 内容纲要 中断IO缓冲设备分配 2020 3 27 3 中断的概念 中断源引起中断发生的事件中断请求中断源向CPU发出的请求中断处理信号中断响应CPU收到中断请求后 转去执行相应的中断处理程序中断优先级为使系统能及时响应并处理发生的所有中断 系统根据引起中断事件的重要性和紧迫程度 硬件将中断源分为若干个级别 2020 3 27 4 中断的分类 根据中断源产生的条件 可把中断分为外中断和内中断 外中断是指来自外部设备的中断 外中断在狭义上一般被称为中断 内中断主要指在处理机和内存内部产生的中断 内中断一般称为陷阱 trap 2020 3 27 5 中断和陷阱的区别 陷阱通常由处理机正在执行的现行指令引起 而中断则是由与现行指令无关的中断源引起的 陷阱处理程序提供的服务为当前进程所用 而中断处理程序提供的服务则不是为了当前进程的 CPU在执行完一条指令之后 下一条指令开始之前响应中断 而陷阱则可能是在指令执行期间发生并被处理 例如执行指令非法时 尽管被执行的非法指令不能执行结束 但CPU仍可对其进行处理 陷阱处理程序通常被规定在各自的进程上下文中执行 而中断处理程序则一定在系统上下文中执行 2020 3 27 6 软中断 软中断则是通信进程之间用来模拟硬中断的一种信号通信方式 其中断源发中断请求或软中断信号后 CPU或接收进程在适当的时机自动进行中断处理或完成软中断信号所对应的功能 在有些系统中 大部分的陷阱是转化为软中断处理的 2020 3 27 7 软中断 特点其优先级一般低于系统调度程序的优先级 可以用来执行不十分紧急的任务用于实现系统调用 调试等工作实例除法溢出 0 int指令单步调试中断 CPU的状态寄存器的某位置1的时候 每条指令执行后都会产生一个调试中断 2020 3 27 8 INTELi386的中断向量 0 31 不可屏蔽中断32 47 可屏蔽中断48 255 软中断Linux采用0 x80作为系统调用所采用的中断向量 用于陷入核心态 进行核心处理 2020 3 27 9 中断处理过程 CPU检查响应中断的条件是否满足 CPU响应中断的条件是 有来自于中断源的中断请求 CPU允许中断 如果CPU响应中断 则CPU关中断 使其进入不可再次响应中断的状态 保存被中断进程现场 分析中断原因 调用中断处理子程序 在多个中断请求同时发生时 处理优先级最高的 执行中断处理子程序 对陷阱来说 在有些系统中则是通过陷阱指令向当前执行进程发软中断信号后调用对应的处理子程序执行 退出中断 恢复被中断进程的现场或调度新进程占据处理机 开中断 CPU继续执行 2020 3 27 10 内容纲要 中断IO缓冲设备分配 2020 3 27 11 缓冲的引入 需设置缓冲区缓解与外设速度不匹配 引入缓冲的必要性 引入缓冲的一个例子是网络通信 如果从远地终端发来数据 串行 仅用1个bit缓冲来接收 则必须在每收到一位数据时便中断CPU一次 对于速率为9 6kb s数据通信来说 意味着中断CPU的频率也为9 6k次 2020 3 27 12 1bit 100 s 8位缓冲 中断通知CPU CPU响应取走处理 800 s内 1bit 100 s 1位缓冲 中断通知CPU CPU响应取走处理 100 s内 端口 1位缓冲 8位缓冲 缓冲的引入 寄存器 2020 3 27 13 进程读取数据块时 若已在缓冲区就立刻读取 不阻塞进程 当缓冲区空时才阻塞进程 启动磁带或磁盘数据块读入 这就是所谓的提前读 当进程输出数据块到磁带或磁盘时 只需写入缓冲区 直到缓冲区满之后才开始启动磁带或磁盘 既减少了输出操作和中断次数 又提高了传输速度 利用缓冲区实现的这种功能就称为延迟写 引入缓冲技术 系统对设备读写可实行 提前读 和 延迟写 方式 缓冲的引入 引入缓冲的必要性 2020 3 27 14 凡是数据到达速率与数据离去速率不同的地方都可以设置缓冲区 根据I O控制方式 缓冲的实现方法有两种 一种是采用专用硬件缓冲器 例如I O设备 或控制器中的数据缓冲寄存器 另一种方法是利用系统内存空间和软件方法实现的缓冲技术 也称软件缓冲 主要讨论利用内存和软件实现的缓冲技术 缓冲的引入 引入缓冲的必要性 2020 3 27 15 缓冲的种类 缓冲技术是利用空间来换取时间 加快系统I O数据处理速度 缓冲区的设置也根据设备的类型有关块设备的缓冲区的大小应为块的大小 字符设备的缓冲区大小一般以一行大小设置 根据系统不同配置 一般可把缓冲技术分为单缓冲 双缓冲和多缓冲以及缓冲池几种 缓冲的引入 2020 3 27 16 操作系统 用户进程 I O设备 进入 进入 移动到 a 无缓冲 b 单缓冲 c 双缓冲 I O设备 I O设备 进入 移动到 d 循环缓冲 I O设备 进入 移动到 缓冲的种类 2020 3 27 17 单缓冲 以块传输为例 假定T为从块设备传输一块到缓冲区的时间 对其进行计算 或加工 时间为C 无缓冲 数据直接进入用户区 一块处理时间显然为 T C 设置单缓冲区 从缓冲区将数据传送到用户区时间为M 处理一块时间为 max T C M 假定 连续输入n块数据 且T C 不考虑最初输入和最后的计算 中间任何一块处理时间均为 T M 或C M 2020 3 27 18 用户进程 输入时间T 移动时间M 计算时间C 设备输入 缓冲区 拷贝到用户区 用户区数据 用户进程计算 空 满 t T C M 满 满 满 空 对于T C C T 单缓冲 2020 3 27 19 单缓冲下设备并行问题 单缓冲属于临界资源 不允许多个进程同时对一个缓冲区操作 故设备之间不能达到并行操作 进一步说明 假定输入到缓冲块数据被立即打印出去 此时C为打印一个数据块时间 并且仍假定T C 即输入的速度 输出的速度 这时输入与输出是串行操作的 即输入一个块数据时 输出等待 反之亦然 为使设备之间能够并行操作 就必须引入双缓冲 单缓冲 2020 3 27 20 双缓冲 解决两台外设之间 I O与计算之间并行操作问题是设置双缓冲 假定输入输出设备速度相同都需T时间 如下图 缓冲区1 缓冲区2 设备输入设备输出 t T CPU在计算时 输入设备也可以进行输入 CPU将输入到一个缓冲区的数据取走的同时 输入设备可向另一个缓冲区输入数据 2020 3 27 21 双缓冲分析 双缓冲只是说明设备之间 CPU和设备并行操作简单模型 不能用于实际并行操作 有两个原因 计算机系统中外围设备较多 各设备差异很大 双缓冲下设备间完全并行操作很难实现 可存在并行 但很不完全 CPU速度远高于外设 尤其出现阵发性I O操作 使得CPU与设备间并行难以实现 因而 双缓冲情况下匹配设备和CPU速度受到制约 现代系统中一般使用多缓冲的循环缓冲或缓冲池结构 双缓冲 2020 3 27 22 循环缓冲 双缓冲在并行时由于各自推进速度的差异使得并行受到很大限制 可利用多缓冲来平滑计算与输入输出设备 输入设备与输出设备并行双方之间的数据流 多缓冲通常组织成循环缓冲的形式 通常多个缓冲的大小相同 多缓冲组成 I O设备 进入 移动到 2020 3 27 23 E E C F F F Next 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指针后移一个缓冲区 同理对于输入进程是将当前Next E作为工作缓冲区 Next E指针后移一个缓冲区 释放一个缓冲区 对于计算进程 释放已提取完数据缓冲区 由C改成E 对于输入进程来说 已向当前空缓冲区输入完数据 应释放并将其改成缓冲区F 输入与计算并行操作中 应考虑两种同步情况 Next E追上Next F 意味输入进程输入数据速度大于计算进程处理数据速度 已将全部缓冲区装满 这时阻塞输入进程 这种情况称为系统受计算限制 Next F追上Next E 计算进程处理数据的速度大于输入进程的速度 这种情况称为系统受输入限制 并行的一方速度超出了另一方不断工作所能完成的总量 缓冲区全满 多缓冲的作用也就消失了 2020 3 27 24 缓冲池 面向字符 块设备缓冲区都可以有两种属性 私用缓冲区 专用缓冲区 前面介绍的循环缓冲就是针对某一特定设备的 会产生严重的问题 有大量I O操作进程因分配缓冲区不足造成阻塞 进程无I O请求使得所分配缓冲区资源浪费 公用缓冲区 为所有进程所共享 即当进程需要进行I O时 需要向系统申请一个缓冲 系统就在属于公共的缓冲区中进行分配 造成按需分配的管理方式 需建立缓冲池管理 因此 为了提高缓冲区的利用率 通常不将缓冲区与某一具体设备固定的联系在一起 而是将所有的缓冲区集中管理 2020 3 27 25 缓冲池的组织 缓冲池由多个缓冲区组成 每个都可以用于输入 输出 可以分为三种类型队列 空缓冲队列emq 队首指针F emq 队尾指针L emq 满输入数据的输入缓冲队列inq 队首指针F inq 队尾指针L inq 满输出数据的输出缓冲队列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 缓冲区的组织 缓冲首部 用来标识该缓冲区和用于管理 缓冲体 用来存放数据 2020 3 27 26 进程从三种队列中申请和取出缓冲区 进行存数 取数操作 然后再放入相应队列 这些缓冲区被称为工作缓冲区 有4种工作缓冲区 用于收容设备输入数据的收容输入缓冲区hin 用于提取设备输入数据的提取输入缓冲区sin 用于收容CPU输出数据的收容输出缓冲区hout 用于提取CPU输出数据的提取输出缓冲区sout 缓冲池 缓冲池的组织 2020 3 27 27 缓冲池管理 注意 由于缓冲队列是系统内各进程所公用的资源 是临界资源 在多个进程访问一个队列时应该互斥 同时也需要同步 这是生产者与消费者问题的变形 为每个队列设置一个互斥信号量S type 初值为1 队列缓冲区资源信号量RS type 空缓冲区 输入满和输出满三个队列初值分别为n 0 0 下面给出过程get buf和put buf的描述 get buf 供进程申请缓冲区用的过程 或者操作 put buf 供进程将缓冲区放入相应缓冲区队列的过程 或操作 2020 3 27 28 其中 type表示缓冲队列类型number为缓冲区号work buf则表示工作缓冲区类型 实际也对应一个缓冲区号 过程get buf和put buf的描述 2020 3 27 29 F emq L emq 进程请求输入时 缓冲池中缓冲区变化 空缓冲2 空缓冲e F inq L inq 输入缓冲1 收容输入 输入机 注 各队列1 2 为相对编号 进程请求输入数据 number k 缓冲区工作方式 2020 3 27 30 内容纲要 中断IO缓冲设备分配 2020 3 27 31 设备分配 由于设备 控制器和通道资源的有限性 不是每一个进程随时随地都能得到这些资源 进程必须首先向设备管理程序提出资源申请 然后 由设备分配程序根据相应的分配算法为进程分配资源 如果申请进程得不到它所申请的资源时 将被放入资源等待队列中等待 直到所需要的资源被释放 一个进程只有获得了通道 控制器和所需设备三者之后 才具备进行I O操作的物理条件 2020 3 27 32 设备分配中的数据结构 系统设备表 SDT SDT整个系统一张 每个设备一个表目 设备控制表 DCT 系统中每个设备都有一张DCT 由SDT指向 控制器控制表 COCT COCT也是每个控制器一张表 在DMA方式时 这项是没有的 有些表项的含义与DCT相类似 通道控制表 CHCT 每个通道一张表 可以挂接多个控制器 2020 3 27 33 系统设备表 SDT 设备控制表 DCT 通道控制表 CHCT 控制器控制表 COCT 设备分配中的数据结构 2020 3 27 34 设备分配需要考虑的因素 在多道程序环境下 系统资源总是由操作系统进行分配的 以使得系统有序的工作 合理的设备分配需要考虑3个因素 I O设备的固有属性物理特性 独占 打印机 共享 磁盘 分配算法类似于进程调度算法设备分配的安全性 分配时应考虑是否会发生死锁 同时避免各进程循环等待现象的发生安全分配方式进程发出I O申请便进入阻塞状态直至I O完成被唤醒 请求与保持不成立 不安全分配方式申请I O之后可继续执行后续的 计算 不被阻塞 这样可以并行操作 2020 3 27 35 设备分配原则 设备分配的原则是根据设备特性 用户要求和系统配置情况决定的 设备分配的总原则既要充分发挥设备的使用效率
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年环保型堡坎施工及绿色施工技术支持合同
- 2025年度智慧城市网络安全监测与维护服务合同
- 2025年民宿经营居间合同(含家具家电租赁、更换及保养服务)
- 二零二五年度社区消防安全管理培训及隐患排查服务协议
- 2025年校园食堂餐饮服务外包合同范本
- 2025年度特色餐饮店食品安全管理责任险合同范本
- 2025年校园资产重组股权收购项目及教育咨询服务协议
- 2025年度数字音乐作品海外发行与版权收益分成合同
- 少数民族知识培训会课件
- 网络营销展会策划合同
- GB/T 14153-1993硬质塑料落锤冲击试验方法通则
- (完整版)人教版八年级下册《道德与法治》期末测试卷及答案【新版】
- 并购贷款业务培训
- 北京大学人民医院-医疗知情同意书汇编
- 档案管理员述职报告9篇
- 建设集团有限公司安全生产管理制度汇编
- 牙体牙髓病最全课件
- 交通信号控制系统检验批质量验收记录表
- 疫苗运输温度记录表
- 各国钢材-合金牌号对照表
- 医院定岗定编要点
评论
0/150
提交评论