计算机操作系统第七章.ppt_第1页
计算机操作系统第七章.ppt_第2页
计算机操作系统第七章.ppt_第3页
计算机操作系统第七章.ppt_第4页
计算机操作系统第七章.ppt_第5页
已阅读5页,还剩351页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2020 3 15 1 第七章设备管理 2020 3 15 2 本章主要目录 7 1I O系统的组成7 2I O控制方式7 3缓冲管理7 4设备分配7 5设备处理7 6中断技术总结作业练习 2020 3 15 3 设备管理是对计算机I O设备的管理 是操作系统中最具有多样性和复杂性的部分 它负责管理和完成用户对外设的使用中所有硬件相关和应用无关工作 为用户使用外设提供方便服务和高效安全管理 称I O子系统 2020 3 15 4 其任务 1 按照用户的要求控制I O设备工作 完成用户所希望的I O操作 以减轻用户编制程序的负担 这是设备管理的基本任务 2 按照一定的算法把I O设备分配给对该设备提出请求的进程 保证系统有条不紊地工作 3 充分有效地使用I O设备 尽可能提高这些设备的并行操作程度 2020 3 15 5 其功能 设备分配 按照设备类型和相应的分配算法决定将I O设备分配给哪一个要求该设备的进程 在分配设备的同时还要分配相应的控制器和通道 以保证I O设备与CPU之间有传递信息的通路 凡未分配到所需设备的进程被放入一个等待队列 实现这一功能的是设备分配程序 2020 3 15 6 设备控制 完成这一功能的是设备处理程序 实现这一功能 设备处理程序首先根据用户提出的I O请求构成相应的通道程序 交给通道去执行 然后启动指定的设备进行I O操作 最后要对通道发来的中断请求作出及时响应和处理 2020 3 15 7 实现其他功能 包括对缓冲区的管理功能 为改善系统的可适应性和可扩充性 使用户程序与实际使用的物理设备无关 即实现设备独立性 由设备无关性 独立性 软件实现 2020 3 15 8 与操作系统的其他功能一样 操作系统设备管理功能的具体工作任务 内容 目标 取决于用户对外设的使用要求同外设硬件提供的原始使用接口方式间所存在的差距 取决于该差距中的硬件相关和应用无关的内容 2020 3 15 9 I O在计算机系统中具有重要地位 操作系统复杂和庞大的主要原因是所管理资源的庞杂和并发技术的采用 而I O速度正是导致并发技术产生的直接原因 I O设备庞杂也是操作系统所管理资源庞杂的主要原因 I O性能是系统总体性能的重要决定因素 重要表现指标和常见瓶颈之一 I O能力和特点是现代计算机系统分类的重要依据 2020 3 15 10 操作系统设备管理功能的总体结构 分为两层 设备无关层 独立层 和设备相关层 驱动层 进一步划分为 设备中断处理程序 设备驱动程序 与设备无关的操作系统软件和用户级软件 用户空间的I O软件 2020 3 15 11 I O系统的层次以及每一层的主要功能 2020 3 15 12 I O软件的设计目标和原则 设备无关性 访问文件数据的程序 与具体的物理设备无关 出错处理 数据传输过程中出现的错误尽可能靠近硬件的地方处理 同步 异步传输 CPU并行工作 为异步 阻塞方式 称为同步 缓冲技术 2020 3 15 13 7 1I O系统的组成 7 1 1I O系统的结构一 微型机I O系统二 主机I O系统7 1 2I O设备一 I O设备的类型二 设备与控制器之间的接口7 1 3设备控制器一 设备控制器的功能二 设备控制器的组成7 1 4I O通道一 通道设备的引入二 通道类型三 瓶颈 问题7 1 5总线系统 2020 3 15 14 7 1 1I O系统的结构一般分成两大类 微机I O系统和主机I O系统 一 微型机I O系统PC连接小型和微型机I O系统多采用单总线型I O系统结构 CPU和内存是直接连接到总线上 I O设备是通过设备控制器连接到总线上 2020 3 15 15 CPU不直接与I O设备进行通信 而是与设备控制器进行通信 并通过它去控制相应的设备 即设备控制器 devicecontroller又叫适配器adapter 是CPU和设备之间的接口 根据设备的类型而配置相应的控制器 如 磁盘控制器 打印机控制器等 2020 3 15 16 CPU 存储器 磁盘控制器 打印机控制器 其它控制器 打印机 磁盘驱动器 系统总线 总线型I O系统结构 2020 3 15 17 二 主机I O系统 通道连接IBM370 大中型主机所配置的I O设备较多 特别是高速外设 若所有这些设备的控制器 都通过总线直接与CPU通信 则总线和CPU的负担过重 解决的方法是在I O系统中不采用单总线结构 增加一级I O通道 用以代替CPU与各设备控制器进行通信 实现对它们的控制 2020 3 15 18 计算机 I O通道2 I O通道1 控制器 控制器 控制器 控制器 设备 设备 具有通道的I O系统结构 2020 3 15 19 每个外设一般包含机械和电子两部分 机械部分负责实际的I O操作 直接产生结果信息形式 是设备主体 电子部分是通过电子技术实现与主机的连接 操作系统管理的是电子部分 电子部分的任务 1 端口地址译码 2 将计算机的数字信号 转换为机械部分能识别的模拟信号 或反之 A D或D A转换 3 实现设备内部硬件缓冲存储 数据加工 DMA等 2020 3 15 20 微型机和个人计算机中 把电子部分的一部分功能分离出来形成单独的设备控制器 称为适配器或控制卡 从而形成 CPU 控制器 设备 的关系模式 操作系统更多地是与控制器打交道 而不直接与设备打交道 控制器通过若干接口寄存器或接口缓冲区与CPU 或通道 通信 2020 3 15 21 7 1 2I O设备一 I O设备的类型按不同的角度进行划分 1 按数据传输速率分类 1 低速设备 其传输速率为每秒几个字节至数百个字节的 如 键盘 鼠标器 语音的输入和输出等设备 2 中速设备 其传输速率为每秒数千字节至数十千字节 如 行式打印机 激光打印机等 3 高速设备 传输速率为数百字节至数兆字节 如 磁带机 磁盘机 光盘机等 2020 3 15 22 2 按信息交换的单位分类 1 块设备 BlockDevice 用于存储信息 信息的存取以数据块为单位 它属于有结构设备 如 磁盘 其基本特征是传输速率高 一般为每秒几兆位 另一特征是可寻址 即可随机地读 写任意一块 再一特征是磁盘设备的I O系统采用DMA方式 还有 磁带 2020 3 15 23 2 字符设备 CharacterDevice unix 用于数据的输入和输出 其基本单位是字符 属于无结构设备 如 交互式终端 键盘 显示器 打印机等 其基本特征 一 传输速率低二 不可寻址 即不能指定输入时的源址及输出时的目标地址 三 字符设备在进行I O时 采用中断驱动方式 2020 3 15 24 3 按设备的共享属性分类 1 独占 享 设备 是指在一段时间内只允许一个用户或进程访问的设备 即为临界资源 并发进程要互斥地访问这类设备 系统一旦分配给某进程 便由该进程独占 直到用完释放 多数为低速设备 如 打印机 2020 3 15 25 2 共享设备 是指在一段时间内允许多个进程同时访问的设备 共享设备是可寻址的和可随机访问的设备 如 磁盘 3 虚拟设备 是指通过虚拟技术将一台独占设备变换为若干台逻辑设备 供若干个用户或进程同时使用 这种经虚拟技术处理后的设备 称为虚拟设备 2020 3 15 26 4 按设备的从属关系分类系统设备 是指在OS生成时已经登记在系统中的标准设备 如键盘 显示器 打印机 文件存储设备等 用户设备 是指OS生成时未登记在系统的非标准设备 如 鼠标 绘图仪 扫描仪 网络系统中的各种网板 实时系统中的A D D A变换器 图像处理系统的图像设备等 2020 3 15 27 5 按操作特性分类存储设备 用来存放各种信息 如 磁盘 磁带 磁鼓 光盘等 I O设备 输入型和输出型 是向CPU传输信息和输出经加工处理的信息 如 键盘 显示器 打印机 图形 图像 输入 输出设备 绘图机 网络通信板 音声输入 输出设备等 终端设备 通用终端 会话型 批处理型 智能终端 专用终端 虚终端 脱机设备 2020 3 15 28 二 设备与控制器之间的接口一般 设备不是直接与CPU进行通信 而是与设备控制器通信 所以 在设备与控制器之间应有一接口 接口中的信号有三种 1 数据信号 输入时 由设备发送给设备控制器 至CPU 输出时 由设备控制器所接收的比特流 来自CPU 串行的位流 很低层次的接口 控制器的任务是把串行的位流转换为字节块 并进行必要的错误校正工作 在控制器内部的一个缓冲区中按位组装 进行校验后 再复制到内存 2020 3 15 29 2 控制信号 是设备控制器发送给设备的 用于规定设备执行读或写操作的信号或执行其它操作的信号 如 移动磁头的信号 3 状态信号 用于指示设备的当前状态 如 指示设备正在读或写 指示设备已读或写完 并准备好新的数据传送 2020 3 15 30 I O设备 至设备控制器 信号数据 数据信号线 状态信号线 控制信号线 设备与控制器间的接口 2020 3 15 31 7 1 3设备控制器设备控制器是CPU与I O设备之间的接口 它接收从CPU发来的命令 并去控制I O设备工作 使CPU从设备控制事务解脱出来 它是一个可编址设备 当仅控制一个设备时 只有一个唯一的设备地址 若控制器连接了多个设备时 就具有多个设备地址 使每一个地址对应一个设备 2020 3 15 32 分两类 一类是用于控制字符设备的控制器 另一是用于控制块设备的控制器 微型机中以印刷电路板形式插入计算机的扩展槽中 又称为接口卡 或控制器卡 2020 3 15 33 一 设备控制器的功能1 接收和识别命令设备控制器能接收并识别CPU所发出的命令 它具有相应的控制寄存器 用来存放接收的命令和参数 并对所接收的命令进行译码 如 磁盘控制器可接收CPU发出的Read Write Format等15条不同的命令 所以 磁盘控制器中有多个寄存器和命令译码器 2020 3 15 34 2 数据交换实现CPU与控制器之间 控制器与设备之间的数据交换 前者 是通过数据总线 由CPU并行地把数据写入控制器 或从控制器中并行地读出数据 后者 是设备将数据输入到控制器 或从控制器传送给设备 所以 控制器需设置数据寄存器 操作系统可对其进行读写 2020 3 15 35 3 设备状态的了解和报告控制器能记下设备的状态供CPU了解 如 仅当设备处于发送就绪状态时 CPU才能启动控制器从设备中读出数据 所以 要在控制器中设置一状态寄存器 用其中的每一位来反映设备的某一种状态 当CPU将该寄存器的内容读入后 便可了解该设备的状态 2020 3 15 36 4 地址识别系统中的每一个设备都有一个地址 而设备控制器必须能够识别它所控制的每个设备的地址 另外 为使CPU能向 或从 寄存器中写入 或读出 数据 寄存器具有唯一的地址 如 PC机中规定 硬盘控制器中各寄存器的地址 分别为320 32F之一 控制器能正确识别这些地址 为此 在控制器配置地址译码器 2020 3 15 37 5 数据缓冲6 差错控制对I O设备传送来的数据进行差错检测 2020 3 15 38 二 设备控制器的组成1 设备控制器与CPU的接口用于实现CPU与设备控制器之间的通信 有三类信号线 数据线 地址线和控制线 数据线一般与如下两类寄存器连接 2020 3 15 39 1 与数据寄存器连接 控制器可有多个数据寄存器 用于存放从设备送来的数据 输入 或从CPU送来的数据 输出 2 与控制 状态寄存器连接 控制器中有多个这类寄存器 用于存放从CPU送来的控制信息或设备的状态信息 2020 3 15 40 Cpu如何与设备进行通信的 方法一 为的每个控制寄存器分配一个I O端口号 port 8位或16位的整数 使用特殊的指令 IBM370 IBMPC机inreg port cpu读控制寄存器port的内容到cpu寄存器regoutport reg cpu将reg的内容写入控制寄存器中 早期计算机 2020 3 15 41 方法二 将所有控制寄存器映射到内存空间中 每个控制寄存器分配唯一的一个内存地址 一般位于高地址空间 PDP 11和现在的所有RISC类CPU 方法三 混合方案 既具有内存映射I O的数据缓冲区 控制寄存器又具有单独的I O端口 Pentium 2020 3 15 42 2 设备控制器与设备的接口 有一个连接器 一般采用标准接口ANSI IEEE或ISO 一个设备控制器上 可连接一个或多个设备 相应地 在控制器中要有多个设备接口 一个接口连接一台设备 每个接口中都存在数据 控制和状态三种类型的信号 控制器中的I O逻辑根据CPU发来的地址信号 去选择一个设备接口 2020 3 15 43 3 I O逻辑用于实现对设备的控制 它通过一组控制线与处理机交互 处理机利用该逻辑向控制器发送I O命令 I O逻辑对收到的命令进行译码 每当CPU启动一个设备时 一方面将启动命令发送给控制器 另一方面同时通过地址线把地址发送给控制器 由控制器的I O逻辑对收到的地址进行译码 再根据译出的命令对所选的设备进行控制 其组成如图 2020 3 15 44 数据寄存器 控制 状态寄存器 I O逻辑 控制器与设备接口1 控制器与设备接口i 数据 状态 控制 数据 状态 控制 数据线 地址线 控制线 CPU与控制器接口 控制器与设备接口 设备控制器的组成 2020 3 15 45 7 1 4I O通道一 通道设备的引入为进一步减轻CPU的负担 在CPU和设备控制器之间又增设了通道 其主要目的是为了建立独立的I O操作 不仅使数据的传送能独立于CPU 而且也希望有关I O操作的组织 管理及结束也尽量独立 以保证CPU有更多的时间去进行数据处理 即其目的是使一些原来由CPU处理的I O任务转由通道来承担 从而把CPU解脱出来 2020 3 15 46 设置通道后 CPU只需向通道发出一条I O指令 通道接收到该指令后 便从内存中取出本次要执行的通道程序 然后执行该通道程序 仅当通道完成了规定的I O任务后 才向CPU发出中断信号 2020 3 15 47 I O通道是一种特殊的处理机 它具有执行I O指令的能力 但又与一般的处理机不同 表现在两个方面 一方面是其指令类型单一 另一方面通道没有自己的内存 通道所执行通道程序是存放在主机的内存中的 即它与CPU共享内存 2020 3 15 48 二 通道类型根据信息交换方式的不同 分成三种类型 1 字节多路通道 主通道按字节交换方式工作这种通道中 都含有许多非分配型子通道 其数量几十至数百个 每一个子通道连接一台I O设备 2020 3 15 49 子通道按时间片轮转方式共享主通道 当第一个子通道控制其I O设备完成一个字节的交换后 便立即腾出字节多路通道 主通道 让给第二个子通道使用 当第二个子通道也交换完一个字节后 依样把主通道让给第三个子通道 依次类推 所有子通道轮转一周后 重又返回来由第一个子通道去使用字节多路通道 2020 3 15 50 只要字节多路通道扫描每个子通道的速率足够快 而连接到子通道上的设备的速率不是太高时 即 通过字节多路通道来连接低速或中速设备时 便不致丢失信息 如图示 2020 3 15 51 控制器A 控制器B 控制器C 控制器D 控制器N A1A2 子通道A A1A2 子通道B A1A2 子通道C A1A2 子通道N A1B1C1 A2B2C2 设备 字节多路通道的工作原理图 2020 3 15 52 2 数组选择通道 数据选择通道以成组方式进行数据传输的 字节多路通道不适于连接高速设备 由此出现了按数组方式进行数据传送的数组选择通道 它可连接多台高速设备 但却只含有一个分配型子通道 在一段时间内只能执行一道通道程序 控制一台设备进行数据传送 致使当某台设备占了该通道后 便一直由它独占 即使无数据传送通道被闲置 也不允许其它设备利用该通道 直到该设备传送完毕释放该通道 2020 3 15 53 3 数组多路通道数组选择通道每次只允许一个设备传输数据 而数组多路通道是将数组选择通道传输速率提高和字节多路通道能使各子通道 设备 分时并行操作的优点相结合 而形成的一种新通道 它含有多个非分配型子通道 被广泛用于连接多台高 中速的外围设备 其数据传送是按数组方式进行 2020 3 15 54 三 瓶颈 问题通道价格昂贵 通道数量少 成为I O的瓶颈 造成整个系统吞吐量的下降 如图 P149 要启动磁盘4 须利用通道1和控制器2 但这两者被其它设备占用 则无法启动磁盘4 其它类似 2020 3 15 55 单通路I O系统 2020 3 15 56 解决瓶颈问题的最有效的方法 是增加设备到主机间的通路 而不增加通道 如图 P149 即把一个设备连接到多个控制器上 而一个控制器又连接到多个通道上 2020 3 15 57 存储器 通道2 通道1 控制器1 I O设备2 I O设备1 I O设备4 I O设备3 控制器2 多路通路I O系统 2020 3 15 58 7 1 5总线系统在计算机系统中的各部件 都是通过总线来实现的 总线的性能是用总线的时钟频率 带宽和相应的总线传输速率等指标来衡量的 随着计算机中CPU和内存速率的提高 字长的增加 以及不断地引入新型设备 促使人类对总线的时钟频率 带宽和传输速率的要求也不断提高 这便推动了总线的不断发展 2020 3 15 59 CPU 存储器 磁盘控制器 打印机控制器 其它控制器 磁盘驱动器 打印机 总线型I O系统结构 2020 3 15 60 使之由早期的ISA总线发展为EISA总线 VESA总线 进而又演变成当前广为流行的PCI总线 2020 3 15 61 1 ISA和EISA总线1 ISA IndustryStandardArchitecture 总线这是为了1984年推出的80286型微机而设计的总线结构 其总线的带宽为8位 最高传输速率为2MB s 之后又推出了16位的EISA总线 其最高传输速率为8MB s 后升至16MB s 能连接12台设备 2020 3 15 62 2 EISA ExtendedISA 总线80年代末 ISA总线已难于满足带宽和传输速率的要求 人类又开发出扩展ISA EISA 总线 其带宽为32位 总线的传输速率高达32Mb s 也可连接12台外部设备 2020 3 15 63 2 局部总线 LocalBus 多媒体技术的兴起 特别是全运动视频处理 高保真音响 高速LAN 以及高质量图形处理等技术 都要求总线具有更高的传输速率 这时的EISA总线已难于满足要求 于是 局部总线便应运而生 2020 3 15 64 所谓局部总线 是指将多媒体卡 高速LAN网卡 高性能图形板等 从ISA总线上卸下来 再通过局部总线控制器直接接到CPU总线上 使之与高速CPU总线相匹配 而打印机 FAX Modem CD ROM等仍挂在ISA总线上 在局部总线中代表是VESA和PCI总线 2020 3 15 65 1 VESA VideoElectronicStandardAssociation 总线该总线的设计思想是以低价位迅速占领市场 VESA总线的带宽为32位 最高传输速率为132Mb s 它在90年代初被推出时 广泛应用于486微机中 但VESA总线仍存在缺点 如 它所能连接的设备数仅为2 4台 在控制器中无缓冲 难于适应处理器速度的不断提高 也不能支持后出现的Pentium微机 2020 3 15 66 2 PCI PeripheralComponentInterface 总线随着Pentium芯片的推出 Intel公司分别在1992年和1995年颁布了PCI总线的V1 0和V2 0规范 后者支持64系统 PCI在CPU和外设间插入一复杂的管理层 用于协调数据传输和提供一致的接口 在管理层中配有数据缓冲 通过该缓冲可将线路的驱动能力放大 使PCI最多能支持10种外设 并使高时钟频率的CPU能很好地运行 PCI既可连接ISA EISA等传统型总线 又可支持Pentium的64位系统 2020 3 15 67 7 2I O传送控制方式 7 2 1程序I O方式7 2 2中断驱动I O控制方式7 2 3直接存储器访问DMA控制方式一 DMA控制方式的引入二 DMA控制器的组成三 DMA工作过程7 2 4I O通道控制方式一 I O通道控制方式二 通道程序 2020 3 15 68 随着计算机技术的发展 I O控制方式也在不断地发展 当系统引入中断机制后 使I O方式从最简单的程序I O方式发展为中断驱动方式 DMA控制器的出现 又使I O方式在传输单位上发生了变化 即从以字节为传输单位扩大到以数据块为传输单位 大大改善了块设备的I O性能 通道的出现 又使I O操作的组织和数据的传送 能独立地进行而无需CPU干预 2020 3 15 69 选择和衡量控制方式的原则 数据传送速度足够高 能满足用户的需要但又不丢失数据 系统开销小 所需的处理控制程度少 能充分发挥硬件资源的能力 使得I O设备尽量忙 CPU等待时间少 2020 3 15 70 在整个I O控制的发展过程中 始终贯穿着一条宗旨 尽量减少主机对I O控制的干预 把主机从繁杂的I O控制事务中解脱出来 以更多地去完成数据处理任务 其发展过程经历了四个阶段 2020 3 15 71 7 2 1程序直接控制I O方式 轮询方式就是由用户进程来直接控制内存或CPU和外围设备之间的信息传送 这种方式的控制者是用户进程 2020 3 15 72 用户进程通过CPU向设备发命令 start 用户进程进入测试等待状态 等待期间 CPU不断用一条测试指令检查设备的控制 状态 寄存器 设备准备就绪后 置寄存器为完成状态发 Done 命令 开始向内存或CPU传送数据 所传送的数据先经过数据缓冲寄存器 每当寄存器满时产生一次中断 2020 3 15 73 向I O控制器发读命令 读I O控制器的状态 从I O控制器中读入字 向存储器中写字 检查状态 传送完成 未就绪 就绪 未完 完成 下条指令 出错 CPU I O I O CPU I O CPU CPU 内存 程序I O方式 2020 3 15 74 使用程序控制I O将一个字符串写到打印机 Copy from user buffer p count p是内核缓冲区For i 0 i count i 对每个字符循环while printer status reg READY 循环直到就绪 printer data register p i 输出一个字符 return to user 2020 3 15 75 向I O控制器发读命令 读I O控制器的状态 从I O控制器中读入字 向内存中写字 检查状态 传送完成 就绪 未完 完成 下条指令 出错 CPU I O I O CPU I O CPU CPU 内存 中断驱动方式 CPU做其它事 中断 返回 2020 3 15 76 向I O控制器发读块命令 读DMA控制器的状态 下条指令 CPU DMA DMA CPU CPU做其它事 中断 DMA方式 返回 2020 3 15 77 程序直接控制方式 简单 硬件开销小 缺点 1 CPU和外设只有串行工作 CPU一直处于空闲状态 2 CPU在一段时间内只能和一台外设交换数据 不能实现设备之间的并行 3 靠测试设备标志触发器的状态位控制数据传送 无法发现和处理由于设备或其他硬件所产生的错误 如果一个字符输入输出时间短 忙等待也可以 特别在嵌入式系统中 CPU没有其他事情可做 忙等待也是合理的 2020 3 15 78 7 2 2中断驱动I O控制方式为减少CPU的等待时间及提高系统的并行度 中断方式被用来控制外设和内存与CPU之间的数据传送 要求CPU与设备之间有相应的中断请求线 设备控制器的控制状态寄存器的相应的中断允许位 2020 3 15 79 数据输入的步骤 1 首先 进程通过CPU发 start 指令启动外设准备数据 并将中断允许位打开 2 在进程发出启动指令后 该进程转向等待状态 3 输入完时 设备控制器通过中断请求线向CPU发中断信号 转中断处理程序处理 4 以后重新又被进程调度选中 再从断点处继续运行 2020 3 15 80 特点 1 数据缓冲器每满一次 要产生一次中断 由于缓冲器较小 所以 在一次数据传送过程中会发生多次中断 2 若外设速度也较快 可能造成缓冲寄存器中的数据由于CPU来不及取走而丢失 2020 3 15 81 7 2 3直接存储器访问 DMA控制 方式一 DMA控制方式的引入基本思想是在外设和内存之间开辟直接的数据交换通路 DMA中 I O控制器具有比中断方式和程序直接控制方式时更强的功能 DMA控制器可代替CPU控制内存和设备之间成批的数据交换 2020 3 15 82 1 数据传输的基本单位是数据块 即CPU与I O设备之间 每次传送至少是一个数据块 2 所传送的数据是从设备直接送入内存的 或者相反 3 仅在传送一个或多个数据块的开始和结束时 才需CPU干预 整块数据的传送是在控制器的控制下完成的 可见 进一步提高了CPU与I O设备的并行操作程度 2020 3 15 83 二 DMA控制器的组成DMA控制器由三部分组成 1 主机与DMA控制器的接口 2 DMA控制器与块设备的接口 3 I O控制逻辑其关系如图示 P153 2020 3 15 84 DR MAR DC CR I O控制逻辑 CPU 内存 主机 控制器接口 控制器与块设备接口 DMA控制器 系统总线 命令 count DMA控制器的组成 2020 3 15 85 本节主要介绍主机与控制器之间的接口 为了实现控制器与主机之间成块数据的直接交换 必须在DMA控制器中设置以下四类寄存器 2020 3 15 86 1 命令 状态寄存器CR 用于接收从CPU发来的I O命令或有关控制信息 或设备的状态 2 内存地址寄存器MAR 用于存放数据从设备传送到内存的目标地址 或由内存到设备的内存源地址 2020 3 15 87 3 数据寄存器DR 用于暂存从设备到内存或从内存到设备的数据 4 数据计数器DC 存放本次CPU要读或写的字节数 2020 3 15 88 三 DMA工作过程 1 当进程要求设备输入一批数据时 CPU将准备存放输入数据的内存始址以及要传送的字节数分别送入DMA控制器中的内存地址寄存器和传送字节计数器 另外 还要将中断位和启动位置为1 以启动设备开始进行数据输入并允许中断 2020 3 15 89 2 发出数据要求的进程进入等待状态 进程调度程序调度其他进程占据CPU 3 输入设备不断地挪用CPU工作周期 将数据寄存器中的数据源源不断地写入内存 直到所要求的字节全部传送完毕 2020 3 15 90 4 DMA控制器在传送字节数完成时通过中断请求线发出中断信号 CPU收到中断信号后转中断处理程序 唤醒等待输入完成的进程 并返回被中断程序 5 在以后的某个时刻 进程调度程序选中提出请求输入的进程 该进程从指定的内存始址取出数据做进一步处理 2020 3 15 91 特点 中断处理是在DMA控制器的控制下不经过CPU控制完成的 排除了因并行操作设备过多时CPU来不及处理或因速度不匹配而造成的数据丢失现象 DMA控制器的设置不可能过多 2020 3 15 92 7 2 4通道控制方式一 I O通道控制方式的引入DMA方式 已显著地减少了CPU的干预 已由以字节为单位的干预减少到以数据块为单位的干预 而且 每次干预时并无数据拷贝的操作 即不必把数据从控制器拷贝到内存 或者相反 2020 3 15 93 但CPU每发出一条I O指令 只能去读或写一个连续的数据块 当需要一次去读多个离散的数据块且将它们分别传送到不同的内存区域 或者相反时 需由CPU分别发出多条I O指令及进行多次中断处理才能完成 2020 3 15 94 I O通道方式是DMA方式的发展 它可进一步减少CPU的干预 即把对一个数据块的读或写为单位的干预 减少为对一组数据块的读或写及有关的控制和管理为单位的干预 同时 又可实现CPU 通道和I O设备三者的并行工作 从而更有效地提高了整个系统的资源利用率 是一种以内存为中心 实现设备与内存直接交换数据的控制方式 2020 3 15 95 二 通道程序通道是通过执行通道程序 并与设备控制器来共同实现对I O设备的控制的 通道程序是由一系列的通道指令 或称为通道命令 所构成 通道指令与一般的机器指令不同 在它的每条指令中包含如下信息 2020 3 15 96 1 操作码 它规定了指令所执行的操作 如读 写 控制等操作 2 内存地址 标明字符送入内存 读操作 和从内存取出 写操作 时的内存首址 3 计数 表示本条指令所要读 或写 数据的字节数 2020 3 15 97 4 通道程序结束位P 用于表示通道程序是否结束 P 1表示本条指令是通道程序的最后一条指令 5 记录结束标志R R 0表示本通道指令与下一条通道指令所处理的数据同属一个记录 R 1表示这是处理某记录的最后一条指令 2020 3 15 98 三 通道控制方式的数据输入过程 1 当进程要求输入数据时 CPU发出启动指令指明I O操作 设备号和对应通道 2 对应通道接收到CPU发来的启动指令之后 把存放在内存中的通道指令程序读出 并执行通道程序 控制设备将数据传送到内存中指定的区域 2020 3 15 99 3 若数据传送结束 则向CPU发出中断请求 CPU收到中断请求信号后转中断处理程序 唤醒等待输入完成的进程 并返回被中断程序 4 在以后的某个时刻 进程调度程序选中提出请求输入的进程 该进程从指定的内存始址取出数据做进一步处理 2020 3 15 100 例 由六条通道指令所构成的简单的通道程序 该程序的功能是将内存中不同地址的数据 写成多个记录 其中 前三条指令是分别将813 892单元中的80个字符 1034 1173单元中的140个字符和5830 5889单元中的60个字符写成一个记录 第4条指令是单独写一个具有300个字符的记录 第5 6条指令共写500个字符的记录 2020 3 15 101 2020 3 15 102 7 3缓冲管理 7 3 1缓冲的引入7 3 2单缓冲7 3 3双缓冲7 3 4循环缓冲一 循环缓冲的组成二 缓冲区的使用三 进程同步7 3 5缓冲池一 缓冲池的组成二 Getbuf过程和Putbuf过程三 缓冲区的工作方式 2020 3 15 103 为了匹配外设与CPU之间的处理速度 为了减少中断次数和CPU对中断处理的时间 也为了解决DMA或通道方式时的瓶颈问题 在设备管理引入了用来暂存数据的缓冲技术 7 3 1缓冲的引入1 缓和CPU与I O设备间速度不匹配的矛盾 2020 3 15 104 系统中 凡在数据到达速率与其离去速率不同的地方 都可设置缓冲 以缓和它们速度不匹配的矛盾 2020 3 15 105 一般的程序都是时而进行计算 时而产生输出的 若没有缓冲 则程序在输出数据时 必然会由于打印机的速度跟不上 而使CPU停下来等待 在计算阶段 打印机又空闲无事 显然 若在打印机或控制器中设置一缓冲区 用于快速地暂存程序的输出数据 以后由打印机 慢慢地 从中取出数据打印 这样 可使CPU与I O设备并行工作 2020 3 15 106 2 减少对CPU的中断频率 放宽对中断响应时间的限制若从远地终端发来的数据仅用一位缓冲来接收 则必须在每收到一位数据时便中断CPU一次 这样 对于速率为9 6kb s的数据通信来说 就意味着其中断CPU的频率也为9 6kHz 即每100us要中断CPU一次 而且CPU必须在100us内予以响应 否则缓冲区内的数据将被冲掉 2020 3 15 107 若设置一个具有8位的缓冲寄存器 则可使CPU被中断的频率降低为只有一位缓冲时的1 8 若再增设一个8位寄存器中 则又可把CPU对中断的响应时间放宽到800us 3 提高CPU和I O设备之间的并行性 2020 3 15 108 凡是通信问题中一方比另一方速度快时 为了速度匹配而引入比慢方快而与快方更匹配 但因各种局限性而不能完全代替慢方的中间层 称之为缓冲 缓冲本质上是一种异步技术 2020 3 15 109 根据I O控制方式 缓冲的实现方法有两种 一种是采用专用硬件缓冲器 另一种方法是在内存划出一个具有n个单元的专用缓冲区 以便存放输入输出的数据 内存缓冲区又称软件缓冲 内存缓冲区可以分为在用户空间和内核空间 2020 3 15 110 缓冲进一步分为5种 1 在CPU和内存间的Cache 2 设在I O设备或控制器内部的纯硬件缓冲区 设备内部的缓冲区通常不占I O地址空间 不为程序和CPU所知 控制器内部的缓冲区有些占地址空间 3 操作系统的内存缓冲区 4 用户程序内自设的缓冲区 5 脱机与假脱机也是缓冲技术 在外存开设 2020 3 15 111 缓冲的实现无论是哪种 都有单 双 多缓冲的选择问题 即缓冲区的长度是放一个记录 两个记录 还是多个记录 越多则速度匹配效果越好 现在一般采用多缓冲技术 对硬件是多缓冲 对软件就是缓冲池 2020 3 15 112 7 3 2单缓冲单缓冲是在设备和处理机之间设置一个缓冲器 2020 3 15 113 用户工作区 缓冲区 用户进程 操作系统 传送 输入 I O设备 单缓冲 2020 3 15 114 设备和处理机交换数据时 先把被交换数据写入缓冲器 然后 再从缓冲器取走数据 但缓冲器是临界资源 不允许多个进程同时对一个缓冲器操作 所以 单缓冲能匹配设备和处理机的处理速度 但设备和设备之间不能通过单缓冲达到并行 2020 3 15 115 7 3 3双缓冲 实现双向传输 解决两台外设 打印机和终端之间的并行操作问题的办法是设置双缓冲 CPU可把输出到打印机的数据放入到一个缓冲器 让打印机慢慢打印 然后 它又可从另一个为终端设置的缓冲器中读取所需要的输入数据 2020 3 15 116 用户进程 操作系统 传送 输入 I O设备 双缓冲 2020 3 15 117 缓冲区 缓冲区 A机 B机 单缓冲 发送缓冲区 接收缓冲区 A机 发送缓冲区 接收缓冲区 B机 双缓冲 双机通信时缓冲区的设置 2020 3 15 118 双缓冲只是一种说明设备和设备 CPU和设备并行操作的简单模型 并不能用于实际系统中的并行操作 因为计算机系统中的外设较多 另外 双缓冲很难匹配设备和处理机的处理速度 所以现代系统中一般使用多缓冲或缓冲池 2020 3 15 119 7 3 4循环缓冲 多缓冲 多缓冲是把多个缓冲区连接起来组成两部分 一部分专用于输入 另一部分专用于输出的缓冲结构 2020 3 15 120 一 循环缓冲的组成1 多个缓冲区在循环缓冲中含有多个缓冲区 每个缓冲区的大小相同 缓冲区可分成三种类型 1 空缓冲区R 用于存放输入数据 2 已装满数据的缓冲区G 其中的数据提供给计算进程使用 2020 3 15 121 3 现行工作缓冲区C 这是计算进程正在使用的缓冲区 其组成如图示 P1582 多个指针 1 Nextg 指示计算进程下一个可用的缓冲区G 2 Nexti 指示输入进程下次可用的空缓冲区R 3 Current 指示计算进程正在使用的缓冲区单元 开始时 它指向第一个单元 随计算进程的使用 它将逐次地指向第2个单元 第3 4单元等 直至缓冲区的最后一个含有数据的单元 2020 3 15 122 二 缓冲区的使用计算进程和输入进程可利用下述两个过程来使用循环缓冲区 1 Getbuf过程每当计算进程要使用缓冲区中的数据时 可调用Getbuf过程 2020 3 15 123 该过程将指针Nextg所指的缓冲区提供给进程使用 把它改为现行工作缓冲区 并用Current指针指向该缓冲区的第1个单元 同时将Nextg移向下一个G缓冲区 2020 3 15 124 输入进程要使用空缓冲来装入数据时 也可调用Getbuf过程 由该过程将指针Nexti所指缓冲区提供给输入进程使用 同时将Nexti指针移向下一个R缓冲区 2020 3 15 125 2 Releasebuf过程 释放控制权 计算进程把G缓冲区中的数据提取完时 便可调用Releasebuf过程 将该缓冲区释放 把该缓冲区由当前 现行 工作缓冲区C改为空缓冲区R 当输入进程将缓冲区装满时 也调用Releasebuf过程 将该缓冲区释放 并改为G缓冲区 2020 3 15 126 三 进程同步使用输入缓冲可使输入进程和计算进程并行执行 指针Nexti和指针Nextg将不断地沿顺时针方向移动 则可能会出现下述两种情况 2020 3 15 127 1 Nexti指针追赶上Nextg指针输入进程的速度大于计算进程处理数据的速度 已把全部缓冲区 可用空缓冲 装满 此时 输入进程应该阻塞 直至计算进程把某个缓冲区中数据全部提取完 使之成为空缓冲R 并调用Releasebuf过程将它释放时 才将输入进程唤醒 这种情况称为系统受计算限制 2020 3 15 128 2 Nextg指针追赶上Nexti输入数据的速度低于计算进程处理数据的速度 使全部缓冲区 已有数据的 都已被抽空 这时 计算进程只能阻塞 直至输入进程又装满某个缓冲区 并调用Releasebuf过程将它释放时 才去唤醒计算进程 这种情况称为系统受I O限制 2020 3 15 129 7 3 5缓冲池缓冲池是把多个缓冲区连接起来统一管理 既可用于输入又可用于输出的缓冲结构 2020 3 15 130 一 缓冲池的组成既可用于输入又可用于输出的公用缓冲池 至少应含有以下三种类型的缓冲区 1 空闲缓冲区 2 装满输入数据的缓冲区 3 装满输出数据的缓冲区 相同类型的缓冲区链成一个队列 形成以下三个队列 2020 3 15 131 1 空缓冲队列em 是由空缓冲区所链成的队列 设置首指针F em 和队尾指针L em 2 输入队列in 是由装满输入数据的缓冲区所链成的队列 设置首指针F in 和队尾指针L in 2020 3 15 132 3 输出队列out 是由装满输出数据的缓冲区所链成的队列 其队首指针F out 和队尾指针L out 分别指向该队列的首 尾缓冲区 2020 3 15 133 除了上述三种队列外 还应具有四种工作缓冲区 1 用于收容设备输入数据的工作缓冲区hin 2 用于提取设备输入数据的工作缓冲区sin 3 用于收容CPU输出数据的工作缓冲区hout 4 用于提取CPU输出数据的工作缓冲区sout 2020 3 15 134 hin 缓冲区1 sin 缓冲区m hout 缓冲区z sout 缓冲区n 收容输入 提取输入 收容输出 提取输出 I O设备 CPU 缓冲池 缓冲池的工作缓冲区 2020 3 15 135 二 Getbuf过程和Putbuf过程数据结构中 有两个过程 1 Addbuf type number 该过程用于将由参数number所指示的缓冲区 挂在type队列上addbuf emq number 2 Takebuf type 它用于从type所指定的队列的队首 摘下一缓冲区 takebuf emq 2020 3 15 136 这两个过程不能用于对缓冲池中的队列进行操作 因为队列本身是临界资源 多个进程在访问一个队列时应该互斥且需要同步 要将之用来对缓冲池中的队列进行操作 须加以改造 2020 3 15 137 为使诸进程能互斥地访问缓冲池队列 可为每一队列设置一个互斥信号量MS type 如 ms emq 为了保证它们同步地使用缓冲区 又为每个缓冲队列设置了一个资源信号量RS type 如 rs emq 既可实现互斥 又可保证同步的Getbuf过程和Putbuf过程描述如下 2020 3 15 138 procedureGetbuf type beginWait RS type Wait MS type B number Takebuf type Signal MS type end 2020 3 15 139 procedureGetbuf emq beginWait RS emq Wait MS emq B number Takebuf emq Signal MS emq end 2020 3 15 140 ProcedurePutbuf type number beginWait MS type Addbuf type number Signal MS type Signal RS type end 2020 3 15 141 ProcedurePutbuf emq number beginWait MS emq Addbuf emq number Signal MS emq Signal RS emq end 2020 3 15 142 三 缓冲区的工作方式缓冲区可工作在收容输入 提取输入 收容输出和提取输出四种工作方式下 2020 3 15 143 1 收容输入工作方式在输入进程要输入数据时 便调用Getbuf emq 过程 从emq队列的队首摘下一空缓冲区 把它作为收容输入工作缓冲区hin 然后 把数据输入其中 装满后再调用Putbuf inq hin 过程 将该缓冲区挂在输入队列inq的队尾 2020 3 15 144 2 提取输入工作方式当计算进程需要输入数据时 调用Getbuf inq 过程 从输入队列取得一缓冲区作为提取输入工作缓冲区 计算进程从中提取数据 计算进程用完该数据后 再调用Putbuf emq sin 过程 将该缓冲挂到空缓冲队列emq上 2020 3 15 145 3 收容输出工作方式当计算进程需要输出时调用Getbuf emq 过程 从空缓冲队列emq的队首取得一空缓冲 作为收容输出工作缓冲区hout 当其中装满输出数据后 又调用Putbuf outq hout 过程 将该缓冲区挂在outq末尾 2020 3 15 146 4 提取输出工作方式当要输出时 由输出进程调用Getbuf outq 过程 从输出队列的队首取得一装满输出数据的缓冲区 作为提取输出工作缓冲区sout 在数据提取完后 再调用Putbuf emq sout 过程 将它挂在空缓冲队列的末尾 2020 3 15 147 7 4设备分配 7 4 1设备分配中的数据结构一 设备控制表DCT二 控制器控制表 通道表和系统设备表7 4 2设备分配时应考虑的若干因素一 考虑设备的固有属性二 设备分配算法三 设备分配中的安全性7 4 3设备独立性一 设备独立性的概念二 设备独立性软件三 逻辑设备名到物理设备名映射的实现7 4 4独占设备的分配程序一 基本的设备分配程序二 设备分配程序的改进7 4 5SPOOLING技术一 什么是SPOOLING二 SPOOLING系统的组成三 共享打印机四 SPOOLING系统的特点 2020 3 15 148 由于设备 控制器和通道资源的有限性 进程必须首先向设备管理程序提出资源申请 由设备分配程序根据相应的分配算法为进程分配资源 若申请不到资源 则要进入相应的队列等待 2020 3 15 149 2020 3 15 150 7 4 1设备分配中的数据结构设备类表和设备表采用通道的系

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论