vaakian / vaakian.github.io

some notes
https://vaakian.github.io
3 stars 0 forks source link

I/O #10

Open vaakian opened 4 years ago

vaakian commented 4 years ago

文件、打印机、显示屏等等可以视为一个I/O设备(逻辑) 用户面向逻辑设备。

设备转换表

是设备开关表,存放设备驱动和控制程序入口地址。

设备控制块

设备名、设备特性、指向命令转换表的指针、在I/O总线上的地址、设备状态、当前用户进程指针、I/O请求队列指针。

vaakian commented 4 years ago

设备的独立性:

即应用程序独立于具体使用的物理设备。为了实现设备独立性而引入了逻辑设备和物理设备这两个概念。在应用程序中, 使用逻辑设备名称来请求使用某类设备;而系统在实际执行时, 还必须使用物理设备名称。因此,系统须具有将逻辑设备名称转换为某物理设备名称的功能,这非常类似于存储器管理中所介绍的逻辑地址和物理地址的概念。

vaakian commented 4 years ago

缓冲技术

CPU与各种外部设备速度差异巨大,设备与设备之间的速度的差异也很大。所以引入缓冲概念,是不同速度的设备之间传输信息时平滑传输过程的常用搜段。

缓冲器

容量很小,比如CPU的L1、L2、L3缓存

软件缓冲区

用来爆粗能在两个设备之间或者在设备和应用程序之间所传输数据的内存区域。 类似于golang的buffer用法。

为什么映入缓冲

处理数据流的生产者与消费者之间的速度差异。

从调制解调器收到一个文件,保存到硬盘上。

协调传输数据大小不一致。

在计算机网络中用来处理消息的分段和重组。

应用程序的拷贝语义。

vaakian commented 4 years ago

缓冲区类型

用循环链表,消费者循环接受。生产者循环发送。

系统中所有进程共享使用的缓冲。

缓冲池的组成:

在内存中。

对于既可以输入又可以输出的缓冲区,有四种状态: 空闲00、输入满01、输出满10、繁忙11

image

vaakian commented 4 years ago

SPOOLing技术

image

此处输出井可以视为(多个)虚拟设备,作业一进入输出井,并不会阻塞作业二,好似有多台打印机在同时工作。

image

vaakian commented 4 years ago

I/O 控制方式

早期的工作方式,CPU进行循环检测,直到输入完成,才进行处理。

而以下为触发式,发送信号,无需循环检测。 image

控制方式

image

优点: 大大地提高了CPU的利用效率。 缺点: 每次I/0都要CPU的干预,如果系统中配备了多台(套)设备时,CPU的利用率也会降低。解决的方法是采用通道技术。

引入DMA(直接存储访问

如此以来,磁盘不用每个字节都有CPU参与。而是先存到DMA中,以组为单位参与CPU。

image

image

image

通道方式

I/O设备设置单独的处理机

类型:

  1. 分时,适用于低速设备
  2. 选择通道(独占性),适用于高速设备。
  3. 成组多路通道 image

改进,单独的I/O处理器

image