• 输入输出管理: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干预的频率、数据传送的单位、主要优缺点

  • 相关阅读:
    2024采用JSP的酒店客房管理系统源代码+毕业设计论文+开题报告+答辩PPT
    标点符号应该占在作文本的什么位置
    25期代码随想录算法训练营第十天 | 栈与队列 part 1
    动态内存&柔性数组
    Vue3+TS+Node打造个人博客(前端架构)
    Java Integer compareTo()方法具有什么功能呢?
    Gcware Python 接口(8)
    软件生命期各阶段的任务是什么?总体设计这个阶段必须回答的关键问题是:“概括地说,应该怎样实现目标系统?”。
    用3D扫描生成合成数据
    函数栈详解
  • 原文地址:https://blog.csdn.net/weixin_48524215/article/details/126337742