• 输入输出管理:I/O控制方式


    1.I/O控制方式

    I/O控制方式:用什么样的方式来控制I/O设备的数据读/写
    下图来自程序员cxuan

    1.1 程序直接控制方式

    下图来自王道考研操作系统
    完成一次读写操作的流程

    下图来自王道考研操作系统
    程序直接控制方式中CPU干预的频率、数据传送的单位、主要优缺点

    下图来自程序员cxuan

    1.2 中断驱动方式

    程序直接控制方式中CPU利用率低,我们引入中断来提高CPU利用率
    下图来自程序员cxuan
    完成一次读写操作的流程

    CPU给I/O模块发出读命令后,可以转头做其他事情,不必一直检查I/O设备的状态,等到I/O设备自己完成了工作,将中断信号给中断控制器,CPU在每个指令周期末尾检查中断信号,中断控制器将I/O的中断信号发出,CPU检测到该中断信号,那CPU停下当前任务来响应中断
    下图来自王道考研操作系统
    中断驱动方式中CPU干预的频率、数据传送的单位、主要优缺点

    下图来自程序员cxuan

    1.3 直接内存访问方式(DMA)

    DMA主要用于块设备的I/O控制,DMA方式的实现进一步减低了干预CPU的频率,CPU只需在读写的开始和结束时刻使用,其余时间可以做其他任务
    读数据时的数据流向:I/O设备->CPU->内存
    写数据时的数据流向:内存->CPU->I/O设备
    每次读写数据都需要CPU内的寄存器中转,能不能不用CPU内的寄存器中转,使得数据直接由I/O设备传输到内存
    读数据时的数据流向:I/O设备->内存
    写数据时的数据流向:内存->I/O设备

    下图来自程序员cxuan
    完成一次读写操作的流程

    下图来自小林coding

    下图来自王道考研操作系统

    下图来自王道考研操作系统
    DMA方式中CPU干预的频率、数据传送的单位、主要优缺点

    1.4 通道控制方式

    由于CPU每发出一条I/O指令,只能读/写一个或多个连续的数据块,如果需要读/写一个或多个离散的数据块,就需要CPU发出多条I/O指令,CPU将一堆指令直接放到内存中,让通道这个硬件直接去依次读取,不必多次麻烦CPU

    通道是一种硬件,理解为弱鸡版的CPU,只能识别和执行通道指令

    CPU将要做“任务清单”放到内存中,然后给通道发出指令,告诉通道这个清单在内存中的位置,接下来的工作均有通道完成,CPU在发送完I/O指令后就不管了

    下图来自王道考研操作系统
    完成一次读写操作的流程

    下图来自王道考研操作系统
    通道控制方式中CPU干预的频率、数据传送的单位、主要优缺点

  • 相关阅读:
    多项式回归与模型泛化
    HK32F030MF4P6 EXTI外部中断例程
    算法笔记(1)线段树
    学习笔记:如何在 Vue 项目中使用 MQTT
    leetcode刷题(第四十九天)121. 买卖股票的最佳时机 ; 122.买卖股票的最佳时机II
    2022年国庆黄金周即将来临,景区销售分账如何提升效率?
    汽车4S集团数据分析
    基于Java的医院住院管理系统设计与实现(源码+lw+部署文档+讲解等)
    Spring Cloud Alibaba Seata 搭建以及分布式事务的验证
    [附源码]java毕业设计疫情防控期间网上教学管理
  • 原文地址:https://blog.csdn.net/weixin_48524215/article/details/126337742