当前位置:
文档之家› 操作系统 第5章输入与输出系统(2)
操作系统 第5章输入与输出系统(2)
2)中断方式
为了解决程序控制I/O方法的主要问题
应该让处理器从轮询任务中解放出来
使I/O操作和指令执行并行起来
具体作法: 当I/O处理单元准备好与设备交互的时候 通过物理信号通知处理器,即中断处理器
北京林业大学信息学院
int 数据线 地址线 控制线 start I/O设备n 启动位 I/O控制器n 中断位 控制状态寄存器 数据缓冲寄存器 信号线 内存
北京林业大学信息学院
数据传输控制方式
北京林业大学信息学院
传输控制方式种类
程序直接控制方式 中断方式 DMA方式 通道控制方式
北京林业大学信息学院
1)程序直接控制方式(循环I/O测试方式)
由处理器提供I/O相关指令来实现 –I/O处理单元处理请求并设置I/O状态寄存器相关位 –不中断处理器,也不给处理器警告信息 –处理器定期轮询I/O单元的状态,直到处理完毕 I/O软件包含直接操纵I/O的指令 –控制指令: 用于激活外设,并告诉它做什么 –状态指令: 用于测试I/O控制中的各种状态和条件 –数据传送指令: 用于设备和主存之间来回传送数据 主要缺陷:处理器必须关注I/O处理单元的状态,
通道地址字CAW --首地址寄存器
通道命令字CCW --控制寄存器
通道状态字CSW --状态寄存器 通道数据字CDW --数据寄存器
北京林业大学信息学院
通道:接收到“启动I/O”指令后,从 CAW中取出通道程序的首地址,并根据首 地址取出第一条指令放入CCW中,同时向 CPU发回答信号,使CPU可继续执行其他 程序,而通道则开始执行通道程序,完 成传输工作。 当通道传输完成最后一条指令时,向 CPU发I/O中断,并且通道停止工作。CPU 接收中断信号,从CSW中取得有关信息, 决定下一步做什么。
北京林业大学信息学院
缓冲的其他应用
网络数据发送的缓冲,次数太多会降低 性能
北京林业大学信息学院
1.独立于设备的软件的基本任务是实现所有设备都需要 的功能,并且向用户级软件提供一个统一的接口 2.如何给文件和设备这样的对象命名是操作系统中的一 个主要课题。独立于设备的软件负责把设备的符号名 映射到正确的设备驱动上(linux上文件映射) 3.设备保护:系统防止无权存取设备的用户存取设备 4.不同的磁盘可以采用不同的扇区尺寸。设备独立软件 向较高层软件掩盖这一事实并提供大小统一的块尺寸。 它可将若干扇区合成一个逻辑块。较高层的软件只与 抽象设备打交道,独立于物理扇区的尺寸而使用等长 的逻辑块 5.缓冲技术 6.设备分配 7.出错处理
北京林业大学信息学院
3)DMA方式
CPU 内存 磁盘 控制器 驱动器
缓冲器 DMA寄存器 计数 系统总线 内存地址 计数
DMA方式下的数据传输
北京林业大学信息学院
数据传输处理过程如下: ① 当进程要求设备输入数据时,CPU把准备存放输入数据的内存始 址及要传输的字节数分别送入DMA控制器中的内存地址寄存器和传送字节 计数器;另外,还要把控制 /状态寄存器中的中断允许位和启动位置 1, 从而启动设备,开始数据输入。 ② 发出数据输入要求的进程进入阻塞状态, 进程调度程序调度 其它进程占有CPU。 ③ 输入设备不断地挪用CPU工作周期, 将数据从内部缓冲区源源 不断地送入内存,直至所要求的字节数全部传送完毕。 ④ DMA 控制器在传输完成时通过中断请求线发出中断信号, CPU 接到中断信号后转中断处理程序进行相应处理。 ⑤ 中断处理结束后, CPU返回被中断的进程或去运行重新被调度 的进程。
进程P等待该设备空 闲
搜索COCT找到CHCT指针 是 通道忙? 否 分配通道给进程P 启动I/O 进程P 等待通道
设备分配流程图
北京林业大学信息学院
4.设备驱动程序
设备密切相关的代码放在设备驱动程序中,每个设备驱动
程序处理一种设备类型 每一个控制器都设有一个或多个设备寄存器,用来存放向 设备发送的命令和参数。设备驱动程序负责释放这些命令, 并监督它们正确执行 设备驱动程序的任务是接收来自与设备无关的上层软件的 抽象请求,并执行这个请求。 在设备驱动程序的进程释放一条或多条命令后,系统有两 种处理方式,多数情况下,执行设备驱动程序的进程必须 等待命令完成,这样,在命令开始执行后,它阻塞自已, 直到中断处理时将它解除阻塞为止。而在其它情况下,命 令执行不必延迟就很快完成
北京林业大学信息学院
I/O系统的层次及主要功能
箭头表明了控制流
北京林业大学信息学院
7.设备分配
设备分配与回收 当某进程向系统提出I/O请求时,设备分配程序 按一定策略分配设备、控制器和通道,形成一条 数据传输通路,以供主机和设备间信息交换
强调 设备独立性 即:不能因为设备的忙碌、故障或更换而影响程序的 运行, 向用户屏蔽物理设备, 呈现给用户一个操作简单 的逻辑设备 强调 抽象的I/O 操作 即:设计一类通用的I/O指令,它们的含义对不同类型 设备作不同解释,而且,在操作系统中,提供了若干 I/O系统调用,由系统将抽象的I/O 操作映射到专门的 设备驱动程序
北京林业大学信息学院
设置数据结构:
设备控制表DCT
系统设备表SDT
控制器表COCT 通道控制表CHCT
北京林业大学信息学院
系统设备表 STD
表目1 ┇
表目i ┇
设备类型 设备标识
获得设备的进程
DCT指针
设备类型
控制器标识
控制忙/闲标记 CHCT指针 控制器等待队列首 控制器等待队列尾
I/O结束时,唤醒设备服务子程 序 执行I/O操作
北京林业大学信息学院
(1)用户进程层执行输入输出系统调用,对I/O数 据进行格式化,为假脱机输入/输出作准备
(2)独立于设备的软件实现设备的命名、设备的保 护、成块处理、缓冲技术和设备分配
(3)设备驱动程序设置设备寄存器、检查设备的执 行状态 (4)中断处理程序负责I/O完成时,唤醒设备驱动 程序进程,进行中断处理 (5)硬件层实现物理I/O的操作
北京林业大学信息学院
DMA的传输操作
如果字节计数依然大于0,重复第2步到 第4步。
北京林业大学信息学院
设备 DMA控制器接收到start 指令 启动设备准备数据
DMA方式
CPU
数据入数据缓冲寄存器
缓冲寄存器内容入内存 改变传送字节数计数器 与内存地址寄存器内容 否
发start命令 内存地址 内存始址寄存器 传送字节数字节计数器 允许中断位与启动位置1
北京林业大学信息学院
设备驱动程序的逻辑定位
每个连接到计 算机上的I/O 设备都需要某 些设备特定的 代码来对其进 行控制,这样 的代码被称为 设备驱动程序
北京林业大学信息学院
驱动程序所处地位
用户进程
文件系统
设备驱动程序 设备控制器
设备本身
用户进程请求设备服务的流程
北京林业大学信息学院
5.设备独立的软件
北京林业大学信息学院
通道连接
通道连接:一个通道可连接多个控制器,一
个控制器可连接多个设备,形成树形交叉连接
主要目的是启动外设时:
提高了控制器效率 提高可靠性 提高并行度
北京林业大学信息学院
北京林业大学信息学院
北京林业大学信息学院
3. 中断处理技术
指令执行的过程中,外部设备或计算机内部可能 会发来急需处理的信号,需要处理机暂停正在执 行的程序,转去执行相应的紧急事件,待处理完 毕再返回原处继续执行,这一过程称为中断。
北京林业大学信息学院
通道命令及格式 用于I/O操作的命令主要有两种: 1. I/O指令:启动通道程序 2. 通道命令:对I/O操作进行控制
1) 2)
3)
读、反读、写、测试设备状态的数据传输命令 用于设备控制的命令(磁带反绕、换页) 实现通道程序内部控制的转移命令
北京林业大学信息学院
工作原理 CPU:执行用户程序,当遇到I/O请求 时,可根据该请求生成通道程序放入内 存(也可事先编好放入内存),并将该 通道程序的首地址放入CAW中;之后执行 “启动I/O”指令,启动通道工作
中断执行过程
中断
指令i 指令i+1
...
用户程序
...
中断处理 程序
北京林业大学信息学院
中断处理时的指令执行周期
读入中断 处理指令
N 开始
读入下 一条指令 执行 当前指令 允许 中断吗? 检查 中断位
结束
北京林业大学信息学院
关中断
中 断 处 理 过 程
保存被中断现场 分析中断原因 转中断处理子程序 执行中断处理子程序 恢复现场 开中断 返回中断点
由进程P来的I/O请 求 搜索SDT找到DCT指针 是
A 搜索DCT指针, 找到COCT指针 是 进程P等待控制器
查DCT 该设备忙? 否 按分配策略选取 占据该设备的进程
进程P按分配策略 入I/O等待队列 否
控制器忙吗 ? 否 分配控制器给进程P
进程P被选 中? 是 检查该设备分配给 进程P的安全性 否 安全吗? 是 该设备分配给进程P A
北京林业大学信息学院
4)通道
通道相当于一个功能简单的处理机,包含通道 指令(空操作,读操作,写操作,控制,转移 操作),并可执行用这些指令编写的通道程序
通道运算控制部件
通道地址字 CAW: 记录通道程序在内存中的地址 通道命令字 CCW: 保存正在执行的通道指令 通道状态字 CSW: 存放通道执行后的返回结果 通道数据字 CDW:存放传输数据 通道和CPU共用内存,通过周期窃取方式取得
输入输出软件
北京林业大学信息学院
层次结构: