当前位置:
文档之家› 操作系统输入输出系统os5-2
操作系统输入输出系统os5-2
中断原因分析 I/O请求设备
设备分配程序 唤醒中断 处理程序
I/O控制
缓冲区管理
中断响应
启动I/O指令、设备驱动 程序或通道程序
北京林业大学信息学院
I/O控制的实现
I/O控制过程在系统中可以按三种方式实现
作为请求I/O操作的进程的一部分实现 作为当前进程的一部分实现 I/O控制由专门的系统进程 — I/O进程完成:
北京林业大学信息学院
4)通道
通道相当于一个功能简单的处理机,包含通道 指令(空操作,读操作,写操作,控制,转移 操作),并可执行用这些指令编写的通道程序
通道运算控制部件
通道地址字 CAW: 记录通道程序在内存中的地址 通道命令字 CCW: 保存正在执行的通道指令 通道状态字 CSW: 存放通道执行后的返回结果 通道数据字 CDW:存放传输数据 通道和CPU共用内存,通过周期窃取方式取得
I/O结束时,唤醒设备服务子程 序 执行I/O操作
北京林业大学信息学院
(1)用户进程层执行输入输出系统调用,对I/O数 据进行格式化,为假脱机输入/输出作准备
(2)独立于设备的软件实现设备的命名、设备的保 护、成块处理、缓冲技术和设备分配
(3)设备驱动程序设置设备寄存器、检查设备的执 行状态 (4)中断处理程序负责I/O完成时,唤醒设备驱动 程序进程,进行中断处理 (5)硬件层实现物理I/O的操作
北京林业大学信息学院
通道连接
通道连接:一个通道可连接多个控制器,一
个控制器可连接多个设备,形成树形交叉连接
主要目的是启动外设时:
提高了控制器效率 提高可靠性 提高并行度
北京林业大学信息学院
北京林业大学信息学院
北京林业大学信息学院
3. 中断处理技术
指令执行的过程中,外部设备或计算机内部可能 会发来急需处理的信号,需要处理机暂停正在执 行的程序,转去执行相应的紧急事件,待处理完 毕再返回原处继续执行,这一过程称为中断。
北京林业大学信息学院
4.设备驱动程序
设备密切相关的代码放在设备驱动程序中,每个设备驱动
程序处理一种设备类型 每一个控制器都设有一个或多个设备寄存器,用来存放向 设备发送的命令和参数。设备驱动程序负责释放这些命令, 并监督它们正确执行 设备驱动程序的任务是接收来自与设备无关的上层软件的 抽象请求,并执行这个请求。 在设备驱动程序的进程释放一条或多条命令后,系统有两 种处理方式,多数情况下,执行设备驱动程序的进程必须 等待命令完成,这样,在命令开始执行后,它阻塞自已, 直到中断处理时将它解除阻塞为止。而在其它情况下,命 令执行不必延迟就很快完成
因而耗费大量时间轮询信息,严重地降低了系 统性能
北京林业大学信息学院
外围设备 接收到start命令
CPU 发start命令
做接收或发送数据准备
否 准备完毕? 是 标志触发器置“done” 等待CPU来的下条指令
是
设备标志触发 器为done”? 否 等 待
执行下条指令 开始数据传送
(a)
(b)
北京林业大学信息学院
I/O设备1
I/O控制器1
CPU
北京林业大学信息学院
中断控制方式的处理过程
设备 接 收 到 CPU 发 来 的 start指令 准备数据并将其 置入缓冲寄存器 否 CPU 向设备发start指令 将中断允许位置1 调度程序调度其 他进程 其他进程执行
缓冲寄存器满吗? 是 控制器发中断信号
否
收到中断信号了吗? 中断处理 被中断进程执行
进程P等待该设备空 闲
搜索COCT找到CHCT指针 是 通道忙? 否 分配通道给进程P 启动I/O 进程P 等待通道
设备分配流程图
北京林业大学信息学院
※ I/O系统的设备分配 按如下步骤实施设备分配:
(1) 分配设备。
(2) 分配控制器。 (3) 分配通道。
北京林业大学信息学院
8. I/O控制
由进程P来的I/O请 求 搜索SDT找到DCT指针 是
A 搜索DCT指针, 找到COCT指针 是 进程P等待控制器
查DCT 该设备忙? 否 按分配策略选取 占据该设备的进程
进程P按分配策略 入I/O等待队列 否
控制器忙吗 ? 否 分配控制器给进程P
进程P被选 中? 是 检查该设备分配给 进程P的安全性 否 安全吗? 是 该设备分配给进程P A
北京林业大学信息学院
3)DMA方式
CPU 内存 磁盘 控制器 驱动器
缓冲器 DMA寄存器 计数 系统总线 内存地址 计数
DMA方式下的数据传输
北京林业大学信息学院
数据传输处理过程如下: ① 当进程要求设备输入数据时,CPU把准备存放输入数据的内存始 址及要传输的字节数分别送入DMA控制器中的内存地址寄存器和传送字节 计数器;另外,还要把控制/状态寄存器中的中断允许位和启动位置1, 从而启动设备,开始数据输入。 ② 发出数据输入要求的进程进入阻塞状态, 进程调度程序调度 其它进程占有CPU。 ③ 输入设备不断地挪用CPU工作周期, 将数据从内部缓冲区源源 不断地送入内存,直至所要求的字节数全部传送完毕。 ④ DMA控制器在传输完成时通过中断请求线发出中断信号, CPU 接到中断信号后转中断处理程序进行相应处理。 ⑤ 中断处理结束后, CPU返回被中断的进程或去运行重新被调度 的进程。
北京林业大学信息学院
6.用户层的I/O软件
尽管大部分I/O软件都包含在操作系统中,但仍 有一小部分是由与用户程序连接在一起的库过程, 甚至完全由运行于核外的程序构成。系统调用, 包括I/O系统调用,通常由库过程实现
这些过程所做的工作只是将系统调用时所用的参 数放在合适的位置,由其它的I/O过程实际实现 真正的操作
设备标识
通道标识 通道忙/闲标记 通道等待队列首 通道等待队列尾 ┇
CHCT
设备忙/闲标记 COCT指针 设备等待队列首 设备等待队列尾 驱动程序地址
DCT
┇
COCT
北京林业大学信息学院
设备使用率低
静态分配
设备分配原则
动态分配
有可能造成死锁
先请求先分配
设备分配策略
优先级高者先分配
北京林业大学信息学院
1.独立于设备的软件的基本任务是实现所有设备都需要 的功能,并且向用户级软件提供一个统一的接口 2.如何给文件和设备这样的对象命名是操作系统中的一 个主要课题。独立于设备的软件负责把设备的符号名 映射到正确的设备驱动上(linux上文件映射) 3.设备保护:系统防止无权存取设备的用户存取设备 4.不同的磁盘可以采用不同的扇区尺寸。设备独立软件 向较高层软件掩盖这一事实并提供大小统一的块尺寸。 它可将若干扇区合成一个逻辑块。较高层的软件只与 抽象设备打交道,独立于物理扇区的尺寸而使用等长 的逻辑块 5.缓冲技术 6.设备分配 7.出错处理
北京林业大学信息学院
驱动程序所处地位
用户进程
文件系统
设备驱动程序 设备控制器
设备本身
用户进程请求设备服务的流程
北京林业大学信息学院
5.设备独立的软件
虽然I/O软件中一部 分是设备专用的,但 大部分软件是与设备 无关的。设备驱动程 序与设备独立软件之 间的确切界限是依赖 于具体系统的
北京林业大学信息学院
传送字节数 =0?吗?
是
发中断信号 停止I/O操作
是
转中断处理
北京林业大学信息学院
DMA方式与中断的主要区别
中断方式是在数据缓冲寄存区满后,发中断请求, CPU进行中断处理 DMA方式则是在所要求传送的数据块全部传送结束 时要求CPU进行中断处理 大大减少了CPU进行中断处理的次数 中断方式的数据传送是由CPU控制完成的 DMA方式则是在DMA控制器的控制下不经过CPU控制 完成的
北京林业大学信息学院
设备 DMA控制器接收到start 指令 启动设备准备数据
DMA方式
CPU
数据入数据缓冲寄存器
缓冲寄存器内容入内存 改变传送字节数计数器 与内存地址寄存器内容 否
发start命令 内存地址 内存始址寄存器 传送字节数字节计数器 允许中断位与启动位置1
当前进程被阻塞, 调度程序调度其他进程运行 被调度的进程执行 接收到中断 信号吗? 否
三、输入/输出软件
1. 层次结构: 中断处理程序
设备驱动程序
与设备无关的I/O软件 用户层的输入/输出软件
北京林业大学信息学院
I/O请求
I/O应答
4-用户进程 3-设备无关软件
进行I/O调用:格式化I/O
命名、保护、阻塞、缓冲、分 配 设置设备寄存器、检测状态
设备服务子程序 2-设备 驱动程 序 1-中断处理程序 硬指令i+1
...
用户程序
...
中断处理 程序
北京林业大学信息学院
中断处理时的指令执行周期
读入中断 处理指令
N 开始
读入下 一条指令 执行 当前指令 允许 中断吗? 检查 中断位
结束
北京林业大学信息学院
关中断
中 断 处 理 过 程
保存被中断现场 分析中断原因 转中断处理子程序 执行中断处理子程序 恢复现场 开中断 返回中断点
每类(个)设备设一专门的I/O进程,且该进程只能 在系统态下执行 整个系统设一I/O进程,全面负责系统的数据传送 工作 每类(个)设备设一个专门的I/O进程,但该进程既 可在用户态也可在系统态下执行
北京林业大学信息学院
设置数据结构:
设备控制表DCT
系统设备表SDT
控制器表COCT 通道控制表CHCT
北京林业大学信息学院
系统设备表 STD
表目1 ┇
表目i ┇
设备类型 设备标识