# 设备管理

广义的IO设备

  • 对CPU而言,凡是对CPU进行数据输入的都是输入设备
  • 对CPU而言,凡是CPU进行数据输出的都是输出设备

使用特性分类:

  • [ ] 存储设备(U盘、内存、磁盘)
  • [ ] 交互IO设备(键盘、鼠标、显示器)

信息交换的单位分类

  • [ ] 块设备(以块为单位,如磁盘、SD卡)
  • [ ] 字符设备(打印机、Shell终端)
  • [ ] Linux中c(char):字符设备文件,b(block):块设备文件

按设备的共享属性分类:

  • [ ] 独占
  • [ ] 共享
  • [ ] 虚拟设备

按传输速率分类:

  • [ ] 低速
  • [ ] 中速
  • [ ] 高速设备

IO设备的缓冲区

  • [ ] 原因:CPU与IO设备的速率不匹配
  • [ ] 减少CPU处理IO请求的频率
  • [ ] 提高CPU与IO设备之间的并行性

专用缓存区: 专用缓存区

注意:

  • [ ] 专用缓存区只适用于特定的IO进程
  • [ ] 当这样的IO进程比较多时,对内存的消耗也很大
  • [ ] 操作系统划出可供多个进程使用的公共缓存区,称为缓冲池

缓冲池: 缓冲池

SPOOLing技术(虚拟设备技术,还是为了解决CPU与IO设备的速率不匹配)

  • [ ] 关于慢速字符设备如何与计算机主机交换信息的一种技术
  • [ ] 利用高速共享设备将低速的独享设备模拟为高速的共享设备
  • [ ] 逻辑上,系统为每一个用户都分配了一台独立的高速独享设备

SPOOLing

SPOOLing技术把同步调用低速设备改为异步调用

三个进程同时想用打印机,这时开辟磁盘空间,将三个进程的输入写入磁盘,再打印,打印机并不属于任何进程,也就是进程并不直接使用打印机,而是把输出写入磁盘,然后SPOOLing技术将这些文件送到打印机里面

  • [ ] 在输入、输出之间增加了排队转储环节(输入井、输出井)
  • [ ] SPOOLing负责输入(出)井与低速设备之间的调度
  • [ ] 逻辑上,进程直接与高速设备交互(不是与物理设备交互),减少了进程的等待时间

相当于房产中介