操作系统-------I-O

1. I/O设备分类与组成

I/O设备的分类:

  • 按使用特性:人机交互外部设备(鼠标,键盘;数据传输慢)

    ​                      存储设备(U盘;数据传输快)

    ​                      网络通信设备(路由器)

  • 按传输速率:低速设备(鼠标键盘)

    ​                      中速设备(激光打印机)

    ​                      高速设备(U盘)

  • 按信息交换的单位:块设备(可寻址)

    ​                                字符设备(传输满,不可寻址,常采用中断驱动)

I/O设备硬件的组成:

  • 机械部件
  • 电子部件(I/O控制器):一块插入主板扩充槽的印刷电路板,用来控制机械部件

 
 

2. I/O控制器

2.1 I/O控制器概述

功能:

  • 接受和识别CPU发来的命令(控制寄存器:存放命令和参数)
  • 向CPU报告设备状态(状态寄存器
  • 数据交换(数据寄存器
  • 地址识别(为了区分设备控制器中的各个寄存器)

 

I/O控制器组成:

  • CPU与控制器的接口—I/O逻辑—控制器与设备的接口

  • 一个I/O控制器可能会有多个设备

  • 数据寄存器、状态寄存器、控制寄存器也可能有多个,且这些寄存器都要编址,占用内存地址的一部分称为内存映像I/O;采用I/O专用地址称为寄存器独立编址

内存映像I/O:优点—可以采用堆内存进行操做的指令来对控制器进行操作

寄存器独立编址:缺点—需要专门的指令来实现对控制器的操作,不仅需要指明寄存器地址,还要指明控制器的编号

 

2.2I/O控制方式

  • 程序直接控制方式:轮询

    • CPU干预程度:等待I/O设备完成的过程中CPU需要不断轮询检查
    • 数据传送的单位:一个字
    • 数据流向:数据输入:I/O设备—>CPU—>内存
    • 优点:是实现简单,就需要循环检查的一系列指令
    • 缺点:CPU和I/O设备只能串行工作,CPU需要一直轮询检查,长期处于忙等状态
  • 中断驱动方式:引入中断机制,将等待I/O进程阻塞,CPU先去执行别的进程,处理中断的过程中CPU读到一个字,接着恢复等待I/O的进程的运行环境,然后继续执行

    • CPU会在每个指令周期的末尾检查中断
    • 中断需要保存、恢复进程环境,要一定的开销,因此不宜频繁中断
    • CPU干预程度:干预减少,I/O开始前和I/O结束后才需要CPU干预
    • 数据传送的单位:一个字
    • 数据流向:数据输入:I/O设备—>CPU—>内存
    • 优点:CPU和I/O可并行工作
    • 缺点:频繁中断降低系统性能,消耗较多CPU时间
  • DMA方式(直接存储器存取)

    • CPU干预程度:干预再次减少,仅在传送数据块开始和结束时才需要CPU干预

    • 数据传送的单位:一个块、多个连续块

    • 数据流向:数据输入:I/O设备—>内存,不需要CPU

    • 在这里插入图片描述

  • 通道控制方式:

    • 通道是一种硬件,”弱鸡版的CPU“

    • CPU干预程度:CPU给通道指示,通道就去执行相应程序,只有读写完成后发出中断,才需要CPU干预

    • 数据传送的单位:一组数据块

    • 数据流向:数据输入:I/O设备—>内存,不需要CPU

    • 优点:CPU、通道、I/O设备并行,资源利用率高

    • 缺点:需要通道这个专门硬件支持

 
 

3. I/O软件层次结构

3.1层次

在这里插入图片描述

  • 用户层软件:实现用户交互性接口,用户直接使用该层提供的库函数;将用户请求翻译为格式化的I/O请求,通过”系统调用“请求操作系统完成内核服务

  • 设备独立性软件(设备无关软件):与设备的硬件特性无关的功能在这里插入图片描述

    • 逻辑设备表LUT:来确定逻辑设备对应的物理设备和设备驱动程序
    • 为每个用户都设置一个LUT
  • 设备驱动程序:主要负责对硬件的具体控制,将上一层的一系列命令read/write转化为特定设备能听得懂的。不同的I/O设备有不同的硬件特性,只有厂家才知道,因此需要使用厂家提供的相应的驱动程序,见擦汗设备寄存器、状态,与硬件打交道。

  • 中断处理程序:进行中断处理,与硬件打交道

 

3.2实现的功能

在这里插入图片描述
 

3.2.1假脱机技术

在这里插入图片描述
 
在这里插入图片描述
 
在这里插入图片描述

 

3.2.2设备的分配与回收

设备分配时应考虑的因素:

  • 设备固有属性:独占设备、共享设备、虚拟设备
  • 设备分配算法
  • 设备分配中的安全性

 

静态分配:进程运行前为其分配全部所需资源,运行结束后归还资源

动态分配:进程运行过程中动态申请资源

 

设备分配中的数据结构:

  • 一个通道可以控制多个设备控制器,每个设备控制器可控制多个设备

  • 在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述
 

3.2.3缓冲区管理

在这里插入图片描述

缓冲区:存储区域,可以由专门的硬件寄存器组成,也可以用内存作为缓冲区(使用较多)

缓冲池:由系统中公用的缓冲区组成在这里插入图片描述

 

  • 单缓冲:在内存中为其分配一个缓冲区,一个缓冲区的大小就是一个块。

    • 当缓冲区数据非空时,不能往缓冲区冲入数据,只能从缓冲区把数据传出;当缓冲区为空时,可以在缓冲区冲入数据,但必须把缓冲区充满以后,才能从缓冲区把数据传出.

    • 初始状态:工作区满,缓冲区空,处理一块数据的平均用时:在这里插入图片描述

    • T<C:M+C

    • T>C:M+T

  • 双缓冲:在内存中为其分配两个缓冲区

    • 工作区空,一个缓冲区满,另一个缓冲区空,处理一块数据的平均用时:

    • T>C+M:T在这里插入图片描述

    • T<C+M:C+M

  • 循环缓冲区:在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值