操作系统--IO管理部分笔记思维导图

OS-I/O管理

下方文字版是思维导图的大纲导出
在这里插入图片描述

I/O设备

I/O设备分类

  • 传输速率

    • 低速设备

      • 百字节以下(每秒)
      • 键盘、鼠标
    • 中速设备

      • 千字节到万字节(每秒)
      • 激光打印机
    • 高速设备

      • 十万字节以上(每秒)
      • 磁盘机、光盘机
  • 按照使用特性

    • 人机交互类

      • 速度最慢
    • 存储设备

      • 速度最快
    • 网络通信设备

  • 信息交换的单位

    • 块设备

      • 以数据块为单位

        • 例:磁盘(常采用DMA)
      • 基本特征

        • 传输速率较高、可寻址
      • 有结构设备

    • 字符设备

      • 以字符为单位

        • 交互式终端机??
        • 打印机
      • 基本特征

        • 传输速率低
        • 不可寻址
        • 时常采用IO中断
      • 无结构设备

硬件构成

  • 机械设备
  • 电子设备

IO接口(设备控制器)

  • 组成

    • 设备控制器与CPU的接口

      • 三类信号线

        • 数据线

          • 相连寄存器

            • 数据寄存器

              • 设备输入信息
              • CPU输出信息
              • 实现设备与CPU之间的数据缓存
            • 控制寄存器

              • CPU输出的控制信息
            • 状态寄存器

              • 设备状态信息
              • 获取执行结果
          • 到设备控制器

        • 控制线

          • 到设备控制器
        • 地址线

          • 到设备控制器
    • 设备控制器与设备的接口

      • 设备控制器可连接多个同类设备,每个设备有一个设备接口

      • 三类信号线

        • 数据线

          • 从设备
        • 控制线

          • 到设备
        • 状态线

          • 从设备
    • IO逻辑

      • 功能

        • 实现对设备的控制
        • 对CPU发送的命令进行译码
  • 功能

    • 接收识别CPU命令
    • 数据交换(设备与内存)
    • 标识报告设备状态
    • 地址识别
    • 数据缓冲
    • 差错控制

IO软件层次结构

用户层IO软件

  • 实现与用户的交互接口

  • 用户可直接调用库函数

  • 实现假脱机技术SPOOLing

    • 以软件方式实现脱机技术

    • 实现原理

      • 组成

        • 输入设备/输出设备

        • 输入缓冲区/输出缓冲区

          • 存在意义???(可能是因为设备数据只能直接到内存,不可以直接到磁盘)
        • 输入进程/输出进程

          • 模拟外围控制机
        • 输入井/输出井

          • 磁盘上
      • 输入

        • 输入设备–>输入缓冲区–>输入井–>CPU读入内存
      • 输出

        • 内存–>输出井–>输出缓冲区-等待输出设备空闲->输出设备

应用程序IO接口(非层次部分,只是接口分类)

  • 字符设备接口

  • 块设备接口

  • 网络设备接口(网络套接字接口)

    • 创建网络套接字,绑定端口
    • 端口映射到应用程序
  • 阻塞IO/非阻塞IO

    • 调用IO时进程是否阻塞
    • 一般为阻塞型

设备独立性软件

  • 功能

    • 执行所有设备的公有操作

      • 设备的分配回收

      • 逻辑设备名到物理设备名的映射

        • 逻辑设备表LUT

          • 记录设备的设备驱动程序入口地址

          • 管理

            • 系统设置一张LUT
            • 每个用户一张LUT
      • 设备保护(禁止用户直接访问)

      • 缓冲管理

        • 还需补充
        • 提供大小统一的逻辑块,以屏蔽设备差异
      • 差错处理

    • 向用户层/文件层提供统一的接口

  • 实现IO调度、设备保护、设备分配与回收、缓冲区管理

设备驱动程序

  • 功能

    • 硬件直接相关
    • 实现系统对设备发出的操作指令
    • IO进程与设备控制器之间的通信程序(进程)
  • 每类设备一个

  • 向上层提供标准接口,封装具体设备差异

中断处理程序

硬件

IO控制方式

程序直接控制

  • CPU和设备串行工作

  • CPU轮询

  • 数据流向

    • 设备–CPU寄存器–内存
  • 数据传送单位

    • 字节

中断驱动方式

  • CPU与设备并行

  • 数据流向

    • 设备–CPU寄存器–内存
  • 数据传送单位

    • 字节

DMA(直接存取器存取)方式

  • DMA 控制器

    • 主机-控制器接口

      • CR命令/状态寄存器

        • CPU发来的命令、控制信息
        • 设备状态信息
      • MAR内存地址寄存器

        • 要传送数据在内存中的首址
      • DR数据寄存器

        • 暂存传输数据
      • DC数据计数器

        • 要传送的字节数
    • 控制器-块设备接口

    • IO控制逻辑

  • 以数据块为单位,每次传送一个字节

  • 缺点

    • 每次cpu发出io指令,只能读写连续的块
  • 数据流向

    • 设备–内存

通道控制方式

  • IO通道

    • 专门负责输入输出的处理机
  • 一个通道控制多台设备(提供DMA共享功能)

  • 传送单位

    • 每次读写一组数据块
  • 数据流向

    • 设备–内存
  • 根据数据传输方式

    • 字节多路通道

      • 慢速中速数据传输速率
      • 以字节为单位
      • 交叉复用
    • 选择通道

      • 高数据传输速率
      • 一台设备独占通道
    • 数组多路通道(组多路通道)

      • 高数据传输速率
      • 交叉复用
      • 以数据块为单位
      • 应用较多

缓冲区

实现

  • 硬件缓冲器

    • 成本高
  • 缓冲区(内存)

    • 作用

      • 缓解CPU与IO设备之间的速度不匹配
      • 减少对CPU的中断频率
      • 解决数据粒度不匹配问题
      • 提高CPU与IO并行性
    • 技术

      • 单缓冲

      • 双缓冲

      • 循环缓冲

      • 缓冲池

        • 三种队列

          • 空队列
          • 输出队列(装满输出数据块)
          • 输入队列
        • 四种缓冲区

          • 提取输入sin

            • 输入队列–>空队列
          • 收容输入hin

            • 空队列–>输入队列
          • 提取输出sout

            • 输出队列–>空队列
          • 收容输出hout

            • 空队列–>输出队列

设备的分配与回收

设备类型

  • 独占设备
  • 共享设备
  • 虚拟设备

设备分配的数据结构

  • 设备控制表DCT

    • 对应一个设备

    • 表项为设备信息

      • 设备状态
      • 设备类型
      • 指向控制器表的指针
      • 设备标识符
      • 重复执行次数或事件
      • 设备队列的队首指针
    • 请求该设备而不得的进程,将进程PCB,组织一个设备请求队列(阻塞队列)

  • 控制器控制表COCT

    • 表项

      • 控制器标识符
      • 控制器状态
      • 与控制器链接的通道表指针
      • 控制器队列的队首指针
      • 控制器队列的队尾指针
  • 通道控制表CHCT

    • 表项

      • 通道标识符
      • 通道状态
      • 与通道连接的控制器表首址
      • 通道队列的队首指针
      • 通道队列的队尾指针
  • 系统设备表SDT

    • 表项

      • DCT
      • 驱动程序入口
      • 设备标识符
      • 设备类
    • 整个系统一张

    • 每个物理设备一个表目

分配原则

  • 因素

    • IO设备的

      • 固有属性
      • 分配算法
      • 分配的安全性
      • 独立性
  • 原则

    • 充分发挥设备效率
    • 避免进程死锁
    • 将用户程序与具体设备隔离

分配方式

  • 静态分配

    • 独占设备的分配
    • 一次性分配作业所需全部设备、控制器
    • 无死锁
  • 动态分配

    • 进程执行时根据需要分配
    • 可能死锁
    • 使用分配算法

分配算法

分配的安全性

  • 安全分配方式

    • 进程请求IO后立即阻塞
    • 无死锁但CPU与设备串行效率低
  • 不安全分配方式

    • 可能出现死锁
    • 效率高
    • 进程可多次请求IO,只有请求的IO被其他进程占用才阻塞

实现CPU与IO端口通信

两种方式

  • 独立编址

    • 为每一个IO端口分配端口号,OS可用特殊的IO指令访问端口
  • 统一编址

    • 给每个端口分配唯一的内存地址(靠近地址空间顶端)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值