在计算机系统中,除了需要有处理机和存储器外,还需要有用于实现信息输入、输出和存储的设备。设备管理程序便是用于对这类设备进行控制和管理的一组程序。设备管理是操作系统中最繁杂且与硬件紧密相关的部分。

设备管理器架构图 设备管理系统架构图_设备管理器架构图

在一个计算机系统中,除了需要直接用于I/O和存储信息的设备外,还需要有相应的设备控制器。在大、中型计算机系统中,还需有I/O通道,由这些设备以及相应的总线构成了I/O系统

I/O设备管理系统结构图

设备管理器架构图 设备管理系统架构图_编址_02

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地址空间的正确映射
外部通信:接受或者发送数据/状态信号
执行指令:将数字化指令转化为机械装置能够理解的模拟信号
性能增强:实现内部硬件缓冲、完成数据加工等性能提升目标

操作系统的硬件环境

设备管理器架构图 设备管理系统架构图_设备管理器架构图_03

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设备接口进行标准化,即可方便实现兼容

计算机的系统结构图

设备管理器架构图 设备管理系统架构图_编址_04

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地址和内存地址

缺点:由于地址空间独立、狭小,导致指令类型少,只能使用简单的汇编语言编程

设备管理器架构图 设备管理系统架构图_设备管理器架构图_05

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端口地址的映射与访问

设备管理器架构图 设备管理系统架构图_物联网_06

系统总线对I/O端口编址的影响

设备管理器架构图 设备管理系统架构图_编址_07


设备管理器架构图 设备管理系统架构图_编址_08


设备管理器架构图 设备管理系统架构图_其他_09