【操作系统】IO管理

I/O管理

概述

按照使用特性分类

  • 人机交互

  • 网络通信设备

  • 存储设备

按信息传输分类

  • 块设备

    • 磁盘

    • 以 “块” 为单位

  • 字符设备

    • 键盘鼠标

    • 以 “字符” 为单位

按速率分类

I/O控制器

功能

  • 向CPU报告设备状态(要有状态寄存器)

  • 识别CPU命令(要有控制寄存器)

  • 地址识别(I/O逻辑)

  • 数据交换(要有数据寄存器)

组成

  • 外连CPU、设备

    • CPU与I/O控制器接口

    • 设备与I/O控制器接口

  • I/O逻辑

编址方式

  • 独立编址

    • 需要设置专用指令对这些地址进行转译
  • 混合编址

    • 简单,不用设立单独处理逻辑

I/O控制方式

程序直接控制

  • 程序每发一次数据,CPU就需要接受一次,CPU一直在轮询等待数据输入

  • 设备-CPU-内存

中断驱动方式

  • 发送数据指令后,CPU转而去执行其他进程,需要等待I/O的进程被中断,I/O完成后,CPU才会回来执行这个进程

  • 设备-CPU-内存

DMA方式

  • I/O直接与内存进行交互数据

  • 设备-内存

通道控制方式

  • I/O开始时,CPU中断,由通道执行I/O,执行完后,CPU继续执行此进程

  • 设备-内存

  • 一组块

  • 1.一个通道可以管理多个控制器
    2.一个控制器可以管理多个设备

I/O软件层次

设备分配

独占设备

  • 打印机

共享设备

  • 磁盘

    • 宏观上共同使用,微观上交替使用

虚拟设备

  • 采用SPOOLing技术将打印机共享

    • 创建打印池,将打印任务都装到其中,宏观上每个进程都得到了打印机,并且不需要等待,可以进行其他任务

    • 有输入/输出缓冲池

    • SPOOLing技术作用:
      将独占设备改为共享设备

分配算法

  • 动态分配

    • 进程运行过程中,需要什么资源就申请什么资源
  • 静态分配

    • 运行前分配好所有资源

分配步骤

  • SDT

    • 系统控制表
  • DCT

    • 设备控制表
  • COCT

    • 控制器控制表
  • CHCT

    • 通道控制表
  • 改进措施

    • 增设LUT(逻辑设备表)

      • 整个系统一张

        • 适用于单用户系统

        • 每个用户的逻辑设备名不可以重复

      • 每个用户一张

        • 每个用户的逻辑设备名可以重复
      • 建立了逻辑设备名和物理设备名的映射,方便用户编程,也实现了I/O重定向,每次发送一个控制请求,是向一组相同类型的设备发送请求

缓冲

缓冲的作用

  • 解决CPU与I/O设备数据交互速度不匹配的问题

  • 减少CPU中断频率

  • 解决数据粒度不匹配

    • 可以将一段以 “字” 为单位的数据组合起来变成 “块” 为单位的数据
  • 提高CPU与I/O设备并行性

缓冲策略

  • 单缓冲

    • 缓冲区只能满了才能读取

    • 缓冲区正在读取(非空时),不能往其中写入数据

    • 处理一块数据的平均时间:Max(C,T)+M

  • 双缓冲

    • 两台机器想要实现双向通信,那么就需要每台机器都设置两个缓冲区,一个用来接收数据,一个用来存储发送的数据
  • 循环缓冲

    • 一个in指针指向下一个空缓冲区
      一个out指针指向第一个满缓冲区
  • 缓冲池

    • 空缓冲队列

      • 接收设备的输入数据,也存储准备发送的输出数据
    • 输入缓冲队列

      • 接收空缓冲队列过来的输入数据
    • 输出缓冲队列

      • 接收空缓冲队列过来的输入数据

一个缓冲区的大小就是一个块的大小

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值