【OS笔记40】:设备管理 - 通道控制方式

文章目录

    • [1. 为什么要引入通道?(DMA 的局限性)](#1. 为什么要引入通道?(DMA 的局限性))
    • [2. 通道的概念](#2. 通道的概念)
    • [3. 通道的三种类型](#3. 通道的三种类型)
    • [4. 通道系统的结构示例 (IBM-370)](#4. 通道系统的结构示例 (IBM-370))
    • [5. 通道程序](#5. 通道程序)
    • [6. 总结:通道 I/O 的启动与结束](#6. 总结:通道 I/O 的启动与结束)
      • [核心考点:通道与DMA 的区别](#核心考点:通道与DMA 的区别)

1. 为什么要引入通道?(DMA 的局限性)

DMA 方式虽然解放了 CPU 的数据搬运工作,但仍存在不足:

  1. CPU 干预仍较多:数据的传送方向、内存地址、数据长度等参数都需要 CPU 来设置。
  2. 独占性:一旦开始传送,DMA 控制器就占用了总线。
  3. 缺乏灵活性:DMA 仅仅解决了"数据传送",但对外设的管理和某些控制操作(如寻道)仍需 CPU 操心。

通道技术的出现 ,真正实现了 CPU 与 I/O 设备(及 I/O 与 I/O 之间)的并行工作

核心特征 :在需要进行 I/O 数据交换时,CPU 只需干预两次

  1. 启动通道(下达命令)。
  2. 处理中断(通道完成任务后汇报)。

2. 通道的概念

  • 定义 :通道相当于一台小型处理机(I/O Processor)
  • 职责 :它接受 CPU 的委托,独立执行通道程序,对外部设备的 I/O 操作进行控制。
  • 目标 :实现内存和外设之间的成批数据传输。

3. 通道的三种类型

根据信息交换方式和连接设备的速度,通道分为三种类型:

a) 字节多路通道

Byte Multiplexor Channel

  • 特点
    • "多路":包含若干个子通道,每个子通道连接一台设备。
    • "字节" :以字节为单位进行数据传输。
    • 分时共享:利用不同设备在传送两个字节之间的空闲时间(因为低速设备很慢),轮流为多个设备服务。
  • 适用设备 :主要用于连接低速设备(如键盘、打印机、卡片输入机)。
  • 原理:例如传送一个字节需要 1ms,而通道处理只需几百纳秒,通道就利用这 1ms 的空闲去处理其他设备的请求。

b) 数组选择通道

Selector Channel

  • 特点
    • 独占 :虽然可以连接多台设备,但同一时刻只能为一个设备服务
    • 成组 :一旦选中某台设备,就一直为它服务,直到该设备的数据传输工作全部结束
  • 适用设备 :主要用于连接高速外设(如磁带、磁盘)。
  • 缺点:利用率相对较低(因为高速设备也有寻道等慢速操作,此时通道空闲但也无法服务其他设备)。

c) 数组多路通道

Block Multiplexor Channel

这是前两种方式的结合,综合了优点。

  • 特点
    • 数据传送时 :类似选择通道,独占,以数据块为单位高速传输。
    • 控制操作时 :当设备在做寻址、寻道等控制性慢速操作时,通道暂时断开连接,转去为其他设备服务。
  • 适用设备 :多用于中高速设备
  • 效率:效率最高,结合了字节多路通道的"分时并行"和选择通道的"高速传输"特点。

4. 通道系统的结构示例 (IBM-370)

为理解通道如何连接设备,以下为经典的 IBM-370 结构:

  • 此结构展示了多通路、多控制器的复杂拓扑结构,保证了系统的高可靠性和高吞吐量。

5. 通道程序

Channel Program

通道作为"小处理机",其运行依赖于通道程序

  • 硬件组成:通道拥有自己的运算逻辑、寄存器。
  • 指令系统 :通道具有专门的指令集,称为通道指令
  • 工作方式
    • CPU 把通道程序预先存储在内存中。
    • CPU 发出"启动 I/O"指令,告知通道程序在内存中的位置。
    • 通道取出指令并执行,控制设备进行操作。

6. 总结:通道 I/O 的启动与结束

核心考点:通道与DMA 的区别

特性 DMA 方式 通道方式
控制程度 CPU 控制数据的地址、长度、方向 通道程序控制这些细节,CPU 仅发启动指令
并行度 较低(每台设备通常需一个 DMA 控制器) 极高(一个通道控制器可控制多台设备)
中断频率 块传输结束时中断 一组复杂的 I/O 操作全部结束才中断
本质 硬件控制器 具有指令系统的特殊处理器
相关推荐
不会代码的小猴1 小时前
Linux环境编程第六天笔记--system-V IPC
linux·笔记
乌恩大侠1 小时前
【笔记】USRP 5G 和 6G 参考架构
笔记·5g
biuyyyxxx2 小时前
Python自动化办公学习笔记(一) 工具安装&教程
笔记·python·学习·自动化
舟舟亢亢2 小时前
Java集合笔记总结
java·笔记
丝斯20113 小时前
AI学习笔记整理(66)——多模态大模型MOE-LLAVA
人工智能·笔记·学习
kida_yuan5 小时前
【Linux】运维实战笔记 — 我常用的方法与命令
linux·运维·笔记
laplace01235 小时前
Claude Skills 笔记整理
人工智能·笔记·agent·rag·skills
三块可乐两块冰5 小时前
【第二十八周】机器学习笔记二十九
笔记
Serene_Dream5 小时前
OS 内存小结
操作系统·内存
血小板要健康5 小时前
Java基础常见面试题复习合集1
java·开发语言·经验分享·笔记·面试·学习方法