I/O管理

1.I/O系统概述

在这里插入图片描述
I/O设备的分类

2.I/O设备与控制器

设备控制器的结构在这里插入图片描述
设备控制器的I/O端口
一个I/O控制器会拥有多个端口。系统中I/O端口的编址方式可以有以下两种方式

  • 独立编址(专用的I/O端口编址)内存和I/O端口在两个独立的地址空间中,。需要专用的I/O指令,程序设计的灵活性较差。
  • 统一编址(内存映射)将内存和I/O端口统一编址。当一个地址空间分配给I/O设备以后,内存就不能再分配这一部分的地地址空间

设备控制器的基本功能

  • 数据缓冲
  • 差错控制
  • 数据交换
  • 标识和报告设备的状态
  • 接受和识别命令
  • 地址识别

3.设备数据传输控制方式

3.1轮询方式

轮询方式也称为程序直接控制方式,该方式采用用户程序直接控制主机与外部设备之间进行输入输出操作。CPU必须不停地循环测试I/O设备的状态接口,当发现设备处于准备好状态时,CPU就可以与I/O设备进行数据存取操作、在这里插入图片描述

3.2中断控制方式

中断控制方式的基本思想是:引入中断处理机构,将轮询方式中的CPU最大限地解放出来,使得CPU向I/O控制器发出I/O命令后能够调度其他进程执行,无需空转轮询,提升CPU和外设之间的并发执行能力
在这里插入图片描述

3.3DMA方式

DMA的英文拼写是“Direct Memory Access”直接内存访问,是一种不经过CPU而直接从内存存取数据数据传输模式,中断模式下硬盘和内存之间的数据传输是由CPU来控制的;然而在DMA模式下CPU只需要向DMA控制此下达指令,让DMA控制器来处理数据的传送,数据传送完毕再把信息反馈给CPU,这样就会很大程序上减轻了CPU资源占有率。
在这里插入图片描述
①CPU将命令块地址写入DMA控制器
②DMA请求传送
③传送数据到内存
④发送应答信号
⑤结束I/O向CPU发送中断信号

3.4通道方式

通道本质上是一个简单的处理器,专门负责输入,输出控制,具有执行I/O指令的能力,并通过执行通道I/O程序来控制I/O操作。
在这里插入图片描述

4.缓冲技术

缓解设备之间速度差异的矛盾
缓冲区可以缓解设备之间传输数据大小不一致的矛盾
支持应用程序I/O的复制语义
①硬件缓冲
目的是为了协调系统和硬件之间的数据传输速度的差异
②内存缓冲
在内存中规划出一个具有N个单元的缓冲区,以便存放系统输入或输出的数据,这样的缓冲区又称为内存缓冲区。
③软件缓冲
在现代计算机系统中,有很多软件在运行时都会进行信息缓存,特别是网络应用程序需要对一些特殊的数据在客户端进行本地缓存。

缓冲技术

  • 单缓冲:操作系统提供的最简单的一种缓冲技术。在块设备之间进行数据传输时,一般情况下,缓冲区的大小与物理块的大小一样。数据生产者设备与消费者设备之间的速率差别很大的情况下可以采用单缓冲方式传输数据。在这里插入图片描述

  • 双缓冲与多缓冲
    双缓冲是针对但缓冲方式的改进,在数据生产者和消费者设备之间的速率相差不大的情况下比较适用。
    在这里插入图片描述

  • 缓冲池
    在多缓冲的基础上,可以构建缓冲池。缓冲池中的缓冲区由操作系统统一进行管理和分配。系统会维护三个队列:
    ①缓冲池中的空缓冲区链接形成一个空缓冲队列emq
    ②装满输入数据的缓冲区链接成一个输入缓冲队列inq
    ③装满输出数据的缓冲区链接成一个输出缓冲队列outq

在这里插入图片描述
虚拟设备的实现
通过虚拟技术将一台独占设备虚拟成多台逻辑设备,供多个用户进程同时使用,通常把这种经过虚拟的设备称为虚拟设备在这里插入图片描述
SPOOLing系统是Simultaneous Peripheral Operation On-Line 的缩写,通常称为“假脱机技术”。 SPOOLing技术是对脱机输入、输出系统的模拟。

5.设备的分配

5.1设备分配的原则

设计分配策略中,需要考虑许多如下一些相关因素
①设备的固有属性
②系统采用的分配算法
③设备分配的安全性
④设备的无关性

5.2设备分配的相关技术

  • 独占设备——静态分配
    即在一个应用程序执行前,为它分配所需的使用的这类设备,当应用程序处理完毕撤离时,收回分配给它的这类设备。静态分配技术是由设备的物理性质来决定的
  • 共享设备——动态分配
    对共享设备采用动态分配的方式,即在进程运行的过程中进行的。当进程需要使用设备时,通过系统调用命令向系统提出设备请求,系统按一定的分配策略给进程分配所需设备,一旦使用完毕立即释放
  • 虚拟设备——虚拟分配
  • 虚拟分配是指利用虚拟技术将独占设备虚拟成共享设备

5.3设备分配相关的数据结构

  • 设备控制表DCT
    系统为每个设备配置一张设备控制表,用于记录本设备的情况,如设备类型,设备标识号,设备状态。设备队列、控制器表
  • 控制器控制表
    系统为每个控制器设备一张用于记录本控制器情况的控制器控制表
  • 系统设备表SDT
    记录系统中全部设备的情况,每个设备占一个表目,包括设备类型、设备标识符、设备标识符,设备控制表,设备驱动程序入口等。在配有通道,控制器系统设备管理中,还要有通道控制表,CHCT,用来记录通道的特性、状态以及其他管理信息。

5.4设备分配过程

  • 分配设备
  • 分配控制柜黑骑士
  • 分配通道在这里插入图片描述

6.I/O相关软件

6.1I/O软件设计的原则

  1. 效率
    在大多数系统中,I/O操作是系统的瓶颈。与内存和CPU相比较,外设的速度较低,为了解决这个瓶颈问题,其中一种方法是想办法提高CPU与外设的并行执行能力。在我们设计I/O软件是,“效率”是我们需要重点考虑的原则,比如各种缓冲技术就是为了提升“效率”的优化手段。

  2. 通用性
    为了最大限度地避免错误,我们希望能够使用统一的方式来管理所有的设备。目前我们常用的方法是用一种层次化的、模块化的方法设计I/O先关软件。这种方法隐藏了大部分I/O设备底层中的细节。提供给上层用户统一的结构,如采用相同的读写、打开、关闭等来操作设备

6.2中断处理程序

在这里插入图片描述

6.3设备驱动程序

设备驱动程序具有以下功能:
1>接收由于设备无关的软件发来的命令和参数,并将命令中的抽象要求转换为与设备相关的底层操作序列。
2>检查用户I/O请求的合法性
3>发出I/O命令,如果设备空闲,便立即启动I/O设备,完成指定的I/O操作及时响应由设备控制器发来的中断请求,并根据中断类型调用响应的中断处理程序进行处理。

6.4设备独立性的软件

“独立”体现于:应用程序独立与具体使用的物理设备
为了实现设备独立性而引入了逻辑设备和物理设备这两个概念在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值