-
目录
-
广义的IO设备
- 对CPU而言,凡是对CPU进行数据输入的都是输入设备
- 对CPU而言,凡是对CPU进行数据输出的都是输出设备
- 平时说的IO操作就是CPU对高速缓存或内存进行读写
- 广义的IO设备
- 按使用特性分类
- 分为存储设备和交互IO设备
- 存储设备包括U盘,内存,磁盘等
- 交互IO设备包括键盘,显示器,鼠标等
- 按信息交换的单位分类
- 分为块设备和字符设备
- 块设备包括磁盘,sd卡等,这些设备都是使用数据块与计算机进行信息交互的
- 字符设备包括打印机,Shell终端,这些设备都是以字符为单位进行传输的设备
- 按设备的共享属性分类
- 可分为独占设备,共享设备,虚拟设备
- 按传输速率分类
- 可分为低速设备,中速设备,高速设备
- 硬盘 键鼠 打印机等外设就属于低速设备
- 行式打印机、 激光打印机属于中速设备
- 磁带机、磁盘机、 光盘机属于高速设备
-
IO设备的缓冲区
- 作用:
- 减少CPU处理IO请求的频率
- 提高CPU与IO设备之间的并行性
- 可用于CPU与IO设备的速率不匹配问题
- 为何用缓冲区:
- 交互4个缓冲需要交互4次,而把这4个划为一个区则只需交互1次
- 缓冲池:
- 专用缓冲区只适用于特定的IO进程
- 当这样的IO进程比较多时,对内存的消耗也很大,因此操作系统划出可供多个进程使用的公共缓冲区,称之为缓冲池
- 缓冲池的结构由若干个大小相同的缓冲区组成
- 缓冲池中存在多个缓冲区, 需要使用时,从缓冲池中取出某一缓冲区,然后进行使用,完成使用后再把缓冲区归还给缓冲池,这样就达到多个进程共同使用缓冲区的要求,也能减少对内存的消耗
-
SPOOLing技术
- 是关于慢速字符设备如何与计算机主机交换信息的一种技术
- 也可用于CPU与IO设备的速率不匹配问题
- 是利用高速共享设备将低速的独享设备模拟为高速的共享设备的一种技术
- 使用此技术,逻辑上,系统为每一个用户都分配了一台独立的高速独显设备
- 因此,这是一个虚拟设备技术
- 通过SPOOling技术可将一台物理I/O设备虚拟为多台逻辑I/O设备
- 如何工作(以打印机为例):
- 假设有3个进程,分别是进程1,2,3;
- 这3个进程都想使用一台打印机
- 而打印机是低速设备,如果多个进程都需要使用打印机的话,将会等待很久
- 而使用SPOOling技术则不会把打印机直接分配给某一进程,
- 会在磁盘里分配一个存储空间,进程的输出数据会以文件的形式保存在这个存储空间里,这些进程的数据输出会形成一个输出队列,然后由SPOOling技术的进程去控制打印机的进程,依次将队列里的输出文件打印出来
- 在此过程中实际上没有任何设备分配给具体进程,而是在输入或输出的存储空间里为这个进程分配一个存储区,并且建立一个IO的请求表,这样就把逻辑设备虚拟为了共享设备
- 这个存储区称之为输出井或输入井
- 这个技术就是控制这个存储空间与打印机之间的交互的,把同步调用低速设备改为异步调用
- 简洁来说就是把IO送到存储空间里,再将这些文件或数据从存储空间里送到打印机里进行IO
- 总明:
- 就是在输入/输出之间增加了排队转储环节(输入井/输出井)
- SPOOling负责输入(出)井与低速设备之间的调度
- 逻辑上,进程直接与高速设备交互,减少了进程的等待时间