6 输入输出系统

  1. I/O系统的主要任务:完成用户提出的I/O请求,提高I/O速率,以及提高设备的利用率

  2. 外设:用来担负数据输入输出的部件(键盘 鼠标 打印机等)

    1. 分类:
      1. I/O设备:人可读 机器可读 通信
      2. 外存储设备
    2. 分类:
      1. 流设备(字符设备):以字节为传输单位
      2. 块设备:以数据块为传输单位
    3. 分类:
      1. 独享设备:速度低 人工干预 字符设备
      2. 共享设备:速度快 块设备 磁盘
  3. I/O系统的基本功能:

    1. 隐藏物理设备的细节
    2. 与设备的无关性
      1. 设备分配的灵活性提高
      2. 易于实现I/O重定向
    3. 提高处理机和I/O设备的利用率
    4. 对I/O设备进行控制:驱动程序
      1. 采用轮询的可编程I/O方式
      2. 采用中断的可编程I/O方式
      3. 直接存储器访问方式
      4. I/O通道方式
    5. 确保对设备的正确共享
      1. 独占设备
      2. 共享设备
    6. 错误处理:
      1. 临时性错误
      2. 持久性错误
  4. I/O系统的层次结构

    1. I/O软件的层次结构:

      1. 用户层I/O软件
      2. 设备独立性软件
      3. 设备驱动程序
      4. 中断处理程序
    2. I/O系统中各种模块之间的层次视图 二接口三层次

      1. 二接口:

        1. I/O系统接口:与上层系统之间的接口,向上层提高对设备操作的抽象指令

        2. 软件/硬件接口(RW/HW):上面是中断处理程序和设备驱动程序,下面式各种设备控制器

      2. 三层次:

        1. 中断处理程序:直接与硬件交互
        2. 设备驱动程序:进程和设备控制器之间通信
        3. 设备独立性软件
    3. I/O系统接口(按类型分)

      1. 块设备接口:快设备管理程序与高层之间的接口
      2. 流设备接口:
        1. 字符设备
        2. get和put操作:get从字符缓冲区取得一个字符给用户,put把新字符输出到缓冲区送到设备
        3. in-control指令:通用指令
      3. 网络通信接口
  5. I/O设备

    1. 类型:

      1)使用特性:

      1. 存储设备:外存 辅存
      2. I/O设备:输入 输出 交互设备

      2)传输速率:

      1. 低速设备:键鼠
      2. 中速设备:打印机
      3. 高速设备:磁盘 磁带 光盘
    2. 设备与控制器之间的接口

      设备控制器式CPU与I/O设备之间的接口

      1. 数据信号线:传输数据信号
      2. 控制信号线:控制器向设备发送控制信号
      3. 状态信号线:传送指示设备当前状态的信号
    3. 设备控制器

      1. 功能:

        (1) 接收和识别命令。(处理机。控制寄存器:存放命令和参数)

        (2) 数据交换。(CPU与控制器、控制器与设备。数据寄存器)

        (3) 标识和报告设备的状态。(供CPU了解。状态寄存器)

        (4) 地址识别。(识别设备地址、寄存器地址。地址译码器)

        (5) 数据缓冲区。(协调I/O与CPU的速度差距。)

        (6) 差错控制。 (保证数据数据正确性。)

      2. 组成:

        1. 设备控制器与处理机的接口
          1. 数据线
            1. 数据寄存器
            2. 控制、状态寄存器
          2. 地址线
          3. 控制线
        2. 设备控制器与设备的接口
          1. 数据信号
          2. 控制信号
          3. 状态信号
        3. I/O逻辑
    4. 对I/O设备的控制:由控制器来执行这些命令

      1. 利用特定的I/O指令
      2. 内存映像I/O:统一了对内存和对控制器的访问的方法,简化了I/O的编程
  6. I/O通道

    1. 类型:
      1. 字节多路通道:按字节交叉方式工作,子通道按时间片轮转方式共享主通道
      2. 数组选择通道:在物理上可连接多个设备,但这些设备不能同时工作,寻址等辅助操作的时间往往很长
      3. 数组多路通道:(数据块)连接控制多个高速外设并以成组交叉方式传送数据的通道
    2. 瓶颈:昂贵
  7. 中断机构和中断处理程序

    1. 中断:是多道程序得以实现的基础;是设备管理的基础;中断处理程序是I/O系统中最低的一层,是整个I/O系统的基础
    2. 中断:CPU对I/O设备发来的中断信号的一种响应,中断是由外部设备引起的,又称外中断
    3. 陷入:由CPU内部事件所引起的中断,成为内中断或陷入
    4. 对多中断源的处理方式:
      1. 屏蔽(禁止)中断:不能用于对实时性要求较高的中断请求
      2. 嵌套中断:CPU优先响应最高优先级的中断请求
  8. 设备驱动程序(设备处理程序)

    由于驱动程序与硬件密切相关,故通常应为每一类设备配置一种驱动程序

    1. 功能:

      1)接收由I/O进程发来的命令和参数,并将命令中的抽象要求转换为具体要求

      2)检查用户I/O请求的合法性

      3)发出I/O命令

      4)及时响应由控制器或者通道发来的中断请求

      5)自动地构成通道程序

    2. 特点:

      1)在请求I/O的进程与设备控制器之间的一个通信和转换程序

      2)不同类型的设备配置不同的驱动程序

      3)与I/O设备所采用的I/O控制方式紧密相关

      4)一部分用汇编语言编写

      5)驱动程序应允许可重入

    3. 设备处理方式:

      1)为每一类设备设置一个进程

      2)在整个系统中设置一个I/O进程

      3)不设置专门的设备处理进程

    4. 设备驱动程序的处理过程

      1. 先完成必要的准备工作:转换 校验 检查 传送 启动
    5. I/O控制方式:

      1. 程序查询控制方式
      2. 中断控制方式
      3. DMA控制方式
      4. 通道控制方式
    6. 对I/O设备的控制方式:

      1. 使用轮询的可编程I/O方式

      2. 使用中断的可编程I/O方式

      3. 直接存储器访问方式:每次传送至少一个数据块;从设备直接送入内存的,在传送数据块的开始和结束时才需CPU干预,整块数据的传送是在控制器的控制下完成的

        1)DMA控制器中设置四类寄存器:

        1. 命令/状态寄存器CR
        2. 内存地址寄存器MAR
        3. 数据寄存器DR
        4. 数据计数器DC

        2)DMA与中断的区别:

        1. 中断方式是在数据缓冲寄存器满之后发出中断,要求CPU进行中断处理,而DMA方式则是在所要求传送的数据块全部传送结束时要求CPU 进行中断处理。
        2. 中断方式的数据传送是在中断处理时由CPU控制完成的,而DMA方式则是在DMA控制器的控制下,不经过CPU控制完成的。

        3)适用:微型计算机中外设与主存之间需要成批传输数据的场合

      4. I/O通道控制方式:可实现CPU、通道和I/O设备三者的并行操作,主要用于大型计算机以及网络服务器等含有许多输入输出设备并对输入输出有较高要求的场合

  9. 与设备无关的I/O软件

    1. 设备无关性:应用程序中所用的设备,不局限于使用某个具体的物理设备。为每个设备所配置的设备驱动程序是与硬件紧密相关的软件

    2. 物理设备名 逻辑设备名:逻辑设备是抽象的设备名

      逻辑设备名到物理设备名的转换:逻辑设备表

    3. 与设备无关的软件:在驱动程序之上设置一层软件:设备独立性软件

      1. 设备驱动程序的统一接口:设备驱动程序有着统一的接口
      2. 缓冲管理
      3. 差错控制
      4. 对独立设备的分配与回收
      5. 独立于设备的逻辑数据块:设备独立性软件能够隐藏这些差异而被逻辑设备使用,并向高层软件提供大小统一的逻辑数据块
    4. 设备分配

      1. 数据结构:

        设备控制表DCT–每个设备一张

        控制器表COCT–每个控制器一张

        通道控制表CHCT–每个通道一张

        系统设备表SDT–整个系统一张

        逻辑设备映射表LUT

      2. 应考虑的因素:

        1. 设备的固有属性
          1. 独占设备–静态分配
          2. 共享设备–动态分配
          3. 虚拟设备–虚拟分配
        2. 设备分配算法
          1. 先来先服务
          2. 优先级高者优先
        3. 设备分配中的安全性
          1. 安全分配方式(单请求方式):每当进程发出I/O请求后便进入阻塞状态
          2. 不安全分配方式(多请求方式):仅当进程所请求的设备已经被另一个进程占用时进程才进入阻塞状态
      3. 独占设备的分配程序:

        1. 设备分配过程:
          1. 分配设备
          2. 分配控制器
          3. 分配通道
  10. 用户层的I/O软件

    1. 系统调用:因为不允许运行在用户态的应用进程去直接调用运行在核心态(系统态)的OS过程,但是又必须取得OS所提供的服务,所以引入例如中介过程–系统调用
    2. 库函数
    3. 假脱机(Spooling)系统:为了缓和CPU的高速性与I/O设备低速性间的矛盾,而引入了脱机输入、脱机输出技术。该技术是利用专门的外围控制机,先将低速I/O设备上的数据传送到高速磁盘上。
      1. 指导思想: Spooling的指导思想是,利用高速共享设备(通常是磁鼓或者磁盘)将低速的独享设备模拟为高速的共享设备。
      2. 构成:
        1. 输入井和输出井:磁盘上开辟的两大存储区
        2. 输入缓冲区和输出缓冲区:主存中开辟的两个缓冲区
        3. 输入进程和输出进程:输入进程模拟脱机输入时的外围控制机;输出进程模拟脱机输出时的外围控制机
        4. 井管理程序:用以控制作业于=与磁盘井自建信息的交换
      3. 四个系统进程:
        1. 收容输入:将数据或者作业从输入设备读进来
        2. 提取输入
        3. 收容输出
        4. 提取输出
      4. 特点:
        1. 提高了输入输出速度
        2. 将独占设备改造为共享设备
        3. 实现了虚拟设备功能:扩充设备功能
  11. 缓冲区管理:

    1. 缓冲区:是一个存储区域,它可以由专门的硬件寄存器组成,更多的是利用内存作为缓冲区

    2. 分类:

      1. 单缓冲区
      2. 多缓冲区:为了实现双向数据传输,必须在两台机器中都设置两个缓冲区,一个用作发送缓冲区,另一个用作接收缓冲区
    3. 环形缓冲区

      1. 组成:多个缓冲区:每个缓冲区的大小相同,三种类型
    4. 缓冲池:即可用于输入又可用于输出的公用缓冲池,包含了一个管理的数据结构,以一组操作函数的管理机制,用于管理多个缓冲区

      1. 每个缓冲区组成:

        1. 标识和管理的缓冲首部
        2. 用于存放数据的缓冲体
      2. 缓冲池的组成:

        1. 工作缓冲区:
          1. 收容输入数据:hin
          2. 收容输出数据:hout
          3. 提取输入数据:sin
          4. 提取输出数据:sout
      3. 缓冲区的工作方式:

        (1)收容输入。输入进程:Getbuf ( emq); putbuf(inq,hin)

        (2)提取输入。计算进程:Getbuf ( inq); putbuf(emq,sin)

        (3)收容输出。计算进程:Getbuf ( emq); putbuf(outq,hout)

        (4)提取输出。输出进程:Getbuf ( outq); putbuf(emq,sout)

  12. 磁盘存储器的性能和调度

    1. 组成:磁盘设备包括一个或多个物理盘片,每个磁盘片分一个或两个存储面,每个盘面上有若干个磁道,刺刀之间有间隙
    2. 类型:
      1. 固定头磁盘
      2. 移动头磁盘
    3. 早期磁盘调度算法
      1. 先来先服务 FCFS
      2. 最短寻道时间优先 SSTF
    4. 基于扫描的磁盘调度算法
      1. 扫描算法 SCAN
      2. 循环扫描算法 CSCAN
      3. NStepSCAN 和 FSSCAN 调度算法
  • 20
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cwn_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值