Open vaakian opened 4 years ago
即应用程序独立于具体使用的物理设备。为了实现设备独立性而引入了逻辑设备和物理设备这两个概念。在应用程序中, 使用逻辑设备名称来请求使用某类设备;而系统在实际执行时, 还必须使用物理设备名称。因此,系统须具有将逻辑设备名称转换为某物理设备名称的功能,这非常类似于存储器管理中所介绍的逻辑地址和物理地址的概念。
CPU与各种外部设备速度差异巨大,设备与设备之间的速度的差异也很大。所以引入缓冲概念,是不同速度的设备之间传输信息时平滑传输过程的常用搜段。
容量很小,比如CPU的L1、L2、L3缓存
用来爆粗能在两个设备之间或者在设备和应用程序之间所传输数据的内存区域。 类似于golang的buffer用法。
从调制解调器收到一个文件,保存到硬盘上。
在计算机网络中用来处理消息的分段和重组。
双缓冲区
环形缓冲
用循环链表,消费者循环接受。生产者循环发送。
系统中所有进程共享使用的缓冲。
缓冲池的组成:
在内存中。
对于既可以输入又可以输出的缓冲区,有四种状态: 空闲00、输入满01、输出满10、繁忙11
此处输出井可以视为(多个)虚拟设备,作业一进入输出井,并不会阻塞作业二,好似有多台打印机在同时工作。
早期的工作方式,CPU进行循环检测,直到输入完成,才进行处理。
而以下为触发式,发送信号,无需循环检测。
优点: 大大地提高了CPU的利用效率。 缺点: 每次I/0都要CPU的干预,如果系统中配备了多台(套)设备时,CPU的利用率也会降低。解决的方法是采用通道技术。
如此以来,磁盘不用每个字节都有CPU参与。而是先存到DMA中,以组为单位参与CPU。
I/O设备设置单独的处理机
类型:
文件、打印机、显示屏等等可以视为一个I/O设备(逻辑) 用户面向逻辑设备。
设备转换表
是设备开关表,存放设备驱动和控制程序入口地址。
设备控制块
设备名、设备特性、指向命令转换表的指针、在I/O总线上的地址、设备状态、当前用户进程指针、I/O请求队列指针。