9 IO

:material-circle-edit-outline: 约 567 个字 :material-clock-time-two-outline: 预计阅读时间 2 分钟
  1. 有哪几种 I/O 方式? I/O 方式主要包括以下几种:
    • 程序控制 I/O:通过 CPU 直接控制设备,CPU 需要等待 I/O 操作完成,效率较低。
    • 中断驱动 I/O:设备完成 I/O 操作后通过中断通知 CPU,无需 CPU 等待,提高效率。
    • DMA(直接存储器访问):通过 DMA 控制器直接在设备和内存间传输数据,CPU 只需发出指令,不参与数据传输过程,效率更高。
    • 通道 I/O:在主机和设备之间引入通道处理器,分担 I/O 任务,进一步提高性能。
  2. 什么是块设备?什么是字符设备?
    • 块设备:以块为单位传输数据,每块大小固定(如磁盘、SSD 等)。支持随机访问,适用于存储设备。
    • 字符设备:以字符为单位传输数据,通常是流式传输,不支持随机访问(如键盘、鼠标、打印机等)。
  3. 设备驱动程序作用? 设备驱动程序是操作系统与硬件设备之间的桥梁,主要作用包括:
    • 屏蔽硬件设备的具体实现细节,向上提供统一接口。
    • 接收操作系统的 I/O 请求并将其转化为硬件能理解的指令。
    • 管理设备资源,协调多进程访问设备。
  4. 缓冲区的作用? 缓冲区是内存中用于暂存数据的区域,其作用包括:
    • 提高 I/O 设备和 CPU 的处理效率,缓解速度差异问题。
    • 减少 I/O 操作的频率,从而降低系统开销。
    • 实现数据流的整合和分割,如对小数据块进行合并或对大数据流分割。
  5. 描述 SPOOLing 假脱机技术? SPOOLing(Simultaneous Peripheral Operation On-Line)是一种假脱机技术,主要用于解决设备共享问题,通常用于打印机等单一工作设备中。 其基本原理是:
    • 将用户进程的 I/O 操作数据存入磁盘的缓冲区(假脱机队列)。
    • 由系统中的脱机进程从缓冲区中读取数据并发送给设备。 这种方法实现了用户程序与设备之间的解耦,允许多个用户同时提交任务,提高了系统的吞吐量。