计组+系统01:15min导图复习 总线、I/O系统与中断

前言

计组+系统01:15min导图复习 总线、I/O系统与中断_第1张图片

图源:文心一言

考研笔记整理,纯复习向,思维导图基本就是全部内容了,不会涉及较深的知识点~~

  • 第1版:查资料、画I/O与中断的思维导图~
  • 第2版:查资料、画总线的思维导图~

编辑: 梅头脑

参考用书:王道考研《2024年 计算机组成原理考研复习指导》《2024年 操作系统考研复习指导》

参考视频:7.1_1_输入输出系统和IO控制方式_哔哩哔哩_bilibili


思维导图

  •  计组 第6章 总线

计组+系统01:15min导图复习 总线、I/O系统与中断_第2张图片

  •  计组 第7章 I/O系统 + 系统 第5章 I/O管理

计组+系统01:15min导图复习 总线、I/O系统与中断_第3张图片

  • 如果图片看不清的话,可以试试存到本地然后放大~
  • 思维导图总结于王道教材计组第7章 I/O系统+操作系统第5章的I/O管理,第6章 总线的内容~其中,第7章是考过大题的,第6章内容比较少,可能会和第7章混在一起出出选择题的样子~
  • 博文后面会以大纲的形式复述一遍,面向复习,不会写得很详细;如果想仔细了解知识点,或许可以考虑以下两种方式——
    • 王道咸鱼老师的视频:7.1_1_输入输出系统和IO控制方式_哔哩哔哩_bilibili
    • 较为重要的内容有从网络找相关配图并给出原文链接,点击配图的链接可以传送到大佬们的博文,也很适合快速复习~

目录

前言

思维导图

 计组 第6章 总线

 计组 第7章 I/O系统 + 系统 第5章 I/O管理

目录

I/O设备

按信息交换单位分类

按资源分配管理分类

I/O接口

主要功能

基本结构

I/O指令

端口及编址

I/O方式

程序查询方式

程序中断方式

DMA方式

通道方式

计算题目

I/O软件层次结构

层次结构

系统处理流程

设备独立性软件

SPOOLing技术

设备驱动接口

结语


  • I/O设备

    • 按信息交换单位分类

      • 字符设备【例,键盘】:传输效率较低,不可寻址,通常采用中断I/O方式
      • 块设备【例,磁盘】:传输速率较高,可寻址,通常采用DMA控制方式 

      计组+系统01:15min导图复习 总线、I/O系统与中断_第4张图片

      图源:5.1.1 什么是I/O设备?有几类I/O设备?BitHachi的博客-CSDN博客

    • 按资源分配管理分类

      • 独占设备【例,打印机】:临界资源,可能导致死锁,需要资源调度算法
      • 共享设备【例,磁盘】:一段时间允许多个资源访问,每个时刻只有一个进程访问,不会死锁;必须支持可寻址,随机访问
      • 虚拟设备【例,spooling技术】:将一台独占物理设备虚拟化为多台逻辑设备

  • I/O接口

    • 主要功能

      • 数据传输:数据信息、状态信息、控制信息等
      • 控制和定时:解决主机与外设时序配合问题
      • 数据缓冲:匹配CPU与外设传输速度
      • 信号格式转换:匹配计算机与外设信号格式
    • 基本结构

      • 主机侧【系统总线】

        • 数据线
          • 数据寄存器:CPU读写,存放输入输出数据,实现数据缓冲
          • 状态寄存器:CPU读取,存放外设的执行结果和状态信息
          • 控制寄存器:CPU写入,存放外设的启动命令和更改外设的模式
        • 地址线
          • 地址译码与I/O控制逻辑:I/O接口寄存器地址
        • 控制线
          • 地址译码与I/O控制逻辑:读/写信号、仲裁信号【例,中断请求信号】、握手信号
      • 设备侧【接口电缆】

        • 外设界面控制逻辑【驱动程序协助】
          • 控制线:控制寄存器中的命令字进行译码
          • 数据线:收集并发出数据缓冲线到外设的数据
          • 状态线:收集外设状态到状态寄存器

      计组+系统01:15min导图复习 总线、I/O系统与中断_第5张图片

      图源:IO 设备的分类与概念、IO控制器_io控制器和io设备的区别-CSDN博客 

    • I/O指令

      • 功能:对数据缓冲寄存器、状态/控制寄存器的访问操作,通常发生在通用寄存器和I/O端口之间
      • 权限:只能在操作系统内核的底层I/O软件中使用,是一种特权指令
    • 端口及编址

      • 端口
        • 概念:接口电路中可被CPU直接访问的寄存器,例如数据缓冲寄存器、状态/控制寄存器
        • 分类:数据端口【读写操作】、状态端口【读操作】、控制端口【写操作】
      • 接口
        • 概念:若干I/O端口+相应的控制逻辑=I/O接口,I/O接口也叫做【设备控制器】或【I/O适配器】
      • 编址
        • 统一编址:I/O端口当作内存的地址进行分配,通过地址码区分存储单元和I/O设备,使用统一的访存指令可访问I/O端口
        • 独立编址:I/O端口的地址空间与主存地址空间是两个独立的地址空间,需要设置专门的I/O指令访问I/O端口 

      计组+系统01:15min导图复习 总线、I/O系统与中断_第6张图片

       图源:IO 设备的分类与概念、IO控制器_io控制器和io设备的区别-CSDN博客 


  • I/O方式

    • 程序查询方式

      • 主要特点:(1)控制完全由CPU执行程序实现,CPU与I/O串行工作;(2)数据传送由软件完成
      • 响应时间:(1)独占查询;(2)定时查询
    • 程序中断方式

      • 主要特点:数据准备阶段CPU与I/O并行工作,传送与主程序串行工作
      • 响应时间:对于可屏蔽中断请求的响应,发生在指令的执行周期结束时【指令周期=取指周期+间址周期+执行周期+中断周期】
      • 适用:针式打印机等不是很占用CPU工作时间的低速设备,或键盘、鼠标等需要CPU立即响应的设备
      • 中断分类【广义中断】
        • 内部异常:是CPU执行指令引起的中断
          • 故障【软件中断】:指令执行引起的异常,如缺页、除数为0、运算溢出等
          • 自陷【软件中断】:用于在用户态下调用操作系统内核程序
          • 终止【硬件中断】:CPU遇到无法执行的硬件故障,如控制器出错,存储器校验错
          • 备注:内核调用操作系统是自陷中断,内核态转用户态是操作系统实现,用户态转内核态是硬件实现
        • 外部异常【狭义中断】:非CPU执行指令引起的中断
          • 可屏蔽中断INTR
          • 不可屏蔽中断NMI
      • 基本步骤
        • 中止现行程序
        • 处理中断请求
        • 返回断点,继续执行原程序

        计组+系统01:15min导图复习 总线、I/O系统与中断_第7张图片

        图源:计算机组成原理-总线_YuanbaoQiang的博客-CSDN博客

      • 中断识别
        • 软件识别:异常状态寄存器,检测异常和中断类型
        • 硬件识别:CPU通过中断源获得中断类型号,据此计算出对应向量的地址,查询中断向量表计算出对应中断服务程序的入口地址,送入PC
        • 备注:中断向量表存放在内存中,通常开机时操作系统初始化
      • 单重中断
        • 响应过程【硬件实现】
          • 关中断:保存程序的断点和现场信息,不能相应更高级中断源的中断请求
          • 保存断点:将原程序的断点和程序状态【PC寄存器和PSW寄存器】的内容保存在栈和特定寄存器中
          • 引出中断服务程序:识别中断源,将对应的服务程序入口地址送入程序计数器PC
        • 处理过程【系统实现】
          • 保存现场【工作的通用寄存器】
          • 执行中断服务程序
          • 恢复现场
          • 开中断、中断返回:继续执行原程序

        计组+系统01:15min导图复习 总线、I/O系统与中断_第8张图片

        图源:I/O方式 —— 程序中断方式_starter_zheng的博客-CSDN博客

      • 多重中断
        • 中断响应优先级
          • 不可屏蔽中断 > 内部异常 > 可屏蔽中断,内部异常:硬件故障 > 软件故障
          • DMA中断 > I/O设备传送,IO设备传送:高速 > 低速,输入 > 输出【避免数据覆盖】,实时 > 普通
          • 访管【用户态系统调用】 > 程序性【进程抢占CPU】
        • 中断屏蔽技术实现
          • 屏蔽字触发器:改变可屏蔽中断的优先级,1表示屏蔽该中断源的请求,0表示可以正常申请;中断源不能中断自身,因此也设置为1
          • 屏蔽器寄存器:所有屏蔽触发器组合在一起
        • 处理过程【系统实现】
          • 保存现场【工作的通用寄存器】和屏蔽字
          • 开中断:允许更高请求得到相应,实现中断嵌套
          • 执行中断服务程序
          • 关中断:保证恢复现场和屏蔽字时不被中断
          • 恢复现场和屏蔽字
          • 开中断、中断返回:继续执行原程序

          计组+系统01:15min导图复习 总线、I/O系统与中断_第9张图片

          图源:中断优先级/嵌套 详解_ZC·Shou的博客-CSDN博客

    • DMA方式

      • 主要特点:(1)数据准备阶段CPU与I/O并行工作,传送与主程序并行工作(2)内存与外设数据传送不再经过CPU(3)数据传送由硬件完成
      • 响应时间:对于DMA请求的响应,发生在任意一个机器周期结束时【取指、间址、执行周期后均可】;部分题型表示可以发生在总线周期结束时,可使DMA占有总线
      • 适用:磁盘、声卡、显卡、网卡等高速设备大批量数据的传送,具有DMA接口的设备才能产生DMA请求
      • 组成
        • 主存地址寄存器:存放要交换数据的主存地址
        • 传送长度计数器:记录传送数据的长度,自动发送中断请求信号
        • 数据缓冲寄存器:暂存每次传送的数据
        • DMA请求触发器:I/O设备准备好数据后,给出控制信号使DMA请求触发器置位
        • 中断机构:一个数据块传送完成后触发中断机构,向CPU提出中断请求
        • 控制/状态逻辑
      • 传送方式
        • 停止CPU访存:DMA使用时,CPU停止访问
        • 周期挪用:CPU与IO同时访存时,I/O设备挪用一个或几个存取周期
        • 交替访存:C1周期专供DMA访存,C2周期专供CPU访存
      • 传送路径:
        • 可以参考 王道书6.1.3 三总线结构

        计组+系统01:15min导图复习 总线、I/O系统与中断_第10张图片  图源:总线_YuanbaoQiang的博客 

      • 传送过程
        • 预处理:由CPU完成测试、初始化等必要的准备工作;I/O设备准备好数据后向DMA控制器发送请求,DMA数据缓冲寄存器写满后向CPU发送总线请求
        • 数据传送:以单字节或字为基本单位,或以数据块为基本单位【如硬盘】传送数据,传送期间总线控制权由DMA控制器掌握
        • 后处理:DMA控制器向CPU发出中断请求,CPU执行中断服务程序做DMA结束处理
        • 注意:区分 DMA请求【数据预处理与传送阶段,优先级高于CPU,根据传送方式决定访存周期】 与 DMA中断【后处理阶段,数据块传送结束,申请中断】

        计组+系统01:15min导图复习 总线、I/O系统与中断_第11张图片 图源:计算机组成原理 输入输出系统3 DMA方式_CASTANEA的博客

    • 通道方式

      • 主要特点:(1)CPU、通道、I/O设备三者并行操作(2)I/O通道方式是DMA方式的发展

      计组+系统01:15min导图复习 总线、I/O系统与中断_第12张图片

      图源:计算机组成原理_YuanbaoQiang的博客-CSDN博客

    • 计算题目

      • I/O时间占CPU时间【08年】【16年】【18年】
        • 时间百分比(%) = CPU每秒处理中断的时钟周期(Hz) / CPU每秒时钟频率(Hz)= 每秒中断时钟周期(s)/ 单位时间(s)
        • CPU每秒处理中断的时钟周期(Hz) = 外设每秒中断次数(Hz) x CPU每次处理中断时钟周期
        • 外设每秒请求中断次数(Hz) = 外设每秒传输数据速率(B/s) / 外设每次传送数据块大小(B)= 单位时间(s) / 外设每次准备数据块的时间(s)
        • 外设每次准备数据块的时间(s)= 外设每次传送数据块大小(B)/ 外设每秒传输数据速率(B/s),注:CPU 检查时间 ≤ 外设准备数据块的时间,否则会覆盖
        • CPU每次处理中断时钟周期 = CPU执行中断指令数量(条)x 每条指令时钟周期CPI
      • DMA每秒请求次数【12年】【22年】
        • DMA周期挪用每秒请求次数(次)= 外设每秒请求数据量(B)/ DMA缓冲区寄存器容量(B)
        • 磁盘每秒请求数据量(B)= 磁盘页面大小(B)x 每秒访问磁盘次数(次)
        • CPU每秒访问磁盘次数(次)= CPU每秒访存次数(次)x Cache缺页率(%) x 主存缺页率(%)
      • one more thing
        • 这个是课上机智的咸鱼为了理解18年真题带我们画的配图,虽然咸鱼教的很好,但我也不确定自己水水的浆糊脑袋有没有理解到位,可能会有错误...不过应该可以贴在这里吧——

        计组+系统01:15min导图复习 总线、I/O系统与中断_第13张图片

        计组+系统01:15min导图复习 总线、I/O系统与中断_第14张图片


  • I/O软件层次结构

    • 层次结构

      • 用户层I/O软件:用户可调用与I/O操作有关的库函数【系统调用】
      • 设备独立性软件:使应用程序独立于系统程序
      • 设备驱动程序:可与硬件直接交互,根据系统指令驱动I/O设备工作
      • 中断处理程序:可与硬件直接交互,保存断点,转入中断服务程序
      • 硬件:执行具体I/O操作

      计组+系统01:15min导图复习 总线、I/O系统与中断_第15张图片

      图源:操作系统17———IO系统之概述_冰炭不投day的博客-CSDN博客 

    • 系统处理流程

      • 用户I/O层软件→设备独立性软件→设备驱动程序→中断处理程序→硬件
    • 设备独立性软件

      • 高速缓存与缓冲区
        • 高速缓存:提高磁盘I/O速度
          • 设置硬件【例,快表】
          • 内存的空间作为缓冲池,供请求和分页系统和磁盘I/O时共享【常见】
        • 缓冲区:高、低速设备的通信
          • 硬件缓冲器
          • 内存缓冲区
            • 单缓冲区,处理用时:Max(处理时长,输入时长)+传送时长
            • 双缓冲区,处理用时:Max(处理时长+传送时长,输入时长)
            • 循环缓冲:缓冲区构成循环队列
            • 缓冲池
              • 缓冲队列:空缓冲队列、输入队列、输出队列;
              • 缓冲区
                • 收容收入【空缓冲队列→输入队列】
                • 提取收入【输入队列→空缓冲队列】
                • 收容输出【空缓冲队列→输出队列】
                • 提取输出【输出队列→空缓冲队列】

          计组+系统01:15min导图复习 总线、I/O系统与中断_第16张图片

          图源:5.2.4 OS之缓冲区管理_os循环缓冲区_BitHachi的博客-CSDN博客

      • 设备分配与回收
        • 设备分配的数据结构
          • 设备控制表【对应设备数量】
            • 设备类型
            • 设备标识符【物理名称】
            • 设备状态【等待/不等待、忙/闲】
            • 指向控制器表的指针
            • 重复执行的次数或时间【多次I/O不成功则判定失败】
            • 设备队列的队首指针【进程PCB组成队列】
          • 控制器控制表【控制设备与内存交换数据】
            • 控制器标识符
            • 控制器状态
            • 与控制器连接的通道表指针
            • 控制器队列的队首指针
            • 控制器队列的对位指针
          • 通道控制表【一个通道可为多个控制器控制表服务】
            • 通道标识符
            • 通道状态
            • 与通道连接的控制器表首址
            • 通道队列的队首指针
            • 通道队列的对位指针
          • 系统设备表【系统只有一张】:记录已连接到系统中所有物理设备的情况

          计组+系统01:15min导图复习 总线、I/O系统与中断_第17张图片

          图源:IO设备分配与回收-嗨客网

        • 设备分配原则
          • 静态分配:一次性分配所有资源,不会死锁,但效率低
          • 动态分配:在进程执行过程中根据执行需要进行,算法不合适可能死锁,但效率高
        • 设备分配算法先请求先分配、优先级高者优先等
        • 设备分配安全性
          • 安全分配方式:进程I/O请求后便进入阻塞态,CPU与设备串行运行,效率很低
          • 不安全分配方式:进程I/O请求后仍继续运行,有可能会造成死锁,需要设计合适的设备分配算法
      • SPOOLing技术

        • 输入:I/O设备的输入数据经过内存的输入缓冲区传送到输入井,挂在输入队列;CPU需要输入数据时,从输入井读入内存
        • 输出:I/O设备的输出数据经过内存传送到输出井,挂在输出队列;输出设备空闲时,从输出井经过输出缓冲区送到输出设备

        计组+系统01:15min导图复习 总线、I/O系统与中断_第18张图片

        图源:操作系统知识点串联_King来写代码的博客-CSDN博客

      • 设备驱动接口

        • 统一设备驱动城区与操作系统的接口
        • 用户编程时使用的设备与实际设备无关【独立性】

结语

‍️博文到此结束,写得模糊或者有误之处,欢迎小伙伴留言讨论与批评,督促博主优化内容~

博文若有帮助,欢迎小伙伴动动可爱的小手默默给个赞支持一下,支持博主继续头秃码字~

博主也有整理数据结构学习笔记,在这里:

数据结构_梅头脑_的博客-CSDN博客https://blog.csdn.net/weixin_42789937/category_12262100.html?spm=1001.2014.3001.5482icon-default.png?t=N7T8https://blog.csdn.net/weixin_42789937/category_12262100.html?spm=1001.2014.3001.5482

默默吐槽,这个排版真是...啊我自己都看不下去,下次想想插图有没有什么更好的办法...

发现有小伙伴留言点赞有点开心,想了很久还是修改了排版——发现用块引用以后配图问题就好多了,虽然还是有点怪怪的,但至少不是那种别扭到自己都看不下去那种了~~

你可能感兴趣的:(#,操作系统,#,计算机组成原理,考研)