I/O

I/O

可以将数据输入到计算机,或者可以接收计算机输出的外部设备,属于计算机中的硬件部件


按使用特性分类:

  • 人机交互类外部设备:数据传输速度慢,如鼠标、键盘、打印机

  • 存储设备:数据传输速度快 ,如移动硬盘、光盘

  • 网络通信设备:数据传输速度介于以上二者之间,如调制解调器


按传输速率分类:

  • 低速设备:如鼠标、键盘等

  • 中速设备:如激光打印机等

  • 高速设备:如磁盘等


信息交换单位:

(数据传输的基本单位)

  • 设备:传输速率较高,可寻址,如硬盘等

  • 字符设备:传输速率较慢,不可寻址输入输出时常采用中断驱动方式,如鼠标、键盘等


I/O设备:

  • 机械部件:主要用来执行具体的I/O操作

  • 电子部件:通常是一块插入主板扩充槽的印刷电路板

CPU通过控制I/O控制器,又由I/O控制器来控制设备的机械部件

控制器中寄存器的编址方式:

  • 内存映像I/O:寄存器占用内存地址一部分(寄存器与内存地址统一编址)

    优:简化了指令

  • 寄存器独立编址:I/O专用地址(控制器中的寄存器使用单独的地址)

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


I/O控制方式:

  • 程序直接控制:

    • CPU干预频率很频繁,I/O操作开始前、后及等待完成的过程中需要不断轮询检查

    • 每次读写一个

    • 优: 实现简单

    • 缺:CPU与I/O设备只能串行工作,CPU需要一直轮询检查,长期处于忙等状态;CPU利用率低

  • 中断驱动:

    • I/O操作开始前、后需要CPU介入;等待I/O完成的过程中CPU可以切换到别的进程执行

    • 每次读写一个

    • 优:CPU与I/O设备可并行工作;CPU利用率得到明显提升

    • 频繁的中断处理会消耗较多的CPU时间

  • DMA(直接存储器存取):

    • 数据传输单位是

    • 数据流向不需要CPU干预

    • 仅在传送一个或多个数据块的开始和结束时才需要CPU干预

  • 通道(硬件)控制:

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

    • 通道程序放在主机内存中

    • 每次读写一组数据块

    • 数据流向不需要经过CPU

    • 只有完成一组数据块的读写才需要发出中断信号,请求CPU干预

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

    • 缺:实现复杂,需要专门的通道硬件支持


I/O软件层次:

  • 用户层软件:假脱机技术(SPOOLing技术)(缓解设备与CPU的速度矛盾):将独占式设备改造成共享设备

  • 设备独立性软件:I/O调度、设备保护

  • 设备驱动程序

  • 中断处理程序

  • 硬件


设备分配:

  • 安全分配方式:为进程分配一个设备后就将进程阻塞,本次I/O设备完成后才将其唤醒

    一个时间段内每个进程只能使用一个设备

    • 优:不会死锁(破坏了请求和保持条件)

    • 缺:对于一个进程来说,CPU和I/O设备只能串行工作

  • 不安全分配方式:进程I/O请求后,系统为其分配I/O设备,进程可继续执行,之后还可以发出新的I/O请求,只有某个I/O请求得不到满足时才将其进程阻塞

    一个进程可以同时使用多个设备

    • 优:进程的计算任务和I/O任务可以并行处理,使进程迅速推进

    • 缺:有可能发生死锁

  • 静态分配:进程运行前为其分配所需的全部资源运行结束后归还资源(破坏了请求和保持,不会发生死锁)

  • 动态分配方式:进程运行过程中动态申请设备资源


缓冲区

使用硬件作缓冲区的成本较高,容量也较小;一般情况下,更多的是利用内存作为缓冲区

作用:

  • 缓和CPU和I/O设备之间速度不匹配的矛盾

  • 减少对CPU的中断频率,放宽对CPU中断相应时间的限制

  • 解决数据粒度不匹配问题

  • 提高CPU与I/O设备之间的并行性


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

T设备,M缓冲区,C工作区

  • 单缓冲:处理一块数据平均耗时MAX(C,T)+M

  • 双缓冲:处理一块数据平均耗时MAX(C+M,T)

  • 循环缓冲

  • 缓冲池:系统中共用的缓冲区组成


posted @ 2023-03-01 21:24  原语  阅读(242)  评论(0)    收藏  举报