在计算机系统中,除了需要有处理机和存储器外,还需要有用于实现信息输入、输出和存储的设备。设备管理程序便是用于对这类设备进行控制和管理的一组程序。设备管理是操作系统中最繁杂且与硬件紧密相关的部分。
在一个计算机系统中,除了需要直接用于I/O和存储信息的设备外,还需要有相应的设备控制器。在大、中型计算机系统中,还需有I/O通道,由这些设备以及相应的总线构成了I/O系统。
I/O设备管理系统结构图
I/O设备的特点分析
操作系统需要管理的最复杂的资源——I/O设备
I/O设备种类繁多,工作模式各不相同 I/O设备数据多样,处理方式各不相同 I/O设备性能参差,运行控制多种多样
最容易成为计算机系统的瓶颈——I/O设备
很多I/O设备使用机械操作,导致其速度较CPU相差很大 进程运行中的输入输出操作可能造成系统运行的性能瓶颈 I/O管理:如何最大限度保证I/O设备与CPU的并行工作
最实用、最体现操作系统特色的工作——I/O管理
兼容性:操作系统最难以完成的使命 标准化:IT技术迅速普及发展的本质 高性能:I/O设备发展的主要目标
I/O设备分类
按照设备的功能特性划分
存储型设备:保存各类数据(临时或永久) 输入输出型设备:提供人机交互手段 数据通信型设备:实现电子数据交换
按照数据的组织形式划分
块设备:以数据块为单位存储、传输数据 字符设备:以字节为单位存储、传输数据
按照资源分配的形式划分
独占式设备:一个时刻只能由一个进程使用,一般为低速I/O设备 共享式设备:一个时刻可由多个进程使用,资源利用率很高 虚拟式设备:用高速设备模拟低速设备,用共享设备模拟独占设备
按照程序使用的方式划分
逻辑设备:由操作系统维护,简便用户操作和控制的“设备结构” 物理设备:由硬件结构组成,真实完成各类I/O设备操作
I/O设备的差别
I/O设备的评价标准
设备的数据传输单位和传输率 设备的数据表示和应用目标 设备的控制方式和出错情况
I/O管理的任务和目标
根据用户请求,控制各类I/O设备实现用户的目标
控制设备操作,实现设备与内存的数据交换 设备的分配与回收、设备驱动程序、设备中断管理、各类缓冲区管理等
向用户提供方便的I/O设备接口,屏蔽底层硬件细节差别
虚拟机——逻辑设备的作用:用户能够简单方便的使用I/O设备 设备接口的方便性、友好性、透明性、设备无关性
利用各种技术,提高I/O设备的运行效率
设备与CPU之间、设备之间的并行 设备负载的均衡:保持设备的充分忙碌
实现对I/O设备的管理和保护
设备的分配与回收:针对独占设备和共享设备,实现合理的资源分配 设备的数据保护:不同设备之间的保护、设备内部的保护
I/O设备硬件组成
I/O设备的硬件结构
机械部分(物理装置):由模拟信号驱动的各种机械装置 控制器/适配器(电子装置):实现与主机的连接和通信
设备控制器的工作方式
常以板卡的形式与主板的总线插槽连接 通过设备的接口寄存器、缓冲区与CPU进行通信
设备控制器的工作内容
地址译码:实现对I/O地址空间的正确映射 外部通信:接受或者发送数据/状态信号 执行指令:将数字化指令转化为机械装置能够理解的模拟信号 性能增强:实现内部硬件缓冲、完成数据加工等性能提升目标
操作系统的硬件环境
I/O设备接口的工作流程
I/O操作过程的细分
准备、启动、测试和等待、结果检查和错误处理
I/O设备接口的作用
接口寄存器:保存命令、状态或者数据 接口缓冲区:用来保存大量数据的缓冲区 通过I/O设备接口,CPU可以设定指令或状态、可以读取状态和结果
I/O设备接口的工作方式
设置命令寄存器和状态寄存器:CPU通过总线与I/O接口通信 I/O设备与CPU并行工作:控制器根据指令完成相应I/O操作 通过中断向CPU发出信号:工作完成后通过硬件中断通知CPU
IBM PC的软盘控制器
可接受15条指令:READ、WRITE、SEEK、FORMAT等 各条指令均可带参数,指令和相关参数均被设置到接口寄存器中 位串行工作机制:驱动器提供“位流”,控制器负责在缓冲区中将其组装为字节,并进行必要的校验和纠错
显示器的控制器
位串行工作机制:从显示缓冲区中读取可供显示的内容,而后产生用来调制CRT电子束的信号
I/O设备接口的价值
屏蔽底层硬件细节,降低应用者的操作难度 体现模块化的特点,适应不同的应用环境 通过对I/O设备接口进行标准化,即可方便实现兼容
计算机的系统结构图
I/O设备的连接与地址映射
I/O设备的连接方式
连接路径:I/O设备与CPU建立连接时,所有有关组件构成连接路径 I/O端口:I/O设备接口中有多个接口寄存器或缓冲区,每一个寄存器或缓冲区被称为一个I/O端口 I/O端口地址空间:实现对I/O接口寄存器/缓冲区的访问
I/O设备端口的编址方式
I/O端口独立编址:与内存空间完全独立 内存映射I/O地址:在内存空间中划分固定区域映射I/O端口
I/O地址空间的编址方式和使用差别
指令运行差别:访问的地址空间不同 系统资源消耗:所需要的资源数不同 优缺点权衡:总线规格、地址信息传输与过滤、系统性能等因素
I/O端口独立编址模式
I/O地址与内存空间完全独立
使用专用的I/O指令对I/O端口进行操作
优缺点分析
优点1:I/O设备不占用内存地址空间,减少系统资源消耗 优点2:技术实现复杂度低,易于区分I/O地址和内存地址 缺点:由于地址空间独立、狭小,导致指令类型少,只能使用简单的汇编语言编程
I/O端口的内存映射编址方式
I/O端口地址空间和内存地址空间统一编址
I/O端口地址也被作为物理地址空间的一部分进行存储管理 CPU访问地址空间时,将对地址空间的范围进行判断,然后选择读取内存空间或者访问I/O端口
内存映射编址的优缺点分析
优点1:使得技术实现手段更加方便,可用C语言编写驱动程序 优点2:不需要对I/O地址空间进行特殊保护,只需要利用现有的存储保护机制(例如分页式中的页表项设置) 优点3:使得I/O端口的指令更加灵活多样 缺点1:内存映射方式中必须保证I/O端口的实时性(禁用高速缓存) 缺点2:对于双总线或者多总线结构而言,I/O端口的地址映射将比较困难和麻烦
I/O端口地址的映射与访问
系统总线对I/O端口编址的影响
欢迎大家加我微信交流讨论(请备注csdn上添加)
|